前言
客戶反饋在批量生產(chǎn)階段,發(fā)現(xiàn)部分產(chǎn)品的MCU的RTC在低溫(0℃)下工作不正常,但是在常溫下又是正常的,且其他正常的MCU的RTC在常溫與低溫下都是正常的。
問(wèn)題跟進(jìn)
通過(guò)與客戶郵件溝通,了解到客戶使用的MCU型號(hào)是STM32F030C6T6TR。在產(chǎn)品的主從結(jié)構(gòu)中主要用作電源管理和時(shí)鐘管理。通過(guò)客戶的描述,似乎相同型號(hào)不同片子都存在較大的差異。
由于時(shí)間緊急,在了解到初步信息后拜訪客戶,針對(duì)客戶認(rèn)為有問(wèn)題的MCU芯片做針對(duì)性試驗(yàn)。通過(guò)STM32CubMx生成測(cè)試工程,分別使用LSI(40K),LSE(32.768K),RTC工作時(shí)每秒通過(guò)LED1(PB5)取反一次(通過(guò)LED1燈是否閃爍來(lái)指示RTC是否工作正常),然后分別測(cè)量OSC管腳與PA8腳(輸出LSI或LSE),并對(duì)比ST官方的NUCLEO-F030板,最終測(cè)試結(jié)果如下:
1、當(dāng)使用LSI時(shí),無(wú)論常溫還是低溫下都能正常工作。
2、當(dāng)使用LSE時(shí),常溫下能正常工作,但在低溫(0℃)時(shí),RTC不再工作(LED1停止閃爍),且PA8管腳無(wú)輸出,但保持為高電平,且此時(shí)OSC管腳此時(shí)是存在32.768K的波形的。
3、通過(guò)修改負(fù)載電容C1&C2的電容值從5.1pF修改到6.8pF時(shí),原本低溫下不工作的RTC又能恢復(fù)正常工作。
4、對(duì)比ST官方的NUCLEO-F030板子,在常溫與低溫下均能正常工作。
從測(cè)試結(jié)果來(lái)看,通過(guò)修改負(fù)載電容的方式能讓原本不能正常工作的RTC恢復(fù)正常工作,這個(gè)似乎為客戶的負(fù)載電容不能精準(zhǔn)的匹配系統(tǒng)的原因所致。
但客戶對(duì)于這個(gè)做法不接受的,理由是現(xiàn)在設(shè)計(jì)的負(fù)載電容5.1pF是通過(guò)測(cè)試后的值,精度可以達(dá)到6.5ppm,但如果改為6.8pF,那么精度將會(huì)變到大約30ppm,這個(gè)會(huì)影響到MCU的RTC的時(shí)間精準(zhǔn)度,系統(tǒng)在長(zhǎng)時(shí)間運(yùn)行后,時(shí)間必然會(huì)偏差很大,超出設(shè)計(jì)合理范圍,這個(gè)是不允許的。
問(wèn)題分析
既然客戶不接受修改負(fù)載電容,那么首先我們重新梳理下客戶的晶振設(shè)計(jì)各種參數(shù)是否準(zhǔn)確,客戶的LSE電路設(shè)計(jì)如下所示:
如上圖,圖中的MR10 10Mohm這個(gè)反饋電阻在實(shí)際電路中是沒(méi)有加的,晶振使用的是TXC的,從晶振廠商提供的數(shù)據(jù)手冊(cè)中得到相關(guān)參數(shù)如下:
再者,由于客戶代碼中使用的LSE drive配置的是最高等級(jí),從下圖芯片對(duì)應(yīng)的數(shù)據(jù)手冊(cè)中可以找到對(duì)應(yīng)的gm值為25uA/V,此時(shí)的驅(qū)動(dòng)電流為1.6uA:
前面提到過(guò)AN2867這個(gè)文檔,我們打開(kāi)這個(gè)文檔,在3.4節(jié),發(fā)現(xiàn)有這個(gè)要求:
也就是要求gain margin的值要求大于5,這樣晶振才能正常起振,那么gain margin又是如何計(jì)算的呢?接下來(lái)找到gainmargin 的計(jì)算公式,如下:
其中g(shù)m就是圖4中從數(shù)據(jù)手冊(cè)中提到的跨導(dǎo)值,STM32F030 LSE的不同驅(qū)動(dòng)等級(jí)對(duì)應(yīng)著不同的gm值,由于我們的測(cè)試代碼使用的是CubeMx自動(dòng)生成的代碼,其默認(rèn)使用的是最高等級(jí),且客戶使用的也是最高等級(jí),因此,這個(gè)得出的gm值為25 uA/V, gm有了,那么上面公式中的gmcrit又該如何計(jì)算,我們接下來(lái)找到它的計(jì)算公式,如:
通過(guò)晶振對(duì)應(yīng)參數(shù),我們可以得出:
ESR =70KΩ,C0 =1.0pF, CL =7.0pF, 而F就是LSE的頻率,為32.768KHz.
于是:
g_mcrit =4 * 7E4 *POWER(2*PI()*32768,2) * POWER ((1.0E-12 + 7.0E-12),2) =7.6E-07
最終得到:
gain_magin =gm/g_mcrit=2.5E-05/7.6E-07 =32.89
這個(gè)值是遠(yuǎn)大于5,因此,理論上不會(huì)存在晶振不起振是的問(wèn)題,實(shí)際上當(dāng)在低溫下,之前在測(cè)試中也有發(fā)現(xiàn)晶振也是有起振,有波形輸出的,只不過(guò)PA8腳沒(méi)有波形輸出,那個(gè)又是什么問(wèn)題呢?
最終定位到LSE的驅(qū)動(dòng)等級(jí)過(guò)高,在AN2867這個(gè)文檔中,有這樣的描述:
也就是說(shuō),在STM32F0和STM32F3中,當(dāng)使用最高驅(qū)動(dòng)模式(gm_crit_max=5uA/V, 見(jiàn)Figure9gm_crit_max)時(shí),對(duì)應(yīng)地應(yīng)該只使用在CL=12.5pF的晶振上,以此避免振蕩回路飽和,從而導(dǎo)致啟動(dòng)失敗。若此時(shí)使用了一個(gè)較小的CL(如CL=6pF),那么會(huì)導(dǎo)致振蕩頻率不穩(wěn)定和工作周期可能被扭曲。
AN2867隨后給出了一張表,列出了驅(qū)動(dòng)等級(jí)與gm_min、gm_crit_max的關(guān)系,如下:
如上圖,對(duì)于STM32F0,當(dāng)使用最高驅(qū)動(dòng)模式High時(shí),此時(shí)的gm_min=25 uA/V,這個(gè)與數(shù)據(jù)手冊(cè)中是一致的,另外gm_crit_max=5uA/V,正是上面所描述的。
也就是說(shuō),在使用最高驅(qū)動(dòng)模式下,此時(shí)與之對(duì)應(yīng)的CL應(yīng)該使用12.5pF,而客戶所使用的CL是7pF,這個(gè)與手冊(cè)AN2867的建議內(nèi)容是不相符的。從圖4可以看出,在最高驅(qū)動(dòng)等級(jí)模式下,此時(shí)驅(qū)動(dòng)電流最大(1.6uA),但這里使用了一個(gè)比較小的負(fù)載電容(CL=7pF),按AN2867所述,此時(shí)有可能導(dǎo)致振蕩回路飽和,振蕩不穩(wěn)定,工作周期扭曲。
此時(shí),應(yīng)該對(duì)應(yīng)地下調(diào)這個(gè)LSE驅(qū)動(dòng)等級(jí),減小驅(qū)動(dòng)電流,這里有4檔(見(jiàn)Figure9):Low,Medium Low,Medium High,High. 目前使用的是High,正是它出了問(wèn)題,為保守起見(jiàn),使用Medium High相對(duì)合適。
如上圖,將LSEDRV[1:0]這兩個(gè)為修改為10即可,將原先低溫下RTC有問(wèn)題的MCU芯片修改后再次放到低溫下進(jìn)行驗(yàn)證,測(cè)試結(jié)果為正常。由于此問(wèn)題是部分芯片有可能會(huì)出現(xiàn)的問(wèn)題,客戶需要對(duì)修改后的芯片進(jìn)行持續(xù)跟蹤,至今沒(méi)有再反饋出現(xiàn)過(guò)此問(wèn)題,由此,此問(wèn)題基本解決。
總結(jié)
AN2867這個(gè)文檔總結(jié)了關(guān)于STM32晶振匹配方面的信息。里邊有提到,負(fù)載電容CL值越大,所需的驅(qū)動(dòng)電流也就越大,但牽引度越小。這也就解釋了表1中通過(guò)增大C1&C2的電容值,原本出現(xiàn)問(wèn)題的RTC能恢復(fù)正常的現(xiàn)象,這是由于C1&C2的電容值變大將導(dǎo)致負(fù)載電容CL變大,進(jìn)而對(duì)應(yīng)所需的驅(qū)動(dòng)電流也就跟著增加,這反而減少了在高驅(qū)動(dòng)模式情況下振蕩回路出現(xiàn)飽和的機(jī)會(huì)。
-
STM32
+關(guān)注
關(guān)注
2272文章
10924瀏覽量
357605 -
STM32F0
+關(guān)注
關(guān)注
0文章
61瀏覽量
17136
原文標(biāo)題:低溫下部分產(chǎn)品RTC不工作的問(wèn)題探析
文章出處:【微信號(hào):STM32_STM8_MCU,微信公眾號(hào):STM32單片機(jī)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
嵌入式STM32F030低溫下RTC不工作
STM32常見(jiàn)問(wèn)題有哪些?怎么解決這些問(wèn)題?
關(guān)于stm32浮點(diǎn)數(shù)常見(jiàn)問(wèn)題分享不看肯定后悔
STM32F030低溫下RTC不工作怎么解決
電子信息產(chǎn)品污染控制標(biāo)準(zhǔn)常見(jiàn)問(wèn)題回答
AN639:模擬設(shè)備能耗(ADE)產(chǎn)品:常見(jiàn)問(wèn)題
![AN639:模擬設(shè)備能耗(ADE)<b class='flag-5'>產(chǎn)品</b>:<b class='flag-5'>常見(jiàn)問(wèn)題</b>](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
STM32開(kāi)發(fā) -- RTC詳解
![<b class='flag-5'>STM32</b>開(kāi)發(fā) -- <b class='flag-5'>RTC</b>詳解](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
STM32定時(shí)器基本原理及常見(jiàn)問(wèn)題
![<b class='flag-5'>STM32</b>定時(shí)器基本原理及<b class='flag-5'>常見(jiàn)問(wèn)題</b>](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
評(píng)論