《嵌入式-STM32開(kāi)發(fā)指南》第一部分 入門篇 - 第2章 硬件資源簡(jiǎn)介

在講解本節(jié)前笆搓,筆者先聲明下,筆者在寫這套教程前,參看了很多開(kāi)發(fā)板满败,目前手頭上的STM32F1不下十余種肤频,每一塊板子最大的區(qū)別就是CPU型號(hào)不同,外設(shè)不同算墨,其最小系統(tǒng)都是一樣的宵荒。外設(shè)這個(gè)說(shuō)起就就很多,筆者本文只講最小系統(tǒng)部分米同,以后在文章中,用到哪塊外設(shè)在具體講解相關(guān)硬件摔竿。

2.1 微處理器

本教程主要以STM32F103ZET6為MCU面粮,在講解芯片資源之前,我們先看看STM32的命名規(guī)則继低,如下圖熬苍。

圖1STM32命名規(guī)則.png

該芯片是STM32F103 里面配置非常強(qiáng)大的了,它擁有的資源包括:64KB SRAM、 512KB FLASH袁翁、 2 個(gè)基本定時(shí)器柴底、 4 個(gè)通用定時(shí)器、 2 個(gè)高級(jí)定時(shí)器粱胜、 2 個(gè) DMA 控制器(共 12 個(gè)通道)柄驻、 3 個(gè) SPI、2 個(gè) IIC焙压、 5 個(gè)串口鸿脓、 1 個(gè) USB、 1 個(gè) CAN涯曲、 3 個(gè) 12 位 ADC野哭、 1 個(gè) 12 位 DAC、 1 個(gè) SDIO 接口幻件、1 個(gè) FSMC 接口以及 112 個(gè)通用 IO 口拨黔。該芯片的配置十分強(qiáng)悍,并且還帶外部總線(FSMC)可以用來(lái)外擴(kuò) SRAM 和連接 LCD 等绰沥,通過(guò) FSMC (可變靜態(tài)存儲(chǔ)控制器)驅(qū)動(dòng) LCD篱蝇,可以顯著提高 LCD 的刷屏速度,是 STM32F1 家族常用型號(hào)里面徽曲,最高配置的芯片了态兴。關(guān)于MCU的具體見(jiàn)下圖。

圖2MCU硬件電路.png

當(dāng)然也可從STM32官網(wǎng)找到相應(yīng)的數(shù)據(jù)手冊(cè)疟位,查看其詳細(xì)的資源瞻润,具體資源大綱如下圖所示。

圖3 STM32F1資源大綱.png

2.2 STM32 最小系統(tǒng)

2.2.1電源

STM32F103ZE要求2.0~3.6V的操作電壓(VDD),并采用嵌入式的調(diào)壓器提供內(nèi)部1.8V的數(shù)字電源绍撞。當(dāng)主電源VDD關(guān)閉時(shí)正勒,實(shí)時(shí)時(shí)鐘(RTC)和備用寄存器可以從VBAT供電,官方給出的標(biāo)準(zhǔn)供電方案如下圖所示傻铣。

圖4 STM32完整供電一覽.png

雖然STM32芯片的供電范圍2.0V到3.6V之間章贞,標(biāo)準(zhǔn)電壓是3.3V,但我們?cè)谠O(shè)計(jì)板子時(shí)一般選用12V直流電源和5V直流電源非洲,然后進(jìn)行降壓濾波處理鸭限。筆者使用的板子既可以5V輸入,也可以12V輸入两踏,具體電路如下圖所示败京。

圖5.png

如圖4所示為板子的入口電源,選用LM25965-5.0和AMS1117-3.3作為電壓轉(zhuǎn)換芯片梦染,D6是瞬態(tài)電壓抑制二極管赡麦,可有效避免電壓不穩(wěn)和電源反接的情況,從而保護(hù)板子損壞帕识。左圖為芯片供電電源泛粹,其典型值為3.3V,我們?yōu)樾枰拿總€(gè)電源街上0.1uf的高頻濾波帶電容肮疗。

2.2.2復(fù)位

系統(tǒng)復(fù)位將復(fù)位除了時(shí)鐘控制器CSR中的復(fù)位標(biāo)志和備用域的寄存器以外的所有寄存器(圖1)晶姊。當(dāng)下列事件有一個(gè)發(fā)生都將產(chǎn)生系統(tǒng)復(fù)位:

1.NRST引腳上出現(xiàn)低電平(外部復(fù)位)

  1. 窗口看門狗計(jì)數(shù)終止(WWDG復(fù)位)
  2. 獨(dú)立看門狗計(jì)數(shù)終止(IWDG復(fù)位)
  3. 軟件復(fù)位(SW復(fù)位)
  4. 低功耗管理復(fù)位

