吴忠躺衫网络科技有限公司

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線(xiàn)課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

時(shí)鐘失效后STM32還能運(yùn)行是什么情況

GReq_mcu168 ? 來(lái)源:STM32單片機(jī) ? 作者:stmcu ? 2021-10-29 17:58 ? 次閱讀

該問(wèn)題由某客戶(hù)提出,發(fā)生在 STM32F103VDT6 器件上。據(jù)其工程師講述:在其產(chǎn)品的設(shè)計(jì)中,STM32 的 HSE 外接 8MHz 的晶體產(chǎn)生振蕩,然后通過(guò) STM32 內(nèi)部的PLL 倍頻到 72MHz,作為 STM32 的系統(tǒng)時(shí)鐘驅(qū)動(dòng)芯片工作。在 STM32 片外有專(zhuān)用的看門(mén)狗芯片,監(jiān)控 STM32 的運(yùn)行。STM32 內(nèi)部的軟件會(huì)在 STM32 的某個(gè)管腳上產(chǎn)生脈沖來(lái)復(fù)位看門(mén)狗。一旦 STM32 沒(méi)有及時(shí)的產(chǎn)生脈沖來(lái)復(fù)位門(mén)狗,則看門(mén)狗會(huì)認(rèn)為 STM32 運(yùn)行不正常,從而復(fù)位 STM32。在對(duì)該產(chǎn)品做可靠性測(cè)試時(shí),進(jìn)行了對(duì)看門(mén)狗監(jiān)控時(shí)鐘失效能力的測(cè)試。測(cè)試的方法是:將 HSE 外接的晶體的兩個(gè)端子接地,使其停止振蕩,從而驗(yàn)證看門(mén)狗能否做出對(duì) STM32 的做出復(fù)位動(dòng)作。試驗(yàn)結(jié)果表明,看門(mén)狗沒(méi)有產(chǎn)生復(fù)位動(dòng)作。進(jìn)一步測(cè)試發(fā)現(xiàn),STM32 在失效情況下仍在向看門(mén)狗發(fā)送復(fù)位脈沖。詳解STM32時(shí)鐘的文章:詳解STM32的時(shí)鐘系統(tǒng),收藏了。

調(diào)研:

重復(fù)測(cè)試,確認(rèn)其所述現(xiàn)象屬實(shí)。檢查軟件代碼,確認(rèn)其軟件沒(méi)有開(kāi)啟 STM32 的 CSS功能。修改代碼,將 PLL 的二分頻從 STM32 的 MCO 管腳送出,以方便用示波器觀察。通過(guò)控制晶體的管腳是否接地來(lái)控制 HSE 是否振蕩。當(dāng) HSE 正常振蕩時(shí),MCO 送出的信號(hào)頻率為 36MHz,當(dāng) HSE 停止振蕩時(shí),MCO 送出的信號(hào)的頻率在 1.7MHz 附近,如圖(一)所示:

通過(guò)調(diào)試器觀察寄存器 RCC_CFGR 中的 SWS 控制控制位,其值為[10],說(shuō)明此時(shí)的系統(tǒng)時(shí)鐘確實(shí)來(lái)自 PLL 的輸出。

從 STM32F103VD 的數(shù)據(jù)手冊(cè)中查找 PLL 相關(guān)的參數(shù)如表(一):

c8633fbe-389b-11ec-82a8-dac502259ad0.png

其中,PLL 的輸出頻率范圍是 16MHz – 72MHz。也就是說(shuō),PLL 在處于相位鎖定的狀態(tài)下,可以輸出 16MHz – 72MHz 的時(shí)鐘信號(hào)。而當(dāng)輸入信號(hào)頻率過(guò)低而導(dǎo)致輸出信號(hào)頻率低于 16MHz 時(shí),將可能處于失鎖的狀態(tài)。在這狀態(tài)下,它的輸出信號(hào)的頻率與輸入信號(hào)的頻率之間,不一定符合所設(shè)定的倍頻與分頻關(guān)系。更確切的說(shuō),不能通過(guò)公式:

