91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

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

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

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

為什么時鐘失效后CPU還在運行?

STM32單片機(jī) ? 來源:未知 ? 作者:佚名 ? 2017-08-29 17:42 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

問題:

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

調(diào)研:

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

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

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

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

得出“輸入信號頻率為零時,輸出信號頻率也為零”這樣的結(jié)論。這一點與實測的結(jié)果相吻合。

結(jié)論:

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

處理:

對軟件做如下修改:

1. 在軟件的初始化部分,開啟 STM32 的 CSS 功能;

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

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

建議:

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


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

    關(guān)注

    68

    文章

    11279

    瀏覽量

    225008
  • STM32
    +關(guān)注

    關(guān)注

    2309

    文章

    11162

    瀏覽量

    373464
  • 時鐘
    +關(guān)注

    關(guān)注

    11

    文章

    1971

    瀏覽量

    135000

原文標(biāo)題:時鐘失效后 CPU 還會運行的案例分析

文章出處:【微信號:STM32_STM8_MCU,微信公眾號:STM32單片機(jī)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    如何在運行時計算設(shè)計中使用的時鐘頻率?

    我想知道如何在運行時計算設(shè)計中使用的時鐘頻率(設(shè)計使用時鐘組件),尤其是組件內(nèi)部的時鐘,例如 UART。 例如,使用 clock_getSourceRegister () 返回
    發(fā)表于 01-24 06:09

    STM32F103使用keil5進(jìn)入debug模式,斷點能觸發(fā),但是程序還在運行,為什么?

    最近遇到一個問題,使用keil5進(jìn)入debug模式,斷點能觸發(fā),但是程序還在運行,就是板子上有個燈還在閃,這是定時器控制的,為啥程序停不下來啊。
    發(fā)表于 03-20 06:25

    為了防止dlpc350在運行時中斷,如何去校驗是否還在和電腦進(jìn)行連接?

    大家好, 我有2個問題想請教各位大佬 1:為了防止dlpc350在運行時中斷,如何去校驗是否還在和電腦進(jìn)行連接? 我想做一個線程隔一段時間就去訪問以下它的連接狀態(tài),求大佬指點 2:如果重連復(fù)選usb已被占用,該如何處理?使用什么方法可以重連(在不拔掉usb的情況下)?
    發(fā)表于 02-20 08:40

    CW32x030時鐘運行失效檢測

    為1,分別使能HSE 和LSE 時鐘故障檢測功能。HSE 或LSE 時鐘運行失效檢測還需要設(shè)置SYSCTRL_CR1.LSIEN 為1 使能內(nèi)部低速
    發(fā)表于 11-27 06:37

    CW32時鐘運行失效檢測的流程是什么?CW32時鐘運行失效檢測注意事項有哪些呢?

    CW32時鐘運行失效檢測的流程是什么?CW32時鐘運行失效檢測注意事項有哪些?
    發(fā)表于 12-10 07:22

    CW32F030時鐘運行失效檢測功能

    內(nèi)部低速時鐘 LSI。 使能外部時鐘的故障檢測功能,如果運行過程中檢測到 HSE 或者 LSE 失效,則會產(chǎn)生
    發(fā)表于 01-13 07:23

    手機(jī)沒反應(yīng)游戲還在運行

    手機(jī)是聯(lián)想 安卓系統(tǒng)手機(jī)沒反應(yīng)怎么按都沒反應(yīng)關(guān)機(jī)也沒反應(yīng)游戲是手機(jī)網(wǎng)絡(luò)游戲 里面的游戲還在自動打怪就是怎么按都沒反應(yīng)只有拔電池
    發(fā)表于 09-14 08:55

    電腦關(guān)機(jī)提示“程序仍在運行

    在Win7系統(tǒng)下關(guān)閉電腦,系統(tǒng)上還有未關(guān)閉的程序,此時系統(tǒng)就會彈出提示“程序仍在運行”,那么你只能將程序關(guān)閉才能正常關(guān)機(jī)。遇到這樣情況該怎么關(guān)閉電腦,下面小編告訴大家電腦關(guān)機(jī)提示“程序仍在運行
    發(fā)表于 08-04 14:49

    請問通過rt_timer_create創(chuàng)建的定時器是否在進(jìn)入臨界區(qū)還在運行

    請問在調(diào)用rt_enter_critical()進(jìn)入臨界區(qū),通過rt_timer_create創(chuàng)建的定時器是否還在運行呢?在文檔里看到默認(rèn)創(chuàng)建的是硬件定時器,此時進(jìn)入臨界區(qū)定時器超時函數(shù)應(yīng)該還能
    發(fā)表于 08-31 14:14

    axd調(diào)試程序在運行板子沒反應(yīng)怎么解決?

    axd調(diào)試程序在運行板子沒反應(yīng)怎么解決?
    發(fā)表于 10-17 06:14

    關(guān)閉電源還在運行

    STM32F103RCT6關(guān)閉電源還在運行
    發(fā)表于 12-08 11:51 ?0次下載

    時鐘失效STM32還能運行是什么情況

    72MHz,作為 STM32 的系統(tǒng)時鐘,驅(qū)動芯片工作。在 STM32 片外有專用的看門狗芯片,監(jiān)控 STM32 的運行。STM32 內(nèi)部的軟件會在 STM32 的某個管腳上產(chǎn)生脈沖來復(fù)位看門狗。一旦
    的頭像 發(fā)表于 10-29 17:58 ?3671次閱讀
    <b class='flag-5'>時鐘</b><b class='flag-5'>失效</b><b class='flag-5'>后</b>STM32還能<b class='flag-5'>運行</b>是什么情況

    時鐘失效之后,STM32還能運行?

    STM32 沒有及時的產(chǎn)生脈沖來復(fù)位門狗,則看門狗會認(rèn)為 STM32 運行不正常,從而復(fù)位 STM32。在對該產(chǎn)品做可靠性測試時,進(jìn)行了對看門狗監(jiān)控時鐘失效能力的測試。測試的方法是:將 HSE 外接
    的頭像 發(fā)表于 12-30 16:20 ?1421次閱讀

    51單片機(jī)for循環(huán)結(jié)束之后還在運行

    。因此,在這篇文章中,我將詳盡、詳實、細(xì)致地討論51單片機(jī)在循環(huán)結(jié)束之后還在運行的原因,并提供解決這個問題的措施。 首先,讓我們回顧一下51單片機(jī)的基本運行原理。51單片機(jī)是一個8位微控制器,它具有高度集成的特點,包括CPU
    的頭像 發(fā)表于 12-26 14:06 ?2021次閱讀

    CPU時鐘周期的組成和作用

    CPU時鐘周期是計算機(jī)體系結(jié)構(gòu)中一個至關(guān)重要的概念,它直接關(guān)聯(lián)到CPU運行速度和性能。以下是對CPU
    的頭像 發(fā)表于 09-26 15:32 ?3207次閱讀