可通過(guò)查看控制/狀態(tài)寄存器(RCC_CSR)中的復(fù)位標(biāo)志來(lái)識(shí)別復(fù)位源。

圖6復(fù)位電路.png

這里要介紹的是硬件復(fù)位伪货,也就是外部復(fù)位電路帽借,幾乎所有的復(fù)位電路都差不多,和51單片機(jī)的原理是一樣的超歌。

上電復(fù)位:上電時(shí)砍艾,由于有電容C5的原因,RESET端會(huì)產(chǎn)生一段低電平巍举,從而進(jìn)行復(fù)位脆荷。

按鍵復(fù)位:按下按鍵,把電容的電放光懊悯,然后低電平持續(xù)一段時(shí)間后復(fù)位蜓谋。

圖7復(fù)位電路圖.png

2.2.3時(shí)鐘

始終是MCU的心臟,沒(méi)有時(shí)鐘炭分,那么MCU也就跑不動(dòng)桃焕。STM32三個(gè)不同的時(shí)鐘源可以用來(lái)驅(qū)動(dòng)系統(tǒng)時(shí)鐘(SYSCLK):

● HSI晶振時(shí)鐘(高速內(nèi)部時(shí)鐘信號(hào))
● HSE晶振時(shí)鐘(高速外部時(shí)鐘信號(hào))
● PLL時(shí)鐘

STM32有兩個(gè)二級(jí)時(shí)鐘源:
● 40kHz的低速內(nèi)部RC,它可以驅(qū)動(dòng)獨(dú)立看門狗捧毛,還可選擇地通過(guò)程序選擇驅(qū)動(dòng)RTC观堂。 RTC用于從停機(jī)/待機(jī)模式下自動(dòng)喚醒系統(tǒng)让网。
● 32.768kHz的低速外部晶振,可選擇它用來(lái)驅(qū)動(dòng)RTC(RTCCLK)师痕。

每個(gè)時(shí)鐘源在不使用時(shí)都可以單獨(dú)被打開(kāi)或關(guān)閉溃睹,這樣就可以優(yōu)化系統(tǒng)功耗。

圖8時(shí)鐘樹(shù).png

當(dāng)使用HSI作為PLL時(shí)鐘的輸入時(shí)胰坟,所能達(dá)到的最大系統(tǒng)時(shí)鐘為64MHz因篇。

2.2.3.1 HSE時(shí)鐘

高速外部時(shí)鐘信號(hào)(HSE)由以下兩種時(shí)鐘源產(chǎn)生:
● HSE外部晶體 / 陶瓷 諧振器(見(jiàn)圖9(a))
● HSE用戶外部時(shí)鐘(見(jiàn)圖9(b))

圖9 HSE時(shí)鐘.png

(a)外部時(shí)鐘 (b)晶振時(shí)鐘

1.外部時(shí)鐘源(HSE旁路)

在這種模式下,必須提供一個(gè)外部時(shí)鐘源笔横。它的頻率可高達(dá)25MHz竞滓。外部時(shí)鐘信號(hào)(占空比為50%的方波、 正弦波或三角波)必須連到OSC_IN引腳吹缔,同時(shí)保證OSC_OUT引腳懸空商佑,見(jiàn)圖9(a)。這個(gè)外部時(shí)鐘源是指從其他處理器等引入的時(shí)鐘源涛菠,STM32的demo板就是使用的這種方式莉御,主控器MCU的外部時(shí)鐘源來(lái)自ST Link處理器提供的時(shí)鐘信號(hào)撇吞。

2.外部晶體/陶瓷諧振器(HSE晶體)

這個(gè)4~16MHz的外部晶振的優(yōu)點(diǎn)在于能產(chǎn)生非常精確的主時(shí)鐘俗冻。 圖9顯示了它需要的相關(guān)硬件配置。諧振器和負(fù)載電容需要盡可能近地靠近振蕩器的引腳牍颈,以減小輸出失真和啟動(dòng)穩(wěn)定時(shí)間迄薄。負(fù)載電容值必須根據(jù)選定的晶振進(jìn)行調(diào)節(jié)。這種方式也是我們常用的方式煮岁,具體電路如下所示讥蔽。

圖10外部晶體電路圖.png

2.2.3.2 HSE時(shí)鐘

低速外部時(shí)鐘源(LSE)可以由兩個(gè)可能的時(shí)鐘源來(lái)產(chǎn)生:

● LSE外部晶體 / 陶瓷諧振器(見(jiàn)圖11(a))
● LSE用戶外部時(shí)鐘(見(jiàn)圖11(b))

1.外部源(LSE旁路)

在這種模式下,必須提供一個(gè)外部時(shí)鐘源画机。它的頻率必須為32.768kHz冶伞。外部信號(hào)(占空比為50%的方波、 正弦波或三角波)必須連到OSC32_IN引腳步氏,同時(shí)保證OSC_OUT引腳懸空响禽。

