嵌入式微控制器所需要的
PCB電路設計是個相當龐大的工程。對進階的微控制器而言,光是資料表和技術文件就可以長達好幾百頁。
在開始設計電路前,最好可以先畫出專題中所有主要元件的運作流程圖,包含所有和微控制器之間有界面的周邊裝置。
ARM Cortex-M微控制器
本文將聚焦在導入ARM Cortex-M微控制器所需的PCB電路設計考量。ARM Cortex-M微控制器有不同晶片制造商供應的不同版本。
具有32位元架構(gòu)的ARM Cortex-M和典型的8位元微控制器相比特別適合密集與計算強度高的工作。如果有需要更大記憶體容量空間或為未來的擴充需求而能簡化系統(tǒng)平臺轉(zhuǎn)移的應用,32位元微控制器也具有優(yōu)勢。
我們要討論的ARM Cortex-M微控制器是ST Microelectronics出品的STM32家族;更精確地說,我們會聚焦在STM32F4系列。
然而,STM32家族其實包含很多機型,例如超低功耗的STM32L系列和效能高于及低于STM32F4版本的系列。效能最高的版本是STM32F7,每秒能夠執(zhí)行10億個指令。在效能最低的機型里則有每秒只執(zhí)行2600萬個指令的STM32L0。
請參考下方圖1里本文所根據(jù)的STM32F4微控制器的電路圖。
圖 1. STM32F4微控制器的電路圖。
電源設計
電路的供電是硬件設計最重要的環(huán)節(jié)之一;不要等到設計的后期才決定供電和接地的配置。
微控制器使用的電流由多重因素決定,例如工作電壓、時脈頻率,和輸入/輸出腳位的負載。
MCU上每個電源VDD腳位旁應該要有盡可能接近的位置安排1uF和100nF陶瓷電容器(例如圖1的C7和C8)來提供電源解藕。另外應加裝4.7uF陶瓷電容器(圖1中C1)在接近供應VDD的主要電路布線上IC的位置。
具有類比數(shù)位轉(zhuǎn)換器(ADC)的微控制器通常也有獨立的電源(VDDA)和接地腳位(VSSA)專供類比訊號使用。這些腳位需特別避免雜訊。
VDDA腳位應有1uF和10nF陶瓷電容器(圖1中C10、C11),位置盡可能接近VDDA腳位。在多數(shù)情況下,我發(fā)現(xiàn)最好在VDDA腳位也加裝一個電感器(圖1中L1),形成LC低通濾波器來提供更穩(wěn)定的類比電壓。
如果你的電源電壓高于微控制器的輸入電壓上限,則通常需要降壓型線性穩(wěn)壓器。舉例來說,德州儀器出品的TPS795xx有特別低雜訊的特性,并且可以供應高達500mA的電流。
如果你的電源電壓明顯高于微控制器所需的電壓,則降壓型開關穩(wěn)壓器會是比較好的選擇。當輸入電壓明顯高于輸出電壓時,線性穩(wěn)壓器會浪費太多電力。
然而,通常能對開關穩(wěn)壓器的輸出電壓用線性穩(wěn)壓器進行次穩(wěn)壓還是最好,這是因為線性穩(wěn)壓器提供的電壓雜訊低很多。
時鐘
STM32F4可以內(nèi)部或外部的系統(tǒng)時鐘執(zhí)行。啟動時使用的系統(tǒng)時鐘是內(nèi)部時脈(16 MHz),在系統(tǒng)起始化后可以透過軟體選取外部時脈來源。
STM32F4上的時鐘腳位可以驅(qū)動一個外部4到26 MHz 的石英晶體(參見圖1中X1)或可使用一個最高50 MHz的外部時鐘來源。
晶體的配置上必須嚴格遵守資料表上的指示。一般而言,布線要短,而晶體上的負載電容要和晶體制造商建議的數(shù)值相同。
GPIO
微控制器上的通用輸入輸出(GPIO)腳位可程式化,且可以透過軟體設定為輸入或輸出。
舉例來說,圖1中的S1是和一個被程式化為輸入的GPIO腳位相連的按鈕。STM32提供內(nèi)建的上拉電阻器,所以這個按鈕不需要加裝外部的上拉電阻元件。此例的GPIO輸出用來驅(qū)動LED。
多數(shù)的GPIO腳位亦具有其他功能,而晶片上的各種周邊元件就是透過這些多功能腳位和外界聯(lián)系。
并非所有內(nèi)部功能都能透過每個GPIO腳位使用,而且有嚴格的腳位對應要遵守,所以選擇要使用哪些腳位時務必參考資料表。
GPIO腳位可以用來驅(qū)動各種負載,而多數(shù)的腳位可以供應或承受最高25mA的電流。然而一般而言使用外部驅(qū)動電路來減輕微控制器GPIO驅(qū)動負載是較好的設計??梢詤⒖紙D1中MN1驅(qū)動LED的例子。
STM32每個腳位都有額定的電流上限,也有所有GPIO腳位電流總和的上限。
連接周邊元件
STM32透過UART、I2C、SPI和USB等界面來提供序列訊號連接。
舉例來說,在圖1里有一個溫度感應器(U2 – LM75BDP)透過I2C匯流排連接到微控制器。I2C匯流排上需要兩個上拉電阻器(R2、R3)連接汲極開路驅(qū)動器。
對于多數(shù)低速感測器這類的應用而言,我偏好使用I2C做為序列協(xié)定,因為它只用兩條電線來進行通訊。另外,和需要額外晶片選擇工作埠來處理每個周邊元件的SPI不同的是I2C使用單一的位址。
圖1里的SPI匯流排連接到Invensense出品的MPU-9250九軸動作感測器。MPU-9250包含一個三軸加速度計、一個三軸陀螺儀和一個三軸磁力儀。
編程連接器
STM32F4提供兩種系統(tǒng)內(nèi)程式編輯(ISP)界面:序列線除錯(SWD)和JTAG。STM32較低價的版本只提供SWD界面。SWD和JTAG是微控制器最常采用的兩種編程界面。
結(jié)論
在本文中我們討論了微控制器的PCB電路設計,并針對能夠讀取輸入按鈕、驅(qū)動LED、和I2C溫度感應器以及SPI動作感應器通訊的STM32F4進行介紹。
深圳宏力捷推薦服務:PCB設計打樣 | PCB抄板打樣 | PCB打樣&批量生產(chǎn) | PCBA代工代料