STM32單片機最小系統怎麼畫

單片機最小系統,也就是能夠使得單片機正常運行程序,最少需要連接哪些器件。

一個單片機開發板,就是「單片機+外圍晶元」。一個單片機開發板,需要做哪些功能,完全是由你自己決定。你可以只做一個只有單片機的開發板,就是剛才說的最小系統板,也可以把單片機所有的功能全部做上,也可以只做一部分。

我們要做的,就是用到單片機所有引腳功能的開發板。我們先把單片機最小系統畫好,就可以繼續添加其它的外圍器件了。

上一篇文章,我們已經把單片機畫好了。相信你對STM32F103VET6已經有了一些了解。

電源引腳:

VDD是單片機的數字電源正極,VSS是數字電源負極,共有5個VDD引腳,5個VSS引腳。VDDA是單片機的模擬電源正極,負責給內部的ADC、DAC模塊供電,VSSA是模擬電源負極。VREF+是參考電壓輸入引腳正極,VREF-是參考電壓輸入引腳負極。

Advertisements

上一段提到了ADC和DAC模塊,這兩種模塊是數字與模擬的結合,負責數字信號和模擬信號的轉換。在某些應用中,對信號的雜訊要求很高,這就需要把數字信號和模擬信號分開,採取一定的措施連接,避免相互影響。所以單片機會有數字電源和模擬電源引腳。由於模擬電源需要一個很標準的電壓信號。所以就有了VREF引腳。但是,作為開發板,只是用來學習單片機用的,所以對雜訊要求不高,我們就只需要做一個簡單的隔離措施:在VDD和VDDA之間接一個0歐姆的電阻,同理,在VSS和VSSA之間接一個0歐姆的電阻。

把VREF+與VDDA連接,把VREF-與VSSA連接。(在實際應用中,VREF+用來連接標準的電壓輸出,比如REF3133,可以產生標準的3.300V。前面說到,開發板是用來學習的,沒有必要給VREF連接一個標準的3.3V,如果你非要連一個,我也不攔著。)

Advertisements

還有一個電源引腳,就是VBAT,BAT就是Battery(電池),那就好理解了,這個引腳用來連接電池的正極的。STM32帶RTC功能(實時時鐘),所以有VBAT引腳。

這裡有一個矛盾需要解決。我們開發板上需要帶一個電池,連接到VBAT引腳給RTC供電,我們也希望在不裝電池的時候,用USB電源轉過來的3.3V給VBAT引腳供電。如果直接連接的話,會有兩種後果:1.當電池電壓高於3.3V,電池就會輸出電流到AMS1117,使得晶元發燙,還會很快消耗電池電量。2.如果電池電壓低於3.3V,AMS1117產生的3.3V,就會給電池充電,而這種CR1220電池是不能夠充電的。

所以就有了下面這種解決方案:

D1防止AMS1117產生的3.3V流向電池,D2防止電池的電流流向AMS1117。道理很簡單,用的就是「二極體的單嚮導通性」。(不管哪個行業,高手都是那些基礎非常紮實的人。)

所有的電源引腳旁邊,都需要放置一個0.1uF的電容濾波,用來濾除電源的雜訊雜波。

光電源就寫了這麼長,寫的我指干掌燥的。

複位引腳

複位就是重啟。STM32複位引腳是低電平複位,正常工作狀態,複位引腳是高電平。

晶振引腳

STM32有兩組晶振,一組用來給單片機提供主時鐘,一組用來給RTC提供時鐘。(實際應用中,如果不用RTC功能的話,RTC的晶振不必連接。因為STM32內部有8M的時鐘產生,所以如果不用外部晶振的話,也可以不用連接。)我們開發板上,需要學習內部時鐘的轉換,以及還要學習RTC,所以這兩組晶振,我們都需要連接。

(這是主時鐘晶振,一般用8M,當然,10M,12M,16M等都可以用,不過,大家都用8M,為了程序的統一性,我們一般就是用8M。)

(這是RTC時鐘晶振,需要連接32.768K的晶振,關於為什麼要用32.768,大家可以去百度問問,這裡就不多說了。)

BOOT引腳

STM32有兩個BOOT引腳,分別是BOOT0和BOOT1,這兩個引腳的高低電平,決定了單片機的啟動方式和運行方式。

這裡我們可以先不必了解BOOT0和1分別變高變低會怎麼樣,我們把BOOT0和BOOT1引腳引出來,然後在排針上可以隨便配置BOOT0和BOOT1的高點電平,就可以做好開發板以後,學習這兩個引腳的用法了。

到這裡,最小系統就畫好了。

原以為最小系統寫不了多少內容,結果還是一大篇文章。這裡是正在直播的《免費教你做一個牛逼的STM32開發板》。如果想看以前的文章和以後的文章,關注我的微信公眾號:科技老頑童。

Advertisements

你可能會喜歡