STM32F103RCT6:
STM32F103RCT6是一種嵌入式-微控制器的集成電路(IC),32位 Cortex-M3內核處理器,速度是72MHz,程序存儲器容量是256KB,程序存儲器類型是FLASH,RAM容量是48K,封裝LQFP64。STM32單片機命名規則:
STM32單片機最小系統:
所謂單片機最小系統,就是讓單片機能夠正常運行,最少且必須的器件所組成的系統。單片機最小系統上電之後,單片機可以正常復位,下載程序,除此之外沒有其他任何功能。在最小系統保證正確的基礎上,可以依次添加其他功能模塊或器件,使之單片機具有實際功能。STM32單片機最小系統包括一個復位電路和一個時鐘電路。如下圖1所示。圖中復位電路使用的是上電復位電路,STM32單片機NRST引腳輸入低電平,則發生復位。圖1 STM32F103單片機最小系統
電源引腳:
VDD是單片機的數字電源正極,VSS是數字電源負極,共有5個VDD引腳,5個VSS引腳。VDDA是單片機的模擬電源正極,負責給內部的ADC、DAC模塊供電,VSSA是模擬電源負極。還有一個電源引腳,就是VBAT,BAT就是Battery(電池),這個引腳用來連接電池的正極的。STM32帶RTC功能(實時時鐘),所以有VBAT引腳。原理圖上預留了一個CR1220紐扣鋰電池,當主電源供電存在的情況下,由系統中的VCC3.3給VBAT供電;當主電源斷電之後,由CR1220紐扣電池給STM32自帶的RTC模塊供電,從而能夠保證實時時鐘模塊在主電源掉電的情況下還能夠正常工作。但是這樣設計的話,這裡有一個矛盾需要解決。如果VBAT引腳直接與VCC3.3和CR1220連接的話,會存在下面問題:1、當電池電壓高於3.3V,電池就會輸出電流到AMS1117,使得晶片發燙,還會很快消耗電池電量。2、如果電池電壓低於3.3V,AMS1117產生的3.3V,就會給電池充電,而這種CR1220電池是不能夠充電的。為了解決上面問題,我們將VBAT引腳的供電電路設計如下:D1防止電池的電流流向AMS1117,D2防止AMS1117產生的3.3V流向電池。正常產品設計的時候,每個電源引腳旁邊,最好放置一個0.1uF的電容濾波,用來濾除電源的噪聲雜波。復位引腳NRST
復位就是重啟。STM32復位引腳是低電平復位,正常工作狀態,復位引腳是高電平。單片機的置位和復位,其目的都是為了把電路初始化到一個確定狀態。復位時在單片機內部單片機是將存儲設備和一些寄存器裝入生產廠商預設的一個值。一般來說,單片機復位電路的作用是把一個狀態機初始化到一個空的狀態。單片機實現上電復位的原理:
當復位電平(低電平)持續兩個機器周期以上時復位有效,系統上電後由於電容的充電,會保持一段時間的低電平來使單片機復位。剛上電,電容兩端電壓為0,即低電平復位,RC電路有個充電曲線(即電容兩端電壓變化曲線),單片機識別外部電平有一個連接電壓,保證rc電路電容電壓充到單片機臨界電壓的時間在兩個機器周期以上就能滿足單片機復位條件;當3.3V電源加到VCC3.3時,RC電路導通,NRST與地的電位差為電容與地的電位差。NRST與地的電位差只有電容充電完畢後才會達到3.3V,所以在電容的充電過程中,給晶片引腳的信號都是低電平。根據RC電路充電方程式V(t)=U+A*e-(t/RC),只要合理的選擇好R跟C的值就可以保證充電時間大於晶片復位所要求的時間。我們一般R選擇10K電阻,C選擇0.1uF電容。晶振引腳
STM32有兩組晶振,一組用來給單片機提供主時鐘(5:OSC_IN,6:OSC_OUT),主時鐘晶振使用8MHz的晶振(為了程序內部倍頻方便,一般選用8MHz的晶振)。一組用來給RTC提供時鐘(3:OSC32_IN,4:OSC32_OUT),RTC時鐘晶振,需要連接32.768K的晶振,關於為什麼要用32.768KHz,大家可以去百度了解一下哈。實際應用中,如果不用RTC功能的話,RTC的晶振不必連接。STM32的時鐘電路又分為內時鐘和外時鐘兩種模式。外部時鐘是在OSC_IN和OSC_OUT之間加上一個晶振,單片機內部振蕩器便能產生自激震蕩,產生時鐘信號,在晶振的兩側加上20~30pF的瓷片電容起到了微調時鐘頻率的作用,讓頻率更加穩定。內部時鐘是STM32內部有時鐘產生,所以如果不用外部晶振的話,也可以不用連接,內部時鐘是用晶片內部振蕩電路,精度不高,溫漂也較大,不需要外部振蕩器件。BOOT引腳
STM32有兩個BOOT引腳,分別是BOOT0和BOOT1,這兩個引腳的高低電平,決定了單片機的啟動方式和運行方式。第一種(BOOT1=X,BOOT0=0)啟動方式是最常用的用戶FLASH啟動。默認啟動方式。第二種(BOOT1=0,BOOT0=1)啟動方式是系統存儲器啟動方式。STM32中自帶的BootLoader( 就是通常說的ISP程序)就是在這種啟動方式中,如果出現程序硬體錯誤的話可以切換BOOT0=1到該模式下重新燒寫Flash即可恢復正常。BootLoader所在區域的內容在晶片出廠後沒有人能夠修改或擦除,即它是一個ROM區。第三種(BOOT1=1,BOOT0=1)啟動方式是STM32內嵌的SRAM啟動。該模式用於調試。上面就是最小系統的全部內容,當然只有上面的部分還不行,一般最小系統還包括下面幾部分:
電源電路:
因為STM32單片機一般都是3.3V供電,而生活中一般常見的都是5V電源(電腦的USB口,手機充電器,移動電源...),所以一般使用AMS1117-3.3V 穩壓電源晶片將5V降壓為3.3V,該晶片的封裝一般為SOT223。下載電路:
當然除了上面幾部分以為,還需要一個下載電路,STM32的下載方式有如下幾種:(1)串口下載:使用串口下載需要單片機內有相應的程序的支持,而系統存儲器中就放了這麼一段程序,由ST 在生產線上寫入,用於通過可用的串行接口對快閃記憶體存儲器進行重新編程。(在系統存儲器啟動模式下下載,因為在廠家提供的BootLoader中,提供了串口下載程序的固件,可以通過這個BootLoader將程序下載到系統的Flash中。程序燒錄在FLASH)。注意:使用此種方式需要BOOT0=1,即需要有外部電路支持才可以實現串口下載。推薦使用SWD模式下載,SWD模式只需要三個引腳(GND、SWCLK、SWDIO)即可實現程序的下載功能。各位有什麼想要了解的軟硬體知識,各種模塊,可以留言給我,咱們一起玩轉哈。