本文將基于 STM32 單片機(jī)(F1 系列)展開(kāi)講解。
背景
學(xué)嵌入式,我們一般從單片機(jī)學(xué)起。學(xué)單片機(jī),不能只學(xué)軟件,硬件知識(shí)也要跟上。軟硬件相結(jié)合的設(shè)計(jì),才是真正優(yōu)秀的設(shè)計(jì)。
談及單片機(jī)的硬件設(shè)計(jì),我們會(huì)先將其濃縮為最小系統(tǒng),即能實(shí)現(xiàn)最基礎(chǔ)的功能的最簡(jiǎn)化設(shè)計(jì)。以 STM32(F1 系列)單片機(jī)為例,最小系統(tǒng)無(wú)非是這幾部分:電源、復(fù)位、時(shí)鐘、啟動(dòng)模式、下載調(diào)試。
電源
STM32 的電源有以下幾種類型:
主電源(VDD / VSS)
主電源指的是標(biāo)記為 VDD1、VDD2... 的引腳。
每個(gè)引腳必須加一個(gè) 100nF 的濾波電容,且盡量靠近引腳放置,此外需要一個(gè) 10uF 的鉭電容公用。
后備電源(VBAT)
VBAT 引腳可用于電池供電。如果不用,可以與 VDD 連接在一起。VBAT 也需要一個(gè) 100nF 電容濾波。
可參考以下的電源選擇電路:
ADC 電源(VDDA / VSSA)
為了提高轉(zhuǎn)換精度,ADC 設(shè)備可以從這里取電。一般將 VDDA 通過(guò)一個(gè)電感后, 與 VDD 相連接。
若不用到 ADC,可將 VDD,VDDA,VREF+(如果有的話) 接在一起,并對(duì)地接 1uF 鉭電容 + 10nF 陶瓷電容濾波。
復(fù)位
因?yàn)?STM32 內(nèi)部有上拉電阻,所以外部只接 100nF 電容 + 按鍵即可:
上電時(shí),CPU 處于復(fù)位狀態(tài),此時(shí)電容充電,NRST 引腳電位持續(xù)拉低,當(dāng)電容充滿電后,NRST 電位變?yōu)楦唠娖?,此時(shí) CPU 退出復(fù)位模式,進(jìn)入正常運(yùn)行狀態(tài)。當(dāng)按鈕被按下時(shí),電容被短路清空電量,按鈕松開(kāi)后重新充電,觸發(fā)復(fù)位。
根據(jù)官方設(shè)計(jì)指南,電容選取 100nF 即可,以保證 NRST 低電平持續(xù)的時(shí)間滿足 CPU 復(fù)位的最小脈寬要求,能正常觸發(fā)復(fù)位。
如果不需要手動(dòng)復(fù)位功能,也可以略去按鍵。
時(shí)鐘
如上圖,STM32 的時(shí)鐘分以下幾種:
HSI:高速內(nèi)部時(shí)鐘,是內(nèi)部的 RC 振蕩器,頻率為 8MHz
HSE:高速外部時(shí)鐘,可接石英 / 陶瓷諧振器,或者接外部時(shí)鐘源,頻率范圍為 4MHz~16MHz
LSI:低速內(nèi)部時(shí)鐘,RC 振蕩器,頻率為 40kHz. 獨(dú)立看門狗的時(shí)鐘源只能是它,同時(shí)它也可以作為 RTC 的時(shí)鐘源
LSE:低速外部時(shí)鐘,接頻率為 32.768kHz 的石英晶體。LSE 是給 RTC 用的時(shí)鐘源
PLL:鎖相環(huán)倍頻輸出,其時(shí)鐘輸入源可選擇為 HSI/2,HSE 或 HSE/2. 倍頻可為 2~16 倍,但是輸出頻率最大不得超過(guò) 72MHz
從穩(wěn)定性上考慮,我們?cè)谠O(shè)計(jì)的時(shí)候一般使用外部晶振作為時(shí)鐘源。一般選取 8MHz 晶振作為 HSE,便于倍頻(一般倍頻到 72MHz);選取 32.768kHz 晶振作為 LSE,RTC 使用便于分頻(32768 是 2 的 15 次方,可以得到精準(zhǔn)的時(shí)間)。
至于晶振的選用,有源的精度高,無(wú)源的成本低,一般無(wú)源就足夠了。
如果選用無(wú)源晶振,則需要在兩端要加上起振電容,濾除晶振波形中的高頻雜波。容值可選 10 ~ 40pF.
晶振輸入輸出引腳之間可加一個(gè) 1M 的電阻,產(chǎn)生負(fù)反饋,保證放大器工作在高增益的線性區(qū)。同時(shí)還起到限流作用,防止反相器驅(qū)動(dòng)過(guò)載損壞晶振。
啟動(dòng)模式配置
一般將 BOOT0 引腳下拉(串接 10K 電阻再接地),BOOT1 任意 即可。
如果需要模式切換,也可以參照以下的設(shè)計(jì):
啟動(dòng)模式詳見(jiàn) STM32 的啟動(dòng)模式
下載調(diào)試接口
一般我們用 SWD 接口(接線少,方便),直接引出 SWDIO,SWCLK,VCC,GND 即可。
不需要添加外部上拉/下拉電阻,因?yàn)?STM32 內(nèi)部已經(jīng)有集成了。
總結(jié)
以上就是 STM32(F1 系列)最小系統(tǒng)的電路設(shè)計(jì)。
評(píng)論