STM32單片機(jī)硬件關(guān)鍵基礎(chǔ)精華及注意事項(xiàng)
如何獲得高精度的RTC本文引用地址:http://www.ex-cimer.com/article/170908.htm
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,沒必要使用外部電阻,祝賀你,你找到了合適的晶振。如果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工藝的開漏電路。在產(chǎn)生內(nèi)部復(fù)位信號(hào)時(shí),NRST引腳會(huì)輸出一個(gè)低電平。
SWJ調(diào)試電路
SWJ電路設(shè)計(jì)及注意事項(xiàng)
調(diào)試燒錄失敗的常見原因
1、目標(biāo)芯片沒有正確連接,不能正常工作:
解決方法:確保目標(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、芯片已被讀/寫保護(hù):
調(diào)試工具不能讀寫芯片內(nèi)置的Flash。
解決方法:先使用調(diào)試工具解除芯片的讀/寫保護(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í)鐘打開,I2C 1的硬件模式無(wú)法工作。這在STM32F10xxx的勘誤表中是有描述的。
ST官方推薦的幾大主流開發(fā)板的原理圖,在畫電路的時(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
模數(shù)轉(zhuǎn)換器相關(guān)文章:模數(shù)轉(zhuǎn)換器工作原理
電容傳感器相關(guān)文章:電容傳感器原理 晶振相關(guān)文章:晶振原理 鎖相環(huán)相關(guān)文章:鎖相環(huán)原理 調(diào)壓器相關(guān)文章:調(diào)壓器原理
評(píng)論