日本久章草在线一区二区三区,久久精品视频5,樱桃视频污在线观看,窝蝌蚪免费精品视频

電子方案開發供應鏈平臺
一鍵發布任務
獲取驗證碼
返回

發布成功


贊賞作者

贊賞金額:

  • ¥2
  • ¥5
  • ¥10
  • ¥50
  • ¥100
  • ¥200

支付金額:5

支付方式:

微信支付

贊賞成功!
你的贊賞是對作者最大的肯定~?

當前位置 : 首頁 > 方案訊 > 方案訊詳情
能否通過判斷有無時鐘驅動 CPU 執行指令的方式來判斷 HSE 是否失效?
發布時間:2023-01-03 閱讀量:1405 來源:我愛方案網整理 作者:我愛方案網

時鐘信號推動單片機內各個部分執行相應的指令,時鐘就像人的心跳一樣。STM32本身十分復雜,外設非常多,任何外設都需要時鐘才能啟動,但并不是所有的外設都需要系統時鐘那么高的頻率,如果都用高速時鐘勢必造成浪費。同一個電路,時鐘越快功耗越大、抗電磁干擾能力越弱。

 

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

 

調研:

 

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

 

能否通過判斷有無時鐘驅動 CPU 執行指令的方式來判斷 HSE 是否失效? 

 

能否通過判斷有無時鐘驅動 CPU 執行指令的方式來判斷 HSE 是否失效? 

  

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

 

從 STM32F103VD 的數據手冊中查找 PLL 相關的參數如表(一):

 

能否通過判斷有無時鐘驅動 CPU 執行指令的方式來判斷 HSE 是否失效? 

 

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

 

能否通過判斷有無時鐘驅動 CPU 執行指令的方式來判斷 HSE 是否失效? 

 

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

 

結論:

 

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

 

處理:


對軟件做如下修改:


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


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


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

 

建議:

 

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

 

能否通過判斷有無時鐘驅動 CPU 執行指令的方式來判斷 HSE 是否失效?

 

關于我愛方案網

 

我愛方案網是一個電子方案開發供應鏈平臺,提供從找方案到研發采購的全鏈條服務。找方案,上我愛方案網!在方案超市找到合適的方案就可以直接買,沒有找到就到快包定制開發。我愛方案網積累了一大批方案商和企業開發資源,能提供標準的模塊和核心板以及定制開發服務,按要求交付PCBA、整機產品、軟件或IoT系統。更多信息,敬請訪問http://www.zhaochuanqisf.com

文章評論

您需要登錄才可以對文章進行評論。

沒有賬號?立即注冊

最新活動
意見反饋
取消