2.外部晶體/陶瓷諧振器(LSE晶體)

這個(gè)LSE晶體是一個(gè)32.768kHz的低速外部晶體或陶瓷諧振器。它的優(yōu)點(diǎn)在于能為實(shí)時(shí)時(shí)鐘部件(RTC)提供一個(gè)低速的荚醒,但高精確的時(shí)鐘源芋类。 RTC可以用于時(shí)鐘/日歷或其它需要計(jì)時(shí)的場(chǎng)合。諧振器和加載電容需要盡可能近地靠近晶振引腳界阁,這樣能使輸出失真和啟動(dòng)穩(wěn)定時(shí)間減到最小侯繁。負(fù)載電容值必須根據(jù)選定的晶振進(jìn)行調(diào)節(jié)。外部晶體時(shí)鐘如圖12所示泡躯。

圖11 LSE時(shí)鐘.png

(a)外部時(shí)鐘 (b)晶振時(shí)鐘

圖12.png

HSE和LSE外部晶體兩時(shí)鐘電路的兩個(gè)電容式為了抗干擾贮竟。對(duì)抗自然界中的一些干擾丽焊,如雷擊

2.2.4下載電路

1.JTAG/SWD仿真與下載接口

STM32F103 板載的JTAG/SWD 接口電路如圖所示。值得注意的是JTAG的標(biāo)準(zhǔn)接口是 20 針坝锰。

圖13.png

筆者一般使用ST-Link V2作為硬件仿真工具粹懒,使用SWD模式。ST-Link V2是STM32官方的推薦工具顷级,接線也非常方便凫乖。

2.ISP下載接口

ISP下載就是使用串口下載程序,電路圖如下弓颈,關(guān)于ISP下載電路的原理筆者單獨(dú)寫文章帽芽,盡請(qǐng)期待。

圖14.png

2.3 STM32 啟動(dòng)模式

要想STM32能正常啟動(dòng)翔冀,這一塊不弄清楚导街,你如果自己設(shè)計(jì)板子的話是無(wú)法正常工作的。

在STM32F10xxx里纤子,可以通過(guò)BOOT[1:0] 引腳選擇三種不同啟動(dòng)模式搬瑰。

表1 STM32啟動(dòng)模式

在系統(tǒng)復(fù)位后,SYSCLK的第4個(gè)上升沿控硼,BOOT引腳的值將被鎖存泽论。用戶可以通過(guò)設(shè)置BOOT1和BOOT0引腳的狀態(tài),來(lái)選擇在復(fù)位后的啟動(dòng)模式卡乾。

在從待機(jī)模式退出時(shí)翼悴,BOOT引腳的值將被重新鎖存;因此幔妨,在待機(jī)模式下BOOT 引腳應(yīng)保持為需要的啟動(dòng)配置鹦赎。在啟動(dòng)延遲之后,CPU從地址0x0000 0000 獲取堆棧頂?shù)牡刂肺蟊ぃ膯?dòng)存儲(chǔ)器的0x0000 0004 指示的地址開(kāi)始執(zhí)行代碼古话。

因?yàn)楣潭ǖ拇鎯?chǔ)器映像,代碼區(qū)始終從地址0x0000 0000 開(kāi)始( 通過(guò)ICode 和DCode總線訪問(wèn))锁施,而數(shù)據(jù)區(qū)(SRAM) 始終從地址0x2000 0000 開(kāi)始(通過(guò)系統(tǒng)總線訪問(wèn)) 陪踩。Cortex-M3的CPU始終從ICode 總線獲取復(fù)位向量,即啟動(dòng)僅適合于從代碼區(qū)開(kāi)始( 典型地從Flash啟動(dòng)) 沾谜。STM32F10xxx微控制器實(shí)現(xiàn)了一個(gè)特殊的機(jī)制膊毁,系統(tǒng)可以不僅僅從Flash存儲(chǔ)器或系統(tǒng)存儲(chǔ)器啟動(dòng),還可以從內(nèi)置SRAM啟動(dòng)基跑。

根據(jù)選定的啟動(dòng)模式婚温,主閃存存儲(chǔ)器、系統(tǒng)存儲(chǔ)器或SRAM 可以按照以下方式訪問(wèn):

● 從主閃存存儲(chǔ)器啟動(dòng):主閃存存儲(chǔ)器被映射到啟動(dòng)空間(0x0000 0000)媳否,但仍然能夠在它原有的地址(0x0800 0000) 訪問(wèn)它栅螟,即閃存存儲(chǔ)器的內(nèi)容可以在兩個(gè)地址區(qū)域訪問(wèn)荆秦,0x0000 0000或0x0800 0000 。

