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