經常使用STM32開發的工程師對于它的開發環境的最小系統是必須要有所了解的,特別是硬件工程師在設計硬件的時候對這個最小系統就要更加的深入了解了,如果最小系統的搭建都有問題,那以后的使用很難避免不出現問題。
話不多說,進入正題說說STM32的最小系統的基本組成!
1、STM32最小系統硬件組成包括哪些?
STM32的最小系統的硬件組成主要有:電源電路、復位電路、時鐘電路、調試接口電路、啟動電路。
電源 : 一般是3.3V輸入作為STM32芯片的工作電壓,實際中很多采用LDO將5V轉換為3.3V進行供電,另外電路上還要加多個0.01uf去耦電容對輸入電壓進行濾波,穩定輸入電壓。
復位:STM32中有三種復位方式,分別為:上電復位、手動復位、程序自動復位。 上電復位是指芯片根據外部搭建的復位電路,在上電的時候進行的復位; 手動復位是指通過外部的復位電路自己手動進行復位; 程序復位是在軟件中通過代碼對STM32芯片進行的復位。
2、復位電路
STM32單片機的復位電路的作用是在進行復位的時候,讓單片機的程序計數器回到0000H這個地址,從而讓程序從開始處重新執行。
復位操作還會將一些寄存器、存儲單元的值重新設置為初始的設定值,讓單片機重新開始執行。
STM32單片機的三種復位方式的區別:
1)上電復位:是在單片機上電啟動的時候進行復位的,不需要人為干預,自動完成復位;
2)手動復位:通過外部的復位電路手動進行復位,比如按鈕、開關之類的;
3)程序復位:通過程序內部的程序進行復位,一般有內核復位函數、看門狗復位等的軟件復位方式。
(1)上電復位:
上電復位是需要通過外部的電容實現的。
在上圖的電路中,上電復位電路由VCC、C1、R2組成。
假設單片機在RESET端輸入高電平時進行復位,那么上電復位的原理為:在上電瞬間,C1電容的充電電流很大,電容相當于短路,RESET出現短暫的高電平,這個高電平會對單片機進行復位。 當C1電容兩端的電壓達到VCC時,電容C1充滿電就相當于斷路,RESET端變為低電平,單片機開始運行。 由此,即實現了自動上電復位。
有一個問題是需要注意的:自動復位電路中,RESET端的高電平持續的時間要維持在一定的時間才能完成復位,這個時間一般要求1ms左右。
高電平持續時間由上電復位電路中的電阻和電容共同決定,計算公式如下:
t = 1.1RC(電平持續時間的計算公式)
在上圖中,高電平的持續時間為:t = 1.110K0.1uF = 1.1ms,需求的高電平復位信號持續時間大于1ms,可以實現復位操作。
(2)硬件復位:
硬件復位還是可以參照圖:
按鍵S5按下時,RESET端為高電平,從而對單片機進行復位,松開按鍵S5單片機正常運行。
3、時鐘(晶振)電路
3.1、時鐘電路介紹
一個簡單的時鐘電路如下:
時鐘電路的組成班闊: 晶振+起振電容 +反饋電阻(MΩ級)
晶振:一般選擇8MHZ 方便倍頻。 常見的晶振有:
有源:更穩定 成本更高 需要接電源供電 不需要外圍電路 3腳單線輸出
無源:精度基本夠 方便靈活 便宜
這兩者最大的區別:是否需要單獨供電。
無源晶振不需要供電,但是需要外接起振電容; 有源晶振是需要提供工作電壓的。
(1)晶振兩端的電容的作用:
1、使晶振兩端的等效電容等于或接近于負載電容;
2、起到一定的濾波的作用,濾除晶振波形中的高頻雜波;
該起振電容的大小一般選擇10~40pF,當然根據不同的單片機使用手冊可以具體查閱,如果手冊上沒有說明,一般選擇20pF、30pF即可,這是個經驗值。
調整電容可微調振蕩頻率:
一般情況下,增大電容會使振蕩頻率下降,而減小電容會使振蕩頻率升高;
()反饋電阻: 1M 負反饋同時也起到限流的作用。
晶振電路主要分析如下:
1、連接晶振的芯片端內部是一個線性運算放大器,將輸入進行反向180度輸出,晶振處的負載電容電阻組成的網絡提供另外180度的相移; 整個環路的相移360度,滿足振蕩的相位條件;
2、 晶振輸入輸出連接的電阻作用是產生負反饋,保證放大器工作在高增益的線性區,一般在M歐級;
3、 限流的作用,防止反向器輸出對晶振過驅動,損壞晶振,有的晶振不需要是因為把這個電阻已經集成到了晶振里面。
3.2、時鐘電路應用
STM32的時鐘樹:
三種不同的時鐘源可被用來驅動系統時鐘(SYSCLK):
1)HSI振蕩器時鐘
2)HSE振蕩器時鐘
3)PLL時鐘
這些設備有以下2種二級時鐘源:
1)40kHz低速內部RC,可以用于驅動獨立看門狗和通過程序選擇驅動RTC。 RTC用于從停機/待機模式下自動喚醒系統。
2)32.768kHz低速外部晶體也可用來通過程序選擇驅動RTC(RTCCLK)。
當不被使用時,任一個時鐘源都可被獨立地啟動或關閉,由此優化系統功耗。
3.2.1、STM32的3個內部時鐘
HSI時鐘:
HSI時鐘信號由內部8MHz的RC振蕩器產生,可直接作為系統時鐘或在2分頻后作為PLL輸入。 HSI RC振蕩器能夠在不需要任何外部器件的條件下提供系統時鐘。 它的啟動時間比HSE晶體振蕩器短。 然而,即使在校準之后它的時鐘頻率精度仍較差。 當HSI被用于作為PLL時鐘的輸入時,系統時鐘能得到的最大頻率是64MHz 。
LSI時鐘: LSI RC擔當一個低功耗時鐘源的角色,它可以在停機和待機模式下保持運行,為獨立看門狗和自動喚醒單元提供時鐘。 LSI時鐘頻率大約40kHz(在30kHz和60kHz之間)。
PLL時鐘: 內部PLL可以用來倍頻HSI RC的輸出時鐘或HSE晶體輸出時鐘。
3.2.2、兩個外部時鐘
HSE時鐘: 高速外部時鐘信號(HSE)由以下兩種時鐘源產生:
1)HSE外部晶體/陶瓷諧振器
2)HSE用戶外部時鐘
為減少時鐘輸出的失真和縮短啟動穩定時間,晶體/陶瓷諧振器和負載電容器必須盡可能地靠近振蕩器引腳。 負載電容值必須根據所選擇的振蕩器來調整。
LSE時鐘: LSE晶體是一個32.768kHz的低速外部晶體或陶瓷諧振器。 它為實時時鐘或者其他定時功能提供一個低功耗且精確的時鐘源。
4、啟動(BOOT)電路
STM32芯片的啟動方式是可以選擇的,方式的選擇通過啟動模式選擇端口(BOOT)進行選擇,有BOOT(B1)和BOOT2(B2)兩種選擇,啟動模式的選擇方式如下圖所示:
STM32三種啟動模式對應的存儲介質均是芯片內置的,它們是:
1)用戶閃存 = 芯片內置的Flash。
2)SRAM = 芯片內置的RAM區,就是內存啦。
3)系統存儲器 = 芯片內部一塊特定的區域,芯片出廠時在這個區域預置了一段Bootloader,就是通常說的ISP程序。 這個區域的內容在芯片出廠后沒有人能夠修改或擦除,即它是一個ROM區,它是使用USART1作為通信口。
5、調試、下載電路
STM32有兩種調試接口,JTAG為5針, SWD為2線串行(一共四線),下載電路除了前面兩種還有串口下載、ISP下載。
比如常用的JTAG程序下載、調試電路:
評論
查看更多