當(dāng)前位置: 首頁 > 工業(yè)電子產(chǎn)品 > 半導(dǎo)體產(chǎn)品 > 微控制器MCU
發(fā)布日期:2022-04-22 點(diǎn)擊率:54
設(shè)計(jì)人員經(jīng)常面臨兩個(gè)微控制器 I/O 問題。第一個(gè)問題是,最適合應(yīng)用的微控制器不具備合適的 I/O 能力組合。第二個(gè)問題是,已推出的產(chǎn)品線需要增加 I/O。
出現(xiàn)第一個(gè)問題時(shí),開發(fā)人員經(jīng)常不得不購買更昂貴且功能更強(qiáng)的微控制器。而面對(duì)第二個(gè)問題時(shí),切換到新的微控制器以及隨之而來的軟件移植所需的成本及時(shí)間可能會(huì)多得令人難以承受。
要同時(shí)解決這兩個(gè)問題,一種潛在的解決方案是使用外部 I/O 擴(kuò)展器件,這種器件通常可連接到微控制器的 SPI 或 I2C 總線。這樣就能避免在引腳數(shù)以及可能的性能和封裝方面,對(duì)微控制器做出過多的規(guī)定。同時(shí),這種方法還能讓產(chǎn)品設(shè)計(jì)具有前瞻性,以應(yīng)對(duì)功能蠕變、目標(biāo)市場(chǎng)擴(kuò)張、客戶功能請(qǐng)求和微控制器選擇不當(dāng)(這種情況時(shí)有發(fā)生)等問題。
本文將討論典型的微控制器 I/O 要求,并介紹一些合適的外部擴(kuò)展器件,然后說明如何使用這些片外資源來增加通用輸入和輸出、存儲(chǔ)器存儲(chǔ)、脈沖寬度調(diào)制 (PWM) 甚至看門狗定時(shí)器功能。
微控制器配有多個(gè)不同的片載外設(shè)接口,可用于與外部設(shè)備通信。根據(jù)微控制器的不同,這些接口可能包括(僅列舉幾例):
串行外設(shè)接口 (SPI)
內(nèi)部集成電路 (I2C) 總線
通用串行總線 (USB)
通用異步接收器/發(fā)送器 (UART)
控制器區(qū)域網(wǎng)絡(luò) (CAN)
Wi-Fi
其中最適合與外部擴(kuò)展設(shè)備通信的接口是 I2C 和 SPI。
I2C 是一種兩線總線,傳統(tǒng)的運(yùn)行速率為 100 千位/秒 (kb/s) 或 400 kb/s,但也有一些可支持 1 Mb/s 或更快速度的高速設(shè)備。其中一條線是專用的時(shí)鐘引腳,而另一條線則用于主設(shè)備和從設(shè)備之間的雙向通信。通常情況下,微控制器充當(dāng)主設(shè)備,外部設(shè)備充當(dāng)從設(shè)備。從設(shè)備可使用 7 位或 10 位尋址方案進(jìn)行尋址。
SPI 是一種三線總線接口,運(yùn)行速率介于 1 Mb/s和 12 Mb/s 之間。SPI 總線配有專用的主設(shè)備輸出數(shù)據(jù)線、從設(shè)備輸出數(shù)據(jù)線和時(shí)鐘。微控制器同樣配置為主設(shè)備,使用“從設(shè)備選擇”線與從設(shè)備通信。每個(gè)與微控制器連接的從設(shè)備都需要一個(gè)專用輸出引腳,用于選擇它進(jìn)行通信。不難想象,如果開發(fā)人員有很多想要連接的外部設(shè)備,他們可能很快就會(huì)用盡 I/O 線,然后選擇從設(shè)備。
例如,如果開發(fā)人員使用 STMicroelectronics 的 STM32L011D4P7,可供使用的 I/O 線共有 11 條(圖 1)。僅 SPI 數(shù)據(jù)和時(shí)鐘就需要三條 I/O 線,剩下的八條線除了與從設(shè)備通信,還需要執(zhí)行系統(tǒng)所需的所有其他功能。雖然這完全可以滿足許多應(yīng)用的要求,但某些時(shí)候,設(shè)計(jì)人員仍可能需要對(duì) I/O 進(jìn)行擴(kuò)展。
圖 1:STM32L011D4P7 是一款 Arm? Cortex?-M0+ 處理器,其 I/O 引腳數(shù)限制為 11 個(gè)。(圖片來源:STMicroelectronics)
一般情況下,經(jīng)驗(yàn)法則非常簡(jiǎn)單:添加以下功能時(shí)使用 I2C 總線:
I/O
PWM
EEPROM
看門狗定時(shí)器
SPI 總線應(yīng)該用于增加諸如為 SD 卡提供高速存儲(chǔ)器訪問等功能。
有相當(dāng)多的集成電路可支持通過 I2C 接口來擴(kuò)展輸入和輸出。以下是一些有趣的示例:
Texas Instruments 的 TCA9534PWR
NXP Semiconductors 的 PCA8574
Semtech Corporation 的 SX1520I087TRT
PCA8574 是一款特別有趣的器件,因?yàn)樗话粋€(gè)用于執(zhí)行輸入和輸出的寄存器。單個(gè)寄存器極大地精簡(jiǎn)了配置器件以及讀寫引腳所需的軟件數(shù)量(圖 2)。微控制器通過 I2C 與 PCA8574 通信,并根據(jù) A0 至 A2 引腳的配置方式對(duì)此器件進(jìn)行尋址。這一特性增加了設(shè)計(jì)的靈活性,因此開發(fā)人員可以為 PCA8574 選擇從設(shè)備地址,并且可在一個(gè)設(shè)計(jì)中使用多個(gè)從設(shè)備地址。
圖 2:NXP 的 PCA8574 是一款準(zhǔn)雙向 8 位 I/O I2C 擴(kuò)展器。該擴(kuò)展器只有一個(gè) I2C 寄存器可供讀寫,從而在其引腳上執(zhí)行 I/O 功能,因此是一款非常簡(jiǎn)單、精巧的器件。(圖片來源:NXP Semiconductors)
默認(rèn)情況下,P0 至 P7 在上電時(shí)配置為輸入。讀取單個(gè)內(nèi)部寄存器時(shí)將為器件上的各個(gè)引腳指定狀態(tài),無論該引腳配置為輸入還是輸出。PCA8574 允許引腳同時(shí)用作輸入和輸出,因此對(duì)寄存器的寫入也會(huì)設(shè)置相應(yīng)的位輸出。
輸出驅(qū)動(dòng)由微弱的內(nèi)部電阻器上拉,該電阻器很容易因輸入值而過載。如果任何一個(gè)輸入狀態(tài)發(fā)生變化,INT 引腳將切換為低電平,讓微控制器知道輸入狀態(tài)發(fā)生了變化。然后,微控制器可以調(diào)用 I2C 來讀取新值。
PWM 擴(kuò)展器是一款非常有用的擴(kuò)展器件。該器件在驅(qū)動(dòng) LED 時(shí)特別有用。當(dāng)微控制器未執(zhí)行任何操作時(shí),可將其設(shè)為休眠模式,此時(shí) PWM 擴(kuò)展器可負(fù)責(zé)驅(qū)動(dòng) LED 狀態(tài)。
關(guān)于如何使用 PWM 擴(kuò)展器的完美范例經(jīng)常出現(xiàn)在 RGB 按鈕電路中,該電路可使用 E-Switch 的 PV6F240SSG RGB 按鈕或 Schurter Electronic Components 的 3-101-399 SPST RGB 按鈕(圖 3)。
圖 3:Schurter 的 RGB 按鈕在按鈕周圍配有紅綠藍(lán) LED,可允許開發(fā)人員創(chuàng)建亮色圖案。這些類型的器件非常適合由 PWM 擴(kuò)展芯片進(jìn)行驅(qū)動(dòng)。(圖片來源:Schurter)
Schurter 的 RGB 按鈕在 SPST 按鈕周圍配有紅綠藍(lán) LED,可允許開發(fā)人員創(chuàng)建亮色圖案。這些類型的應(yīng)用非常適合 PWM 擴(kuò)展芯片。
Maxim Integrated 的 MAX7315 便是一款適用于 I2C 接口的 PWM 擴(kuò)展芯片。MAX7315 配有 8 個(gè) PWM 端口,并具有 LED 強(qiáng)度控制功能,這樣可以輕松涵蓋驅(qū)動(dòng) RGB 開關(guān)所需的 3 個(gè)通道,使得單個(gè)器件能夠驅(qū)動(dòng)若干開關(guān)和一些獨(dú)立的 LED。此外,MAX7315 還有第 9 個(gè)端口,可以用作轉(zhuǎn)換檢測(cè)中斷或通用輸出。
MAX7315 I2C 接口比 NXP 的 PCA8574 稍微復(fù)雜一些,因?yàn)樗鄠€(gè)寄存器。因此,開發(fā)人員必須尋址從設(shè)備,提供其有興趣讀取或?qū)懭氲拇鎯?chǔ)器地址,然后執(zhí)行寫入或讀取。MAX7315 的存儲(chǔ)器映射如圖 4 所示。
寄存器地址代碼(十六進(jìn)制)自動(dòng)增量地址Rad 輸入端口0x000x00(無變化)閃爍相位 0 輸出0x010x01(無變化)端口配置0x030x03(無變化)閃爍相位 1 輸出0x090x09(無變化)主設(shè)備,O8 強(qiáng)度0x0E0x0E(無變化)配置0x0F0x0F(無變化)輸出強(qiáng)度 P1、P00x100x11輸出強(qiáng)度 P3、P20x110x12輸出強(qiáng)度 P5、P40x120x13輸出強(qiáng)度 P7、P60x130x10 |
圖 4:MAX7315 PWM 控制器配有 8 個(gè)輸出端口,其中包括 LED 強(qiáng)度功能。該器件的寄存器映射非常簡(jiǎn)單,允許輕松訪問高級(jí) PWM 功能。(圖片來源:Maxim Integrated)
MAX7315 的寄存器映射非常簡(jiǎn)單,允許輕松訪問高級(jí) PWM 功能。
如圖所示,I2C 總線 I/O 擴(kuò)展器在用作獨(dú)立器件時(shí)可能非常強(qiáng)大。也就是說,這種擴(kuò)展器只包含諸如 I/O 或 PWM 等特定功能。例如 Cypress Semiconductor 的 CY8C9520A 多端口 I/O 擴(kuò)展器,這類擴(kuò)展器在一個(gè) IC 封裝中包含了多個(gè)外設(shè)擴(kuò)展。CY8C9520A 共有三種擴(kuò)展形式:20 位、40 位或 60 位擴(kuò)展。然后可將這些引腳配置為輸入、輸出或 PWM(圖 5)。
圖 5:Cypress Semiconductor 的 CY8C9520 是一款配有 EEPROM 的 20 位、40 位或 60 位 I/O 擴(kuò)展器。該擴(kuò)展器允許將擴(kuò)展引腳配置為輸入、輸出或 PWM。(圖片來源:Cypress Semiconductor)
除 I/O 擴(kuò)展外,CY8C9520 還配有 EEPROM,可用于存儲(chǔ)重要的應(yīng)用設(shè)置(如序列號(hào))以及其他重要的配置參數(shù)。
仔細(xì)查看圖 5,您會(huì)看到 GPort 2 上的 WD6 引腳。該引腳是一個(gè)看門狗定時(shí)器輸出引腳,可在微控制器無法通信時(shí)用于復(fù)位微控制器,以及操控 CY8C9529 看門狗。看門狗設(shè)置是完全可配置的,并且可用于為應(yīng)用程序代碼增加額外的穩(wěn)健性。
目前有許多技術(shù)可幫助擴(kuò)展微控制器的功能。以下是一些有幫助的技巧和訣竅:
使用 I2C 連接外部設(shè)備。該接口只需兩個(gè)引腳,并且支持多個(gè)從設(shè)備。
在將某個(gè)零件設(shè)計(jì)成硬件之前,先購買一個(gè)開發(fā)板,或?qū)⑿酒附拥綌U(kuò)展板上,測(cè)試其能否滿足您的系統(tǒng)需求。
使用 I2C 總線工具與擴(kuò)展器件連接,并了解其工作情況,這樣可大幅提升軟件的開發(fā)速度。
在軟件開發(fā)過程中,使用總線分析器監(jiān)視與外部設(shè)備的通信,最大限度縮短調(diào)試時(shí)間。
如果可能,選擇配有外部看門狗定時(shí)器的器件,這可以作為一種工具,為系統(tǒng)設(shè)計(jì)增加穩(wěn)健性。
在連接片外存儲(chǔ)器獲取數(shù)據(jù)(非配置數(shù)據(jù))時(shí),請(qǐng)使用 SPI 等高速接口。
如果設(shè)備返回否定應(yīng)答 (NAK) 信號(hào),或者總線受到拖累,請(qǐng)確保微控制器的 I2C 驅(qū)動(dòng)程序可以處理此類問題。對(duì)于這些驅(qū)動(dòng)程序來說,在收到意外響應(yīng)時(shí)忽略錯(cuò)誤并進(jìn)入無限循環(huán)的情況并不罕見。
當(dāng)設(shè)計(jì)進(jìn)展到微控制器無法繼續(xù)提供更多 I/O 時(shí),開發(fā)人員無需將現(xiàn)有的設(shè)計(jì)推倒重來。相反,他們可以使用外設(shè)芯片,以便為系統(tǒng)增加額外的功能。
下一篇: PLC、DCS、FCS三大控