伦伦影院久久影视,天天操天天干天天射,ririsao久久精品一区 ,一本大道香蕉大久在红桃,999久久久免费精品国产色夜,色悠悠久久综合88,亚洲国产精品久久无套麻豆,亚洲香蕉毛片久久网站,一本一道久久综合狠狠老

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

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

3天內不再提示

STM32G0B1看似無法喚醒的一種異?,F象分析

jf_pJlTbmA9 ? 來源:STM32單片機 ? 作者:STM32單片機 ? 2023-10-25 17:09 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

1. 引言

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

2.問題描述

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

3. 問題重現

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

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

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

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

wKgaomUDwhGATobsAAA66HPolD4760.png

圖1 模擬ACC掉電喚醒程序

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

wKgZomUDwhKACQVtAAAg1cYhrL4518.png

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

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

wKgZomUDwhSAU60FAAJMwFNTc4o239.png

圖3 DMA正確的停止方式

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

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

wKgaomUDwhWADZr6AARY114ga8k295.png

圖 4 外部振蕩器HSE 波形

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

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

wKgZomUDwheAaoKNABbR_LM_OmI635.png

圖5 故障模式下的調試

wKgaomUDwhqAMWNYAA6icbL5qbw524.png

圖6 代碼進入循環過程

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

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

4.小結

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

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

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

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

來源:STM32單片機

免責聲明:本文為轉載文章,轉載此文目的在于傳遞更多信息,版權歸原作者所有。本文所用視頻、圖片、文字如涉及作品版權問題,請聯系小編進行處理