c8d70d36-389b-11ec-82a8-dac502259ad0.png

得出“輸入信號(hào)頻率為零時(shí),輸出信號(hào)頻率也為零”這樣的結(jié)論。這一點(diǎn)與實(shí)測(cè)的結(jié)果相吻合。

結(jié)論:

STM32 的 PLL 在沒(méi)有輸入信號(hào)的情況下,仍能維持在最低的頻點(diǎn)處振蕩,產(chǎn)生輸出。以至,CPU 及其它外設(shè)仍能在 PLL 送出的時(shí)鐘的驅(qū)動(dòng)下運(yùn)行。所以,通過(guò)判斷有無(wú)時(shí)鐘來(lái)驅(qū)動(dòng) CPU 執(zhí)行指令的方式來(lái)判斷 HSE 是否失效是行不通的。

處理:

對(duì)軟件做如下修改:

1. 在軟件的初始化部分,開(kāi)啟 STM32 的 CSS 功能;

2. 修改 NMI 中斷服務(wù)程序,加入 while(1) 陷阱語(yǔ)句;

開(kāi)啟 CSS 功能后,當(dāng) HSE 失效時(shí),STM32 會(huì)自動(dòng)開(kāi)啟 HSI,并將系統(tǒng)時(shí)鐘的來(lái)源切換到HSI 的輸出,同時(shí)產(chǎn)生 NMI 中斷。這樣,程序的流程將停留在 NMI 中而不能產(chǎn)生復(fù)位片外的看門(mén)狗的脈沖。當(dāng)片外看門(mén)狗溢出后,就會(huì)復(fù)位 STM32,使其恢復(fù)到正常駐的狀。

建議:

STM32 中的 CSS 功能是專(zhuān)門(mén)為檢測(cè)和處理 HSE 失效而設(shè)計(jì)的。但該功能在 STM32 復(fù)位后是被禁止的,需要軟件對(duì)其使能才會(huì)發(fā)揮作用。當(dāng) CSS 單元檢測(cè)到 HSE 失效時(shí),它會(huì)使能 HSI,并將系統(tǒng)時(shí)鐘切換到 HSI。同時(shí),它會(huì)關(guān)閉 HSE,如果 PLL 的輸入信號(hào)來(lái)自 HSE的輸出,它也會(huì)關(guān)閉 PLL。CSS 單元在做時(shí)鐘調(diào)整的同時(shí),也會(huì)產(chǎn)生一個(gè) NMI 中斷請(qǐng)求,和一個(gè)送給高級(jí)定時(shí)器的剎車(chē)信號(hào)。NMI 中斷請(qǐng)求會(huì)產(chǎn)生一個(gè) NMI 中斷,以便用戶(hù)程序可以在中斷服務(wù)程序中做緊急處理,而剎車(chē)信號(hào)則是使高級(jí)定時(shí)器進(jìn)入剎車(chē)狀態(tài),以防止由其控制的電機(jī)驅(qū)動(dòng)橋臂由于失去控制而過(guò)流。用戶(hù)程序可以在 NMI 中斷服務(wù)程序中嘗試恢復(fù) HSE 及 PLL 的功能,也可以使用陷阱讓程序的流程停留在服務(wù)程序中,從而等待看門(mén)狗復(fù)位整個(gè)系統(tǒng)。

責(zé)任編輯:haq

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • STM32
    +關(guān)注

    關(guān)注

    2272

    文章

    10924

    瀏覽量

    357582
  • 時(shí)鐘
    +關(guān)注

    關(guān)注

    11

    文章

    1747

    瀏覽量

    131802

原文標(biāo)題:時(shí)鐘失效之后,STM32還能運(yùn)行?