● 從系統(tǒng)存儲(chǔ)器啟動(dòng):系統(tǒng)存儲(chǔ)器被映射到啟動(dòng)空間(0x0000 0000) 力图,但仍然能夠在它原有的地址(互聯(lián)型產(chǎn)品原有地址為0x1FFF B000步绸,其它產(chǎn)品原有地址為0x1FFF F000)訪問(wèn)它。

● 從內(nèi)置SRAM啟動(dòng):只能在0x2000 0000 開(kāi)始的地址區(qū)訪問(wèn)SRAM吃媒。

注意:當(dāng)從內(nèi)置SRAM 啟動(dòng)瓤介,在應(yīng)用程序的初始化代碼中,必須使用NVIC的異常表和偏移寄存器赘那,重新映射向量表之SRAM 中刑桑。

內(nèi)嵌的自舉程序存放在系統(tǒng)存儲(chǔ)區(qū),由ST在生產(chǎn)線上寫入募舟,用于通過(guò)可用的串行接口對(duì)閃存存儲(chǔ)器進(jìn)行重新編程:

● 對(duì)于小容量祠斧、中容量和大容量的產(chǎn)品而言,可以通過(guò)USART1接口啟用自舉程序拱礁。

● 對(duì)于互聯(lián)型產(chǎn)品而言琢锋,可以通過(guò)以下某個(gè)接口啟用自舉程序:USART1 、USART2(重映像的)呢灶、CAN2(重映像的)或USB OTG全速接口的設(shè)備模式(通過(guò)設(shè)備固件更新DFU協(xié)議)吴超。USART接口依靠?jī)?nèi)部8MHz振蕩器(HSI)運(yùn)行。CAN和USB OTG接口只能當(dāng)外部有一個(gè)8MHz 填抬、14.7456MHz 或25MHz時(shí)鐘(HSE)時(shí)運(yùn)行烛芬。

歡迎訪問(wèn)我的網(wǎng)站:

BruceOu的嗶哩嗶哩
BruceOu的主頁(yè)
BruceOu的博客
CSDN博客
簡(jiǎn)書

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末隧期,一起剝皮案震驚了整個(gè)濱河市飒责,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌仆潮,老刑警劉巖宏蛉,帶你破解...
    沈念sama閱讀 216,843評(píng)論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異性置,居然都是意外死亡拾并,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,538評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門鹏浅,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)嗅义,“玉大人,你說(shuō)我怎么就攤上這事隐砸≈耄” “怎么了?”我有些...
    開(kāi)封第一講書人閱讀 163,187評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵季希,是天一觀的道長(zhǎng)褪那。 經(jīng)常有香客問(wèn)我幽纷,道長(zhǎng),這世上最難降的妖魔是什么博敬? 我笑而不...
    開(kāi)封第一講書人閱讀 58,264評(píng)論 1 292
  • 正文 為了忘掉前任友浸,我火速辦了婚禮,結(jié)果婚禮上偏窝,老公的妹妹穿的比我還像新娘收恢。我一直安慰自己,他們只是感情好祭往,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,289評(píng)論 6 390
  • 文/花漫 我一把揭開(kāi)白布派诬。 她就那樣靜靜地躺著,像睡著了一般链沼。 火紅的嫁衣襯著肌膚如雪默赂。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書人閱讀 51,231評(píng)論 1 299
  • 那天括勺,我揣著相機(jī)與錄音缆八,去河邊找鬼。 笑死疾捍,一個(gè)胖子當(dāng)著我的面吹牛奈辰,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播乱豆,決...
    沈念sama閱讀 40,116評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼奖恰,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了宛裕?” 一聲冷哼從身側(cè)響起瑟啃,我...
    開(kāi)封第一講書人閱讀 38,945評(píng)論 0 275
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎揩尸,沒(méi)想到半個(gè)月后蛹屿,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,367評(píng)論 1 313
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡岩榆,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,581評(píng)論 2 333
  • 正文 我和宋清朗相戀三年错负,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片勇边。...
    茶點(diǎn)故事閱讀 39,754評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡犹撒,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出粒褒,到底是詐尸還是另有隱情识颊,我是刑警寧澤,帶...
    沈念sama閱讀 35,458評(píng)論 5 344
  • 正文 年R本政府宣布怀浆,位于F島的核電站谊囚,受9級(jí)特大地震影響怕享,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜镰踏,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,068評(píng)論 3 327
  • 文/蒙蒙 一函筋、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧奠伪,春花似錦跌帐、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 31,692評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至滤否,卻和暖如春脸狸,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背藐俺。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 32,842評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工炊甲, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人欲芹。 一個(gè)月前我還...
    沈念sama閱讀 47,797評(píng)論 2 369
  • 正文 我出身青樓卿啡,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親菱父。 傳聞我的和親對(duì)象是個(gè)殘疾皇子颈娜,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,654評(píng)論 2 354