STM32單片機(jī)硬件關(guān)鍵基礎(chǔ)精華及注意事項(xiàng)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
STM32簡(jiǎn)單介紹
一、背景
如果你正為項(xiàng)目的處理器而進(jìn)行艱難的選擇:一方面抱怨16位單片機(jī)有限的指令和性能,另一方面又抱怨32位處理器的高成本和高功耗,那么,基于 ARM Cortex-M3內(nèi)核的STM32系列處理器也許能幫你解決這個(gè)問(wèn)題。使你不必在性能、成本、功耗等因素之間做出取舍和折衷。
即使你還沒(méi)有看完STM32的產(chǎn)品手冊(cè),但對(duì)于這樣一款融合ARM和ST技術(shù)的“新生兒”相信你和我一樣不會(huì)擔(dān)心這款針對(duì)16位MCU應(yīng)用領(lǐng)域 的32位處理器的性能,但是從工程的角度來(lái)講,除了芯片本身的性能和成本之外,你或許還會(huì)考慮到開(kāi)發(fā)工具的成本和廣泛度;存儲(chǔ)器的種類、規(guī)模、性能和容 量;以及各種軟件獲得的難易,我相信你看完本專題會(huì)得到一個(gè)滿意的答案。
對(duì)于在16位MCU領(lǐng)域用慣專用在線仿真器(ICE)的工程師可能會(huì)擔(dān)心開(kāi)發(fā)工具是否能夠很快的上手?開(kāi)發(fā)復(fù)雜度和整體成本會(huì)不會(huì)增加?產(chǎn)品上 市時(shí)間會(huì)不會(huì)延長(zhǎng)?沒(méi)錯(cuò),對(duì)于32位嵌入式處理器來(lái)說(shuō),隨著時(shí)鐘頻率越來(lái)越高,加上復(fù)雜的封裝形式,ICE已越來(lái)越難勝任開(kāi)發(fā)工具的工作,所以在32位嵌 入式系統(tǒng)開(kāi)發(fā)中多是采用JTAG仿真器而不是你熟悉的ICE。但是STM32采用串行單線調(diào)試和JTAG,通過(guò)JTAG調(diào)試器你可以直接從CPU獲取調(diào)試 信息,從而將使你的產(chǎn)品設(shè)計(jì)大大簡(jiǎn)化,而且開(kāi)發(fā)工具的整體價(jià)格要低于ICE,何樂(lè)而不為?
有意思的是STM32系列芯片上印有一個(gè)蝴蝶圖像,據(jù)ST微控制器產(chǎn)品部Daniel COLONNA先生說(shuō),這是代表自由度,意在給工程師一個(gè)充分的創(chuàng)意空間。我則“曲解”為預(yù)示著一種蝴蝶效應(yīng),這種蝴蝶效應(yīng)不僅會(huì)對(duì)方案提供商以及終端產(chǎn) 品供應(yīng)商帶來(lái)舉足輕重的影響,而且會(huì)引起競(jìng)爭(zhēng)對(duì)手策略的改變……翅膀已煽動(dòng),讓我們一起靜觀其變!
二、STM32市面上流通的型號(hào)
截至2010年7月1日,市面流通的型號(hào)有:
基本型:STM32F101R6,STM32F101C8,STM32F101R8,STM32F101V8 ,STM32F101RB,STM32F101VB
增強(qiáng)型:STM32F103C8,STM32F103R8,STM32F103V8,STM32F103RB,STM32F103VB,STM32F103VE,STM32F103ZE
三、STM32系列的作用
ARM公司的高性能”Cortex-M3”內(nèi)核
1.25DMips/MHz,而ARM7TDMI只有0.95DMips/MHz
一流的外設(shè)
1μs的雙12位ADC,4兆位/秒的UART,18兆位/秒的SPI,18MHz的I/O翻轉(zhuǎn)速度
低功耗
在72MHz時(shí)消耗36mA(所有外設(shè)處于工作狀態(tài)),待機(jī)時(shí)下降到2μA
最大的集成度
復(fù)位電路、低電壓檢測(cè)、調(diào)壓器、精確的RC振蕩器等
簡(jiǎn)單的結(jié)構(gòu)和易用的工具
四、STM32F10x重要參數(shù)
2V-3.6V供電
容忍5V的I/O管腳
優(yōu)異的安全時(shí)鐘模式
帶喚醒功能的低功耗模式
內(nèi)部RC振蕩器
內(nèi)嵌復(fù)位電路
工作溫度范圍:-40℃至+85℃或105℃
五、性能特點(diǎn)
基本型STM32F101:36MHz CPU,多達(dá)16K字節(jié)SRAM,1x12位ADC溫度傳感器
增強(qiáng)型STM32F103:72MHz CPU,多達(dá)20K字節(jié)SRAM,2x12位ADC 溫度傳感,PWM定時(shí)器,CAN,USB
六、STM32互聯(lián)型系列簡(jiǎn)介:
全新STM32互連型(Connectivity)系列微控制器增加一個(gè)全速USB(OTG)接口,使終端產(chǎn)品在連接另一個(gè)USB設(shè)備時(shí)既可以 充當(dāng)USB主機(jī)又可充當(dāng)USB從機(jī);還增加一個(gè)硬件支持IEEE1588精確時(shí)間協(xié)議(PTP)的以太網(wǎng)接口,用硬件實(shí)現(xiàn)這個(gè)協(xié)議可降低CPU開(kāi)銷(xiāo),提高 實(shí)時(shí)應(yīng)用和聯(lián)網(wǎng)設(shè)備同步通信的響應(yīng)速度。
全新互連型系列還是STM32家族中首款集成兩個(gè)CAN2.0B控制器的產(chǎn)品,讓開(kāi)發(fā)人員能夠研制可連接兩條工業(yè)標(biāo)準(zhǔn)CAN(控制器區(qū)域網(wǎng))總 線的網(wǎng)關(guān)設(shè)備。此外,新系列微控制器還支持以太網(wǎng)、USB OTG和CAN2.0B外設(shè)接口同時(shí)工作,因此,開(kāi)發(fā)人員只需一顆芯片就能設(shè)計(jì)整合所有這些外設(shè)接口的網(wǎng)關(guān)設(shè)備。
STM32互連型系列產(chǎn)品強(qiáng)化了音頻性能,采用一個(gè)先進(jìn)的鎖相環(huán)機(jī)制,實(shí)現(xiàn)音頻級(jí)別的I2S通信。結(jié)合USB主機(jī)或從機(jī)功能,STM32可以從 外部存儲(chǔ)器(U盤(pán)或MP3播放器)讀取、解碼和輸出音頻信號(hào)。設(shè)計(jì)人員還可以在新系列微控制器上開(kāi)發(fā)人機(jī)界面(HMI)功能,如播放和停止按鍵,以及顯示 器界面。這個(gè)功能使其可用于各種家庭音響設(shè)備,如音響底座系統(tǒng)、鬧鐘/音樂(lè)播放器和家庭影院。
新系列產(chǎn)品整合先進(jìn)的面向連接的外設(shè),標(biāo)準(zhǔn)的STM32外設(shè)(包括一個(gè)PWM定時(shí)器),高性能的32位ARM Cortex-M3 CPU,這些特性使開(kāi)發(fā)人員可以在設(shè)備上(如家電、樓宇或工業(yè)自動(dòng)化)整合多種功能,如馬達(dá)控制、用戶界面控制和設(shè)備互連功能。其它目標(biāo)應(yīng)用包括需要聯(lián) 網(wǎng)、數(shù)據(jù)記錄或USB外設(shè)擴(kuò)展功能的系統(tǒng),如病患監(jiān)視、銷(xiāo)售終端機(jī)、自動(dòng)售貨機(jī)和保安系統(tǒng)。
包括新的互連型系列在內(nèi)的STM32系列微控制器具有多種配套軟件和開(kāi)發(fā)工具,其中包括意法半導(dǎo)體免費(fèi)提供的軟件庫(kù)以及第三方工具廠商的廣泛支持。意法半導(dǎo)體還將推出一個(gè)新的評(píng)估板,目前正在向大客戶提供STM32F105和STM32F107互連型系列的樣片。
七、STM32新系列產(chǎn)品的功能:
STM32互連型系列產(chǎn)品分為兩個(gè)型號(hào):STM32F105和STM32F107。STM32F105具有USB OTG 和CAN2.0B接口。STM32F107在USB OTG 和CAN2.0B接口基礎(chǔ)上增加了以太網(wǎng)10/100 MAC模塊 。片上集成的以太網(wǎng)MAC支持MII和RMII,因此,實(shí)現(xiàn)一個(gè)完整的以太網(wǎng)收發(fā)器只需一個(gè)外部PHY芯片。只使用一個(gè)25MHz晶振即可給整個(gè)微控制器 提供時(shí)鐘頻率,包括以太網(wǎng)和USB OTG外設(shè)接口。微控制器還能產(chǎn)生一個(gè)25MHz或50MHz的時(shí)鐘輸出,驅(qū)動(dòng)外部以太網(wǎng)PHY層芯片,從而為客戶節(jié)省了一個(gè)附加晶振。
音頻功能方面,新系列微控制器提供兩個(gè)I2S音頻接口,支持主機(jī)和從機(jī)兩種模式,既用作輸入又可用作輸出,分辨率為16位或32位。音頻采樣頻 率從8kHz到96kHz。利用新系列微控制器強(qiáng)大的處理性能,開(kāi)發(fā)人員可以用軟件實(shí)現(xiàn)音頻編解碼器,從而消除了對(duì)外部組件的需求。
把U盤(pán)插入微控制器的USB OTG接口,可以現(xiàn)場(chǎng)升級(jí)軟件;也可以通過(guò)以太網(wǎng)下載代碼進(jìn)行軟件升級(jí)。這個(gè)功能可簡(jiǎn)化大型系統(tǒng)網(wǎng)絡(luò)(如遠(yuǎn)程控制器或銷(xiāo)售終端設(shè)備)的管理和維護(hù)工作。
八、充分發(fā)揮 STM32架構(gòu)的優(yōu)勢(shì):
除新增的功能強(qiáng)化型外設(shè)接口外,STM32互連系列還提供與其它STM32微控制器相同的標(biāo)準(zhǔn)接口,這種外設(shè)共用性提升了整個(gè)產(chǎn)品家族的應(yīng)用靈 活性,使開(kāi)發(fā)人員可以在多個(gè)設(shè)計(jì)中重復(fù)使用同一個(gè)軟件。新STM32的標(biāo)準(zhǔn)外設(shè)包括10個(gè)定時(shí)器、兩個(gè)12位1-Msample/s 模數(shù)轉(zhuǎn)換器 (交錯(cuò)模式下2-Msample/s)、兩個(gè)12位數(shù)模轉(zhuǎn)換器、兩個(gè)I2C接口、五個(gè)USART接口和三個(gè)SPI端口。新產(chǎn)品外設(shè)共有12條DMA通道, 還有一個(gè)CRC計(jì)算單元,像其它STM32微控制器一樣,支持96位唯一標(biāo)識(shí)碼。
新系列微控制器還沿續(xù)了STM32產(chǎn)品家族的低電壓和節(jié)能兩大優(yōu)點(diǎn)。2.0V到3.6V的工作電壓范圍兼容主流的電池技術(shù),如鋰電池和鎳氫電 池,封裝還設(shè)有一個(gè)電池工作模式專用引腳Vbat。以72MHz頻率從閃存執(zhí)行代碼,僅消耗 27mA電流。低功耗模式共有四種,可將電流消耗降至兩微安。從低功耗模式快速啟動(dòng)也同樣節(jié)省電能;啟動(dòng)電路使用STM32內(nèi)部生成的8MHz信號(hào),將微 控制器從停止模式喚醒用時(shí)小于6微秒。
九、存儲(chǔ)器和封裝選項(xiàng):
在STM32F105和STM32F107互連型系列微控制器之前,意法半導(dǎo)體已經(jīng)推出STM32基本型系列、增強(qiáng)型系列、USB基本型系列和 增強(qiáng)型系列;新系列產(chǎn)品沿用增強(qiáng)型系列的72MHz處理頻率。內(nèi)存包括64KB到256KB閃存和 20KB到64KB嵌入式SRAM。新系列采用LQFP64、LQFP100和LFBGA100三種封裝,不同的封裝保持引腳排列一致性,結(jié)合STM32 平臺(tái)的設(shè)計(jì)理念,開(kāi)發(fā)人員通過(guò)選擇產(chǎn)品可重新優(yōu)化功能、存儲(chǔ)器、性能和引腳數(shù)量,以最小的硬件變化來(lái)滿足個(gè)性化的應(yīng)用需求。
STM32硬件關(guān)鍵設(shè)計(jì)精華集錦
如何保證ADC精度之STM32的ADC
共有最多3個(gè)ADC模塊,最多21個(gè)ADC輸入通道
特性
12位分辨率
自校準(zhǔn)
轉(zhuǎn)換結(jié)束,注入轉(zhuǎn)換結(jié)束和發(fā)生模擬看門(mén)狗事件時(shí)產(chǎn)生中斷
帶內(nèi)嵌數(shù)據(jù)一致的數(shù)據(jù)對(duì)齊
非常豐富的操作模式
雙重模式(帶2個(gè)或以上ADC的器件)
ADC轉(zhuǎn)換時(shí)間:
1μs:ADC時(shí)鐘為14MHz時(shí)達(dá)到最快
14個(gè)時(shí)鐘周期,轉(zhuǎn)換周期可調(diào):14、20、26、41、54、68、84、252
ADC供電要求:2.4V~3.6V
ADC輸入范圍:VREF-≤VIN≤VREF+
規(guī)則通道轉(zhuǎn)換期間有DMA請(qǐng)求產(chǎn)生
模擬看門(mén)狗
ADC輸入通道映射
STM32的雙ADC操作模式
ADC的誤差種類
?。?) 理想ADC轉(zhuǎn)換曲線
?。?) 實(shí)際ADC轉(zhuǎn)換曲線
?。?) 實(shí)際ADC兩終點(diǎn)連線
ET 總誤差:實(shí)際ADC轉(zhuǎn)換曲線與理想曲線間的最 大偏離
EO 偏移誤差:實(shí)際轉(zhuǎn)換曲 線上第一次躍遷與理想 曲線中第一次躍遷之差
EG 增益誤差:實(shí)際轉(zhuǎn)換曲 線上最后一次躍遷與理 想曲線中最后一次躍遷 之差
ED 微分線性誤差:實(shí)際轉(zhuǎn) 換曲線上步距與理想步 距(1LSB)之差
EL 積分線性誤差:實(shí)際轉(zhuǎn) 換曲線與終點(diǎn)曲線間最 大偏離
消除影響ADC精度的因素(1)
1、ADC模塊自身的誤差
積分線性誤差(ILE)和微分線性誤差(DLE)依賴于ADC模塊的設(shè)計(jì),校準(zhǔn)它們是困難的。進(jìn)行多次轉(zhuǎn)換再做平均可以減小它們的影響。偏移和增益誤差可以簡(jiǎn)單地使用ADC模塊的自校準(zhǔn)功能補(bǔ)償。
2、電源噪聲,尤其是開(kāi)關(guān)電源(SMPS)的高頻噪聲
線性穩(wěn)壓器具有較好的輸出。強(qiáng)烈建議在整流輸出端連接濾波電容。如果使用開(kāi)關(guān)型電源,建議使用一個(gè)線性穩(wěn)壓器為模擬部分供電。建議在電源線和地 線之間連接具有良好高頻特性的電容,即在靠近電源一端應(yīng)放置一個(gè)0.1μF和一個(gè)1~10μF的電容。每一對(duì)VDD和VSS管腳都需要使用單獨(dú)的去藕電 容。VDDA管腳必須連接到2個(gè)外部的去藕電容器(10nF瓷介電容+1μF的鉭電容或瓷介電容)對(duì)于100腳和144腳封裝的產(chǎn)品,可以在VREF+上 連接一個(gè)外部的ADC的參考輸入電壓,從而改善對(duì)輸入低電壓的精度。
消除影響ADC精度的因素(2)
消除影響ADC精度的因素(3)
1、電源輸出不穩(wěn),隨負(fù)載變化
ADC模塊使用VREF+或VDDA作為模擬參考,數(shù)字?jǐn)?shù)值的輸出是這個(gè)參考電壓與模擬輸入信號(hào)的比值,VREF+必須在各種負(fù)載情況下保持穩(wěn)定??梢允褂弥T如LM236作為VREF+的參考電壓,這是一個(gè)2.5V的電壓參考二極管
2、模擬輸入信號(hào)的噪聲
平均值方法:適合處理不頻繁變化的模擬輸入信號(hào),增加一個(gè)外部濾波器消除高頻噪聲。
3、將最大的信號(hào)幅度與ADC動(dòng)態(tài)范圍匹配
選擇參考電壓(僅適合于具有VREF+引腳的產(chǎn)品),使用一個(gè)外部的前級(jí)放大器。
4、I/O引腳間的串?dāng)_(臨近數(shù)字信號(hào)的翻轉(zhuǎn))
模擬信號(hào)線的周?chē)贾玫鼐€產(chǎn)生屏蔽,能有效地減小串?dāng)_干擾噪聲。
消除影響ADC精度的因素(4)
VDD與VDDA的處理
供電引腳
STM32共有7種封裝規(guī)格,共有多組VDD/VSS引腳,以及一組VDDA/VSSA引腳。
盡管所有VDD和所有VSS在內(nèi)部相連,在芯片外部仍然需要連接上所有的VDD和VSS。因?yàn)閷?dǎo)線較細(xì),內(nèi)部連接負(fù)載能力較差,抗干擾的能力也較差,如果漏接VDD或VSS,容易造成內(nèi)部線路損壞,同時(shí)抗干擾能力下降。
VDD與VSS的去藕電容
每對(duì)VDD與VSS都必須在盡可能靠近芯片處分別放置一個(gè)10nF~100nF的高頻瓷介電容。在靠近VDD3和VSS3的地方放置一個(gè)4.7μF~10μF的鉭電容或瓷介電容。
VDD與VDDA的關(guān)系
VDDA為所有的模擬電路部分供電,包括:
ADC模塊,復(fù)位電路,PVD(可編程電壓監(jiān)測(cè)器),PLL,上電復(fù)位(POR)和掉電復(fù)位(PDR)模塊,控制VBAT切換的開(kāi)關(guān)等。即使不 使用ADC功能,也需要連接VDDA,強(qiáng)烈建議VDD和VDDA使用同一個(gè)電源供電。VDD與VDDA之間的電壓差不能超過(guò)300mV,VDD與VDDA 應(yīng)該同時(shí)上電或調(diào)電。
供電方案
如何達(dá)到最優(yōu)功耗水準(zhǔn)
低功耗模式
I/O引腳的處理
1、如果需要減小I/O端口的電流消耗,可以根據(jù)具體情況配置I/O端口的狀態(tài):
輸入端口????配置為浮空輸入,帶外部上拉的輸出端口????配置為推挽輸出并輸出’1’,,帶外部下拉的輸出端口????配置為推挽輸出并輸出’0’。
2、未用的內(nèi)部外設(shè):
保持為關(guān)閉和默認(rèn)的復(fù)位狀態(tài):
不要進(jìn)行重映射,復(fù)位寄存器RCC_APB1RSTR和RCC_APB2RSTR。關(guān)閉對(duì)應(yīng)的時(shí)鐘,時(shí)鐘使能寄存器:RCC_AHBENR、RCC_APB2ENR和RCC_APB1ENR。
進(jìn)入SLEEP模式的省電操作
1、為了降低系統(tǒng)功耗,進(jìn)入SLEEP模式時(shí),執(zhí)行如下操作流程:
關(guān)閉無(wú)需等待中斷或事件的外設(shè)時(shí)鐘;設(shè)置進(jìn)入機(jī)制(Sleep-Now或Sleep-on-Exit);設(shè)置系統(tǒng)進(jìn)入SLEEP模式。
2、退出睡眠模式的方式:
WFI(等待中斷),可由任一外設(shè)中斷觸發(fā),WFE(等待事件),可由任一外設(shè)事件觸發(fā)。
進(jìn)入STOP省電模式的操作
為了降低系統(tǒng)功耗,進(jìn)入STOP模式的操作流程:
關(guān)閉設(shè)置為普通IO功能的GPIO口時(shí)鐘;
關(guān)閉已開(kāi)啟時(shí)鐘的外設(shè)的使能位(尤其是ADC、DAC、USB等帶模擬模塊的外設(shè));
關(guān)閉已開(kāi)啟時(shí)鐘的外設(shè)的時(shí)鐘;
關(guān)閉預(yù)取緩沖區(qū),并將Flash等待周期置為0;
設(shè)置PWR_CR中LPDS位選擇電壓調(diào)節(jié)器的模式:
正常模式:電壓調(diào)節(jié)器處于正常供電狀態(tài);
低功耗模式:可降低電壓調(diào)節(jié)器自身的功耗,
將MCU從STOP模式喚醒的時(shí)間有所增加;
設(shè)置系統(tǒng)進(jìn)入STOP模式。
退出STOP省電模式的操作
1、退出停止模式:
以WFI進(jìn)入時(shí):任意外部中斷線的中斷;
以WFE進(jìn)入時(shí):任意外部中斷線的事件;
不包括PVD和USB喚醒事件。
2、從STOP模式恢復(fù)后,時(shí)鐘的配置返回到復(fù)位時(shí)的狀態(tài)(系統(tǒng)時(shí)鐘為HSI),用戶程序必須重新配置整個(gè)時(shí)鐘系統(tǒng),包括PLL。
如何獲得高精度的RTC
STM32使用Pierce振蕩器,原理圖及重要參數(shù)如下:
三個(gè)步驟選擇一個(gè)合適的LSE
第一步:增益裕量(Gainmargin)計(jì)算
選擇一個(gè)晶振(參考MCU的數(shù)據(jù)手冊(cè)確定晶振的頻率)
計(jì)算晶振的增益裕量(Gainmargin)并檢查其是否大于5:
如果Gainmargin《 5,說(shuō)明這不是一個(gè)合適的晶振,應(yīng)當(dāng)再挑選一個(gè)低ESR值和低CL值的晶振,重新第一步。如果Gainmargin》 5,進(jìn)行第二步。
第二步:外部負(fù)載電容的計(jì)算
計(jì)算CL1和CL2的值,并檢查標(biāo)定為該計(jì)算值的電容是否能在市場(chǎng)上獲得。如果能找到容值為計(jì)算值的電容,則晶振可以在期望的頻率正常起振。然后轉(zhuǎn)到第三步。
如果找不到容值為計(jì)算值的電容:
該應(yīng)用對(duì)頻率要求很高,你可使用一個(gè)可變電容并將其調(diào)整到計(jì)算值,然后轉(zhuǎn)到第三步。如果對(duì)頻率的要求不是特別苛刻,選擇市場(chǎng)上能獲得的電容中容值距計(jì)算值最近的電容。
第三步:驅(qū)動(dòng)級(jí)別及外部電阻的計(jì)算
計(jì)算驅(qū)動(dòng)級(jí)別DL并檢查其是否大于DLcrystal:
如果DL《 DLcrystal,沒(méi)必要使用外部電阻,祝賀你,你找到了合適的晶振。如果DL》 DLcrystal,你應(yīng)該計(jì)算RExt 使其確保DL《 DLcrystal 并據(jù)此重新計(jì)算Gainmargin。如果Gainmargin》 5,祝賀你,你找到了合適的晶振。如果Gainmargin《 5,你別無(wú)選擇,再重新挑選另外一個(gè)晶振吧。然后重新回到第一步。
ST推薦的LSE型號(hào)
對(duì)于STM32™的LSE部分,推薦使用CL《7pF的晶振(過(guò)大的CL會(huì)導(dǎo)致過(guò)大的gmcrit,從而無(wú)法保證足夠的增益裕量)。
RTC是一個(gè)計(jì)數(shù)器,對(duì)輸入時(shí)鐘分頻、計(jì)數(shù)、比較
RTC的校準(zhǔn)
設(shè)置BKP_RTCCR寄存器,每220(1048576)個(gè)時(shí)鐘周期中,減去相應(yīng)周期數(shù),每個(gè)單位能實(shí)現(xiàn)0.954(1000000/220) ppm的精度校準(zhǔn),BKP_RTCCR寄存器取值范圍0-127,時(shí)鐘可以調(diào)慢0 -121 ppm。
對(duì)于32,768Hz晶振,可補(bǔ)償頻偏范圍為:32,768Hz 《 fLSE《 32,772Hz ????調(diào)慢,設(shè)置RTC預(yù)分頻寄存器RTC_PRLH / RTC_PRLL。
例如:由預(yù)設(shè)值32768調(diào)整為32766,再設(shè)置BKP_RTCCR寄存器,此時(shí),對(duì)于32,768Hz晶振,可補(bǔ)償頻偏范圍:
復(fù)位電路
外部復(fù)位信號(hào)低脈沖至少保持300ns,系統(tǒng)復(fù)位信號(hào)不影響備份區(qū)域的工作,NRST復(fù)位引腳是CMOS工藝的開(kāi)漏電路。在產(chǎn)生內(nèi)部復(fù)位信號(hào)時(shí),NRST引腳會(huì)輸出一個(gè)低電平。
SWJ調(diào)試電路
SWJ電路設(shè)計(jì)及注意事項(xiàng)
調(diào)試燒錄失敗的常見(jiàn)原因
1、目標(biāo)芯片沒(méi)有正確連接,不能正常工作:
解決方法:確保目標(biāo)板的最小系統(tǒng)正確連接,芯片能正常工作:VDD、VDDA及VSS 、VDDS已全部正確連接,復(fù)位電路能夠可靠復(fù)位,各復(fù)位源不互相影響。
2、芯片內(nèi)原先燒錄的代碼影響了新的調(diào)試操作:
芯片內(nèi)原先燒錄的代碼出錯(cuò),芯片上電運(yùn)行,進(jìn)入未定義狀態(tài),不能進(jìn)入調(diào)試模式。芯片內(nèi)原先燒錄的代碼啟動(dòng)了某些外設(shè),或者將SWJ引腳配置為普通I/O口。
解決方法:選擇芯片的BOOT0/BOOT1引腳從RAM啟動(dòng),或先擦除芯片內(nèi)代碼。
3、芯片已被讀/寫(xiě)保護(hù):
調(diào)試工具不能讀寫(xiě)芯片內(nèi)置的Flash。
解決方法:先使用調(diào)試工具解除芯片的讀/寫(xiě)保護(hù)。
STM32硬件電路設(shè)計(jì)注意事項(xiàng)
STM32的基本系統(tǒng)主要涉及下面幾個(gè)部分:
1、電源
1)、無(wú)論是否使用模擬部分和AD部分,MCU外圍出去VCC和GND,VDDA、VSSA、Vref(如果封裝有該引腳)都必需要連接,不可懸空;
2)、對(duì)于每組對(duì)應(yīng)的VDD和GND都應(yīng)至少放置一個(gè)104的陶瓷電容用于濾波,并接該電容應(yīng)放置盡量靠近MCU;
2、復(fù)位、啟動(dòng)選擇
1)、Boot引腳與JTAG無(wú)關(guān)。其僅是用于MCU啟動(dòng)后,判斷執(zhí)行代碼的起始地址;
2)、在電路設(shè)計(jì)上可能Boot引腳不會(huì)使用,但要求一定要外部連接電阻到地或電源,切不可懸空;
3、調(diào)試接口
4、ADC
1)、ADC是有工作電壓的,且與MCU的工作電壓不完全相同。MCU工作電壓可以到2.0V~3.6V,但ADC模塊工作的電壓在2.4V~3.6V。設(shè)計(jì)電路時(shí)需要注意。
5、時(shí)鐘
1)、STM32上電默認(rèn)是使用內(nèi)部高速RC時(shí)鐘(HSI)啟動(dòng)運(yùn)行,如果做外部時(shí)鐘(HSE)切換,外部時(shí)鐘是不會(huì)運(yùn)行的。因此,判斷最小系統(tǒng)是否工作用示波器檢查OSC是否有時(shí)鐘信號(hào),是錯(cuò)誤的方法;
2)、RTC時(shí)鐘要求使用的32.768振蕩器的寄生電容是6pF,這個(gè)電容區(qū)別于振蕩器外部接的負(fù)載電容;
5、GPIO
1)、IO推動(dòng)LED時(shí),建議盡量考慮使用灌電流的方式。
2)、在Stop等低功耗模式下,為了更省電,通常情況下建議GPIO配置為帶上拉的輸出模式,輸出電平由外部電路決定;
6、FSMC
1)、對(duì)應(yīng)100pin或144pin,F(xiàn)SMC的功能與I2C是存在沖突的,如果FSMC時(shí)鐘打開(kāi),I2C 1的硬件模式無(wú)法工作。這在STM32F10xxx的勘誤表中是有描述的。
ST官方推薦的幾大主流開(kāi)發(fā)板的原理圖,在畫(huà)電路的時(shí)候可以做為參考依據(jù):
1、IAR
1)、STM32F103RBT6
2)、STM32F103ZET6
2、MDK
1)、STM32F103RBT6
2)、STM32F103ZET6
3、Raisonance
1)、STM32F103RBT6
2)、STM32F103VET6
4、ST官方的板
1)、STM3210E-LK
2)、STM3210B-EVAL
3)、STM3210E-EVAL
4)、STM3210C-EVAL