文章出處:【微信號(hào):mcu168,微信公眾號(hào):硬件攻城獅】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    ADS1278數(shù)據(jù)輸出引腳Dout1有脈沖輸出是什么情況

    ADS1278配置成SPI TDM模式,CLK時(shí)鐘24MHz,在SCLK沒(méi)給時(shí)鐘情況下,用示波器觀察Dout1管腳就不規(guī)則脈沖輸出,寬度大約6us,周期不定。另外DRDY有規(guī)律性脈沖輸出,寬度大約50ns,間隔60us,請(qǐng)問(wèn)
    發(fā)表于 12-31 06:12

    STM32F030C8T6進(jìn)入停止模式所有時(shí)鐘都停止了,為何SysTick還能工作?

    我在使用STM32F030C8T6,按照參考手冊(cè)的說(shuō)法,在停止模式全部時(shí)鐘停止。沒(méi)有了時(shí)鐘,SysTick應(yīng)該也不再工作,但實(shí)際上SysTick在停止模式還在工作。所以進(jìn)入停止模式時(shí)要關(guān)閉
    發(fā)表于 07-23 06:52

    什么情況下wifi_set_opmode會(huì)失敗?

    我想知道在什么情況下wifi_set_opmode會(huì)失敗? 模塊運(yùn)行一段時(shí)間,我從 STATION 模式切換到 STATION AP 時(shí)遇到問(wèn)題,試圖調(diào)試原因。 為我打開(kāi)模塊電源
    發(fā)表于 07-12 06:44

    AD7686有模擬電壓轉(zhuǎn)換結(jié)果為零是什么情況造成的?

    AD7686模擬電壓轉(zhuǎn)換結(jié)果不對(duì),SCK有時(shí)鐘與SDO輸出,但SDO輸出的結(jié)果都是低電平 這是什么情況造成的?謝謝
    發(fā)表于 05-17 16:30

    stm8液晶顯示在斷電重啟消失是什么情況

    請(qǐng)問(wèn),stm8液晶顯示在斷電重啟消失,是什么情況
    發(fā)表于 05-13 08:07

    stm32f0待機(jī)模式用rtc鬧鐘喚醒,第二次喚醒沒(méi)辦法進(jìn)入睡眠什么情況

    stm32f0待機(jī)模式用rtc鬧鐘喚醒問(wèn)題,第一次正常,可以進(jìn)入睡眠,第二次喚醒重啟執(zhí)行 PWR_EnterSTANDBYMode();就直接重啟了,沒(méi)辦法進(jìn)入睡眠什么情況
    發(fā)表于 04-28 07:12

    STM8L052芯片在停機(jī)halt模式下RTC還能夠正常運(yùn)行嗎?

    問(wèn)題:STM8L052芯片在停機(jī)halt模式下RTC還能夠正常運(yùn)行嗎?現(xiàn)在的情況運(yùn)行狀態(tài)RTC時(shí)鐘運(yùn)行
    發(fā)表于 04-17 07:13

    STM32F030C8T6進(jìn)入停止模式所有時(shí)鐘都停止了,為何SysTick還能工作?

    我在使用STM32F030C8T6,按照參考手冊(cè)的說(shuō)法,在停止模式全部時(shí)鐘停止。沒(méi)有了時(shí)鐘,SysTick應(yīng)該也不再工作,但實(shí)際上SysTick在停止模式還在工作。所以進(jìn)入停止模式時(shí)要關(guān)閉
    發(fā)表于 04-16 07:22

    STM32F103RET6外部復(fù)位引腳,無(wú)法復(fù)位是什么情況

    STM32F103RET6 外部復(fù)位引腳,無(wú)法復(fù)位,是什么情況? P.S.復(fù)位電路沒(méi)有問(wèn)題,可正常輸出復(fù)位信號(hào)
    發(fā)表于 03-28 09:13

    stm32f429自帶網(wǎng)口運(yùn)行一段時(shí)間,出現(xiàn)DMA的ETH_IRQHandler接收中斷進(jìn)不去的原因?

    stm32f429自帶網(wǎng)口運(yùn)行一段時(shí)間,出現(xiàn)DMA的ETH_IRQHandler接收中斷進(jìn)不去,但ethertnet_DMA的接收寄存器(DMACHRBAR)一直在增加,發(fā)送正常,這個(gè)可能是
    發(fā)表于 03-20 06:49

    stm32進(jìn)入stop模式,為什么uart還能觸發(fā)中斷并喚醒stm32呢?

    我的理解是stm32進(jìn)入stop模式,外設(shè)時(shí)鐘都停掉了,比如uart的時(shí)鐘,也就是說(shuō)uart無(wú)法收數(shù)據(jù)了,為什么uart還能觸發(fā)中斷并喚醒
    發(fā)表于 03-15 08:16

    STM32F429ZGT6在調(diào)試中程序首先運(yùn)行HAL_Init函數(shù),單片機(jī)會(huì)自動(dòng)復(fù)位,請(qǐng)問(wèn)是什么情況

    STM32F429ZGT6在調(diào)試中程序首先運(yùn)行HAL_Init函數(shù),在這個(gè)函數(shù)里面對(duì)嘀嗒定時(shí)器進(jìn)行初始化,在使能定時(shí)器的中斷時(shí),單片機(jī)會(huì)自動(dòng)復(fù)位,請(qǐng)問(wèn)是什么情況
    發(fā)表于 03-12 08:24

    Stm32斷電無(wú)法正常運(yùn)行的原因?怎么解決?

    自己設(shè)計(jì)的STM32板子剛開(kāi)始可以燒錄代碼運(yùn)行舵機(jī),然后斷電再供電就沒(méi)反應(yīng)了,再次燒錄也不行,但是燒錄LED燈的代碼,燈可以正常閃爍,請(qǐng)這種情況怎么辦?
    發(fā)表于 03-12 06:42

    ad5700輸出的Hart信號(hào)耦合到ad5421的Cin腳之后,輸出幅值降低是什么情況

    ad5700輸出的Hart信號(hào)耦合到ad5421的Cin腳之后,輸出幅值降低是什么情況
    發(fā)表于 03-04 08:25

    什么情況下電容器會(huì)被擊穿

    電容器是一種常見(jiàn)的電子元件,廣泛應(yīng)用于各個(gè)領(lǐng)域。然而,在特定條件下,電容器可能會(huì)發(fā)生擊穿現(xiàn)象,導(dǎo)致其無(wú)法正常工作甚至損壞。那么,在什么情況下電容器會(huì)被擊穿呢?
    的頭像 發(fā)表于 02-19 14:11 ?2967次閱讀
    百家乐官网的赚钱原理| 大发888扑克合营商| 澳门百家乐官网官网网站| 久盛国际| 最新百家乐的玩法技巧和规则| 真人百家乐官网赌场娱乐网规则 | 百家乐注册| 百家乐官网分析仪博彩正网| 棋牌游戏大厅| 荷规则百家乐的玩法技巧和规则| 太阳百家乐官网管理网| 百家乐官网百家乐官网游戏| 顶级赌场dj| 百家乐娱乐平台真钱游戏| 24山安葬择日吉凶| 百家乐官网购怎么样| 永利高网址| 大发888游戏代充值100| 飞天百家乐官网的玩法技巧和规则| 百家乐官网网络公式| 大赢家| 免费百家乐预测| 百家乐双层筹码盘| 百家乐官网游戏介绍与分析| 百家乐官网娱乐城网址| 百家乐视频游戏帐号| 乐天堂百家乐官网娱乐| 百家乐官网园小区户型图| 百家乐分析软件| 大发888真人存款| 百家乐特殊计| 百家乐1个人| 求购百家乐程序| 百家乐官网发牌盒子| 百家乐官网开户优惠多的平台是哪家| 合水县| 集结号棋牌下载| 百家乐乐百家娱乐场| 百家乐玩法皇冠现金网| 百家乐官网扑克牌手机壳| 百家乐官网园百利宫娱乐城怎么样百家乐官网园百利宫娱乐城如何 |