審核編輯 黃宇

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

    關注

    2312

    文章

    11183

    瀏覽量

    374350
  • dma
    dma
    +關注

    關注

    3

    文章

    582

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    一種可跨不同領域的異常檢測通用模型UniOD介紹

    本研究提出了一種可跨不同領域、適用于特征維度各異且特征空間異構的數據集的異常檢測通用模型。
    的頭像 發表于 03-18 09:09 ?486次閱讀
    <b class='flag-5'>一種</b>可跨不同領域的<b class='flag-5'>異常</b>檢測通用模型UniOD介紹

    中石化物探無線傳輸方案:低功耗終端與4G網關的遠程監控實踐

    1.背景概述場地現場井口分布分散,數量眾多,出現異常現象需及時處理。人工巡視耗時長、時效性差;有線傳輸布線繁瑣、成本高,且線路本身易出現故障;現場無移動網絡覆蓋,無法采用4G聯網上報。
    的頭像 發表于 01-22 19:34 ?279次閱讀
    中石化物探無線傳輸方案:低功耗終端與4<b class='flag-5'>G</b>網關的遠程監控實踐

    LAT1171+STM32F745 USART1 Bootloader 失敗原因分析與解決

    使用 STM32F745 進行產品開發的時候,出現了使用 STM32CubeProgramer 無法通過 USART1 Bootloader 進行程序升級的問題。為了解決客戶的問題,我
    發表于 01-11 17:33 ?0次下載

    LAT1185+個地址未對齊引起的 HardFault 異常應用筆記

    客戶在使用 STM32G070 的時候,KEIL MDK 為編譯工具,當編譯優化選項設置為Level0 的時候,程序會出現 Hard Fault 異常,而當編譯優化選項設置為 Level1
    發表于 01-11 17:28 ?0次下載

    STM32G474 HRTIME PWM 丟波問題分析與解決

    STM32G474 中包含了針對數字電源應用的高精度定時器(HRTIMER),客戶在應用該定時器產生 PWM 時,發現 PWM 的輸出出現了“丟波”現象,本文對該問題進行分析并給出解決方案。2.
    發表于 01-04 13:47 ?0次下載

    信道活躍檢測(CAD)是一種無線喚醒技術,這個功能般是定時檢測么?還是直檢測?

    信道活躍檢測(CAD)是一種無線喚醒技術,這個功能般是定時檢測么?還是直檢測?
    發表于 12-10 06:53

    UPS電源市電供電異常全解析:從現象到解決方案的實用指南

    在數字化時代,UPS(不間斷電源)已成為保障關鍵設備穩定運行的核心裝備。然而,當市電供電出現異常時,UPS可能發出告警或無法正常工作,給用戶帶來困擾。本文將系統梳理UPS在市電供電時的常見異?,F象
    的頭像 發表于 10-14 14:09 ?1830次閱讀
    UPS電源市電供電<b class='flag-5'>異常</b>全解析:從<b class='flag-5'>現象</b>到解決方案的實用指南

    n32g031單片機進入睡眠模式無法喚醒怎么解決?

    求問大家:第次使用單片機的睡眠模式遇到的問題: 1.如果把PWR_EnterSLEEPMode()函數放在while(1)外邊進入睡眠模式后,外部按鍵中斷無法觸發,單片機
    發表于 10-10 07:11

    光模塊安裝使用異常全解析:從現象到解決方案的完整指南

    光模塊作為光通信系統的核心組件,其安裝與使用的規范性直接影響網絡穩定性。本文系統梳理了光模塊安裝過程中的常見異?,F象,結合硬件原理與實操經驗,提供分步驟解決方案,并附 關鍵注意事項,助力工程師高效排查故障。
    的頭像 發表于 08-28 15:39 ?1315次閱讀
    光模塊安裝使用<b class='flag-5'>異常</b>全解析:從<b class='flag-5'>現象</b>到解決方案的完整指南

    判斷伺服行星減速機出現噪音的異常

    伺服行星減速機出現噪音通常被視為一種異常現象,這種噪音可能會影響設備的正常運行,甚至對工作環境和操作人員的健康造成不良影響。以下是對伺服行星減速機出現噪音異常的判斷及可能原因的分析
    的頭像 發表于 07-31 18:16 ?1124次閱讀
    判斷伺服行星減速機出現噪音的<b class='flag-5'>異常</b>

    CAN總線傳播延遲過大導致通信異常現象解析

    本文導讀在CAN總線系統中,傳播延遲過大是引發通信故障的關鍵誘因之,可能會導致仲裁異常,使優先級高的信號無法正常優先傳輸,破壞通信秩序;可能會造成應答錯誤,使發送節點難以在應答隙內接收到有效
    的頭像 發表于 07-15 11:47 ?1128次閱讀
    CAN總線傳播延遲過大導致通信<b class='flag-5'>異?,F象</b>解析

    某車聯網終端有時無法短信喚醒的故障分析

    某車企反饋車載物聯網終端4G下有時無法接收短信,導致車輛無法喚醒。查詢短信中心記錄,下發失敗原因有時是“用戶不在服務區”,有時是“用戶關機”。實際終端
    的頭像 發表于 07-14 10:39 ?860次閱讀
    某車聯網終端有時<b class='flag-5'>無法</b>短信<b class='flag-5'>喚醒</b>的故障<b class='flag-5'>分析</b>

    求助,關于TLE9893 從stop模式喚醒問題求解

    。 另一種是用MON1(5v/3.3v --> 0v)下降沿,能喚醒,但會復位,導致這期間外部發來的UART數據無法接收。通過查看寄存
    發表于 07-14 07:39

    STM32U5 IWDG的提前喚醒中斷無法在STOP模式下觸發怎么解決?

    我使用的是STM32U585系列芯片,開啟了IWDG,并在運行模式下測試提前喚醒中斷正常觸發,但在進入STOP2模式后,提前喚醒中斷無法觸發導致無法
    發表于 04-27 08:05

    STM32U5 IWDG的提前喚醒中斷無法在STOP模式下觸發怎么解決?

    我使用的是STM32U585系列芯片,開啟了IWDG,并在運行模式下測試提前喚醒中斷正常觸發,但在進入STOP2模式后,提前喚醒中斷無法觸發導致無法
    發表于 04-22 08:14