精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

應用筆記 | 看似無法喚醒的一種異常現象分析

STM32單片機 ? 來源:未知 ? 2023-07-24 18:45 ? 次閱讀

關鍵字:MPU, SubRegion

目錄預覽

1 引言2 問題描述3 問題重現4 小結

1. 引言

STM32 G0 系列產品具有豐富的外設和強大的處理性能以及良好的低功耗特性,被廣泛用于各類工業產品中,包括一些需要低功耗需求的應用。

2.問題描述

用戶使用STM32G0B1 作為汽車多媒體音響控制器控制芯片,用來作為收音機頻道存貯和各種檢測控制。在實驗室條件下模擬汽車頻繁打火的情形進行測試,連續工作72 小時實驗中,進入STOP 模式后,會出現無法再繼續運行的情況(屏幕沒有顯示輸出,外部中斷無反應)。

3. 問題重現

通常調查問題時采取調試監控的方式。但是用戶產品是在檢測外部掉電時,測外部電壓(汽ACC 電源,轎車12V)下降后,立刻進入低功耗模式,然后通過RTC 和外部中斷(PC13 下降沿觸發即汽車打火上電)喚醒MCU 繼續工作。

那么既然是已經進入低功耗模式,并且在幾十個小時內才會出現故障,通常的用ST-LINK 在線調試方式顯然很困難重現問題,即使幸運的遇到了故障,也很容易錯過引起故障的代碼部分,看到了現象卻無法定位。

在此種情況下,正面分析出問題的可能性極小,況且用戶代碼量超過200k。這時候采用排除法不失為一種可行的辦法。通過增加測試樣本數量,進行并行測試提高定位效率。

圖1 是為了方便說明問題,模擬用戶關鍵程序。主要是進入STOP 前后外設的處理,來復現故障現象。

15e90e7e-2a0f-11ee-a368-dac502259ad0.png

圖1 模擬ACC掉電喚醒程序

在經過一段時間的實驗,并從增加和減少該段代碼的排除中,最后驗證并定位到下面的代碼引起故障發生。

1601bdd4-2a0f-11ee-a368-dac502259ad0.png

圖2 定位到引起的故障代碼

反復分析我們可以看到,在進入STOP前,用戶需要停止ADCDMA。但是在停止DMA時,用戶程序直接停掉DMA的時鐘。從函數名稱上看,是從其他軟件直接搬過來,并且誤以為是DMA的默認初始化動作。

16112274-2a0f-11ee-a368-dac502259ad0.png

圖3 DMA正確的停止方式

查詢參考手冊,停止循環模式的DMA應該從外設停止開始,而不是簡單粗暴的停止DMA時鐘。而且,在程序順序上客戶是先停止了DMA的時鐘然后才去停止ADC的DMA請求。顯然,當DMA開始工作時,突然停止時鐘會使DMA和總線處于一個不確定階段狀態,因此才有極低概率發生喚醒故障。

到此已經找到了發生的原因,按說應該找到了前因后果。但奇怪的是無意中發現振蕩器的波形比較奇怪,并不符合低功耗模式。

166c9672-2a0f-11ee-a368-dac502259ad0.png

圖 4 外部振蕩器HSE 波形

在發生故障狀態時發現外部震蕩器還在持續震蕩,因此判定此時并非進入低功耗模式。利用IAR編譯器以HOT PLUG的方式連接調試與觀測。

通過調試界面可以看到,代碼會不停的進入DMA中斷。

16dcfe76-2a0f-11ee-a368-dac502259ad0.png

圖5 故障模式下的調試

172f9474-2a0f-11ee-a368-dac502259ad0.png

圖6 代碼進入循環過程

奇怪的是每次并沒有看到DMA的寄存器內容,原因是已經關閉了DMA外設的時鐘。所以無法看到任何狀態標志。退出中斷時在C語言下就無法單步調試了。切換到匯編界面下,可以看到代碼可以繼續運行到系統時鐘配置函數,但是在配置函數中的除法部分進入了循環,然后又發生了DMA中斷,并且循環沒有出來。

顯然,正常的調試手段已顯示出邏輯的不正常。

4.小結

至此,情況已經明了。由于軟件在進入低功耗前試圖關閉ADC加DMA工作,沒有按照手冊的規范,通過外設停止的方式關閉,而是簡單粗暴的關閉DMA時鐘,導致總線和運行邏輯出錯,無法繼續執行。

外部看起來像是進入低功耗模式后,外部中斷觸發沒有執行,芯片沒有喚醒,實際上是DMA進入了不正常的循環中斷方式導致了系統卡在循環代碼下。

芯片的外設功能強大,每種外設運行的方式也不相同,因此停止外設時需根據外設特點以及參考手冊的建議來實施,切不可按自己想象的方式執行,這樣引起隱蔽的偶發故障就很難去定位解決了。

此外ST已經建立好完整強大的生態系統,按照cube 軟件庫的規范編寫調用驅動函數可以避免少走類似的彎路。

完整內容請點擊“閱讀原文”下載原文檔。

175cb7b0-2a0f-11ee-a368-dac502259ad0.png

長按掃碼關注公眾號

更多資訊,盡在STM32

點擊“閱讀原文”,可下載原文檔


原文標題:應用筆記 | 看似無法喚醒的一種異常現象分析

文章出處:【微信公眾號:STM32單片機】歡迎添加關注!文章轉載請注明出處。


聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 單片機
    +關注

    關注

    6032

    文章

    44521

    瀏覽量

    633087
  • STM32
    +關注

    關注

    2266

    文章

    10873

    瀏覽量

    354832

原文標題:應用筆記 | 看似無法喚醒的一種異常現象分析

文章出處:【微信號:STM32_STM8_MCU,微信公眾號:STM32單片機】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    ADS7853通道B讀到的電壓值偏大,確認到通道B的參考電壓VREF異常了,為什么?

    ADS7853: 通道B內部參考電壓異常,通道A正常,請幫忙分析 Part Number: ADS7853 異常現象 1.1、通道B讀到的電壓值偏大,確認到通道B的參考電壓VRE
    發表于 09-26 07:42

    使用THS4531驅動ADC時,THS4531電路無法對信號進行放大的原因?

    和實際工作都能正常,但有時該THS4531 電路無法對信號進行放大,多次上電重啟都無法恢復。使用烙鐵對C4和C5加熱后,或者說用烙鐵焊下周圍的電路,信號就好了,但可以肯定的是外圍電路不存在虛焊等問題,該
    發表于 09-05 06:07

    SD NAND異常問題案例——文件系統篇

    近期,有用戶在使用SD NAND中出現芯片出現讀寫異常現象,我們工程師對出現異常的3片芯片進行分析,發現3片均能正常讀卡,里面的文件大多數可以正常讀取,個別顯示文件損壞,無法正常讀取,
    的頭像 發表于 06-14 09:48 ?449次閱讀
    SD NAND<b class='flag-5'>異常</b>問題案例——文件系統篇

    芯海CS32F0XXADC外設模塊應用筆記

    本應用筆記旨在展示使用CS32FOxx微控器,提高A/D轉化精度的應用。幫助ADC模塊用戶了解 CS32微控器提供的些高級應用并加快開發周期。所介紹的每種模式都提供個應用示例,以方便用戶快速移植
    發表于 05-16 14:58

    芯海應用筆記:CSU3AF10移動電源方案C-C和C-L帶載休眠喚醒功能設計指南_V1.0

    ,從而延長移動電源的使用時間和壽命。*附件:應用筆記:CSU3AF10移動電源方案C-C和C-L帶載休眠喚醒功能設計指南_V1.0.pdf
    發表于 05-16 14:27

    芯海通用 MCU應用筆記 :在 IAR 及 MDK 開發環境下使用 printf 函數重定向移植差異指南

    本應用筆記,旨在幫助客戶在使用不同 IDE(MDK Keil 或 IAR)時,對使用 printf 函數來打印輸出UART 串口信息時遇到的無法打印、打印亂碼等移植問題作出梳理,理清不同 IDE
    發表于 05-16 11:56

    芯海通用 MCU 應用筆記 :CS32F103 系列 MCU IAP 升級指南

    本應用筆記旨在幫助指導用戶針對芯海 CORTEX-M3 MCU CS32F103 系列單片機 IAP 應用的快速開發。本應用筆記實現了 CAN 和 USART 兩接口方式來開發 IAP 應用,協議
    發表于 05-16 11:40

    芯海CSU18P88應用筆記

    本應用筆記旨在為用戶提供關于CSU18P88的詳細信息和使用指南,幫助用戶快速開發基于CSU18P88的應用。*附件:CSU18P88應用筆記V1.5.pdf
    發表于 05-16 10:24

    CSU18MX86應用筆記

    本應用筆記旨在為用戶提供關于CSU18MX86的詳細信息和使用指南,幫助用戶快速開發基于CSU18MX86的應用。*附件:CSU18MX86應用筆記_V1.0.pdf
    發表于 05-16 10:21

    Motor Profiler分析失敗,顯示speed feedback異常的原因?

    我現在用的是G431+ IHM16套件,手上有兩電機,一種是現在需要用的空心杯無刷電機,一種是以前的航模電機,用這個分析軟件去跑,航模電機都能正常生成模型,但空心杯無刷電機就不行。
    發表于 03-19 08:30

    變壓器運行中常見的異常現象應如何處理呢?

    變壓器運行中常見的異常現象應如何處理?
    的頭像 發表于 03-08 09:19 ?585次閱讀
    變壓器運行中常見的<b class='flag-5'>異常現象</b>應如何處理呢?

    DC電源常見的啟動異常現象和解決方法

    摘要:本文簡述了開關電源應用常見問題中的電源啟動不了的情況,并簡要分析了其產生的原因,同時給出了對應的驗證、預防及解決的辦法,以減少電源在不同應用中產生無法啟動的情況,提升系統可靠性。
    的頭像 發表于 12-15 12:20 ?1415次閱讀
    DC電源常見的啟動<b class='flag-5'>異常現象</b>和解決方法

    isoPower器件的輻射控制應用筆記

    電子發燒友網站提供《isoPower器件的輻射控制應用筆記.pdf》資料免費下載
    發表于 11-30 09:24 ?0次下載
    isoPower器件的輻射控制應<b class='flag-5'>用筆記</b>

    ADI公司的SensorStrobe?機制應用筆記

    電子發燒友網站提供《ADI公司的SensorStrobe?機制應用筆記.pdf》資料免費下載
    發表于 11-28 10:59 ?1次下載
    ADI公司的SensorStrobe?機制應<b class='flag-5'>用筆記</b>

    數字電位器應用筆記

    電子發燒友網站提供《數字電位器應用筆記.pdf》資料免費下載
    發表于 11-28 09:13 ?1次下載
    數字電位器應<b class='flag-5'>用筆記</b>