一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

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

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

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

為什么時(shí)鐘失效后CPU還在運(yùn)行?

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

掃碼添加小助手

加入工程師交流群

問題:

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

調(diào)研:

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

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

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

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

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

結(jié)論:

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

處理:

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

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

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

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

建議:

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


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

    關(guān)注

    68

    文章

    11080

    瀏覽量

    217050
  • STM32
    +關(guān)注

    關(guān)注

    2293

    文章

    11032

    瀏覽量

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

    關(guān)注

    11

    文章

    1901

    瀏覽量

    133227

原文標(biāo)題:時(shí)鐘失效后 CPU 還會(huì)運(yùn)行的案例分析

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

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    如何在運(yùn)行時(shí)計(jì)算設(shè)計(jì)中使用的時(shí)鐘頻率?

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

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

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

    STM32L151低功耗運(yùn)行模式CPU是否正在運(yùn)行?

    在使得CPU處于LPRUN Mode時(shí),翻轉(zhuǎn)LED,LED不能正常翻轉(zhuǎn),因此請(qǐng)教一下網(wǎng)友們,STM32L151低功耗運(yùn)行模式CPU是否正在運(yùn)行
    發(fā)表于 07-05 06:17

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

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

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

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

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

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

    用28035調(diào)試CLA的時(shí)候發(fā)現(xiàn),在線調(diào)試時(shí)CPU和CLA都在運(yùn)行,程序下載到板子上FLASHLA程序沒有運(yùn)行請(qǐng)問一下這是什么情況?

    本帖最后由 一只耳朵怪 于 2018-6-14 08:54 編輯 在用28035調(diào)試CLA的時(shí)候發(fā)現(xiàn):在線調(diào)試時(shí)能很好地發(fā)現(xiàn)CPU和CLA都在運(yùn)行,程序下載到板子上FLASH,把板子掉電重新上電,發(fā)現(xiàn)
    發(fā)表于 06-13 11:36

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

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

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

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

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

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

    FPGA相比CPU在運(yùn)算中的優(yōu)勢

    FPGA相比于CPU,最大的優(yōu)點(diǎn)在于速度,簡單來講,F(xiàn)PGA是靠控制每個(gè)時(shí)鐘(Cycle)來驅(qū)動(dòng)信號(hào)與寄存器傳輸?shù)模簿褪钦f可以通過時(shí)鐘來精確控制任務(wù)。
    的頭像 發(fā)表于 03-28 17:10 ?1.3w次閱讀

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

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

    時(shí)鐘失效之后,STM32還能運(yùn)行?

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

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

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

    CPU時(shí)鐘周期的組成和作用

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