chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

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

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

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

STM32G0B1看似無(wú)法喚醒的一種異常現(xiàn)象分析

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

掃碼添加小助手

加入工程師交流群

1. 引言

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

2.問(wèn)題描述

用戶使用STM32G0B1 作為汽車(chē)多媒體音響控制器控制芯片,用來(lái)作為收音機(jī)頻道存貯和各種檢測(cè)控制。在實(shí)驗(yàn)室條件下模擬汽車(chē)頻繁打火的情形進(jìn)行測(cè)試,連續(xù)工作72 小時(shí)實(shí)驗(yàn)中,進(jìn)入STOP 模式后,會(huì)出現(xiàn)無(wú)法再繼續(xù)運(yùn)行的情況(屏幕沒(méi)有顯示輸出,外部中斷無(wú)反應(yīng))。

3. 問(wèn)題重現(xiàn)

通常調(diào)查問(wèn)題時(shí)采取調(diào)試監(jiān)控的方式。但是用戶產(chǎn)品是在檢測(cè)外部掉電時(shí),測(cè)外部電壓(汽車(chē)ACC 電源,轎車(chē)12V)下降后,立刻進(jìn)入低功耗模式,然后通過(guò)RTC 和外部中斷(PC13 下降沿觸發(fā)即汽車(chē)打火上電)喚醒MCU 繼續(xù)工作。

那么既然是已經(jīng)進(jìn)入低功耗模式,并且在幾十個(gè)小時(shí)內(nèi)才會(huì)出現(xiàn)故障,通常的用ST-LINK 在線調(diào)試方式顯然很困難重現(xiàn)問(wèn)題,即使幸運(yùn)的遇到了故障,也很容易錯(cuò)過(guò)引起故障的代碼部分,看到了現(xiàn)象卻無(wú)法定位。

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

圖1 是為了方便說(shuō)明問(wèn)題,模擬用戶關(guān)鍵程序。主要是進(jìn)入STOP 前后外設(shè)的處理,來(lái)復(fù)現(xiàn)故障現(xiàn)象。

wKgaomUDwhGATobsAAA66HPolD4760.png

圖1 模擬ACC掉電喚醒程序

在經(jīng)過(guò)一段時(shí)間的實(shí)驗(yàn),并從增加和減少該段代碼的排除中,最后驗(yàn)證并定位到下面的代碼引起故障發(fā)生。

wKgZomUDwhKACQVtAAAg1cYhrL4518.png

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

反復(fù)分析我們可以看到,在進(jìn)入STOP前,用戶需要停止ADCDMA。但是在停止DMA時(shí),用戶程序直接停掉DMA的時(shí)鐘。從函數(shù)名稱上看,是從其他軟件直接搬過(guò)來(lái),并且誤以為是DMA的默認(rèn)初始化動(dòng)作。

wKgZomUDwhSAU60FAAJMwFNTc4o239.png

圖3 DMA正確的停止方式

查詢參考手冊(cè),停止循環(huán)模式的DMA應(yīng)該從外設(shè)停止開(kāi)始,而不是簡(jiǎn)單粗暴的停止DMA時(shí)鐘。而且,在程序順序上客戶是先停止了DMA的時(shí)鐘然后才去停止ADC的DMA請(qǐng)求。顯然,當(dāng)DMA開(kāi)始工作時(shí),突然停止時(shí)鐘會(huì)使DMA和總線處于一個(gè)不確定階段狀態(tài),因此才有極低概率發(fā)生喚醒故障。

到此已經(jīng)找到了發(fā)生的原因,按說(shuō)應(yīng)該找到了前因后果。但奇怪的是無(wú)意中發(fā)現(xiàn)振蕩器的波形比較奇怪,并不符合低功耗模式。

wKgaomUDwhWADZr6AARY114ga8k295.png

圖 4 外部振蕩器HSE 波形

在發(fā)生故障狀態(tài)時(shí)發(fā)現(xiàn)外部震蕩器還在持續(xù)震蕩,因此判定此時(shí)并非進(jìn)入低功耗模式。利用IAR編譯器以HOT PLUG的方式連接調(diào)試與觀測(cè)。

通過(guò)調(diào)試界面可以看到,代碼會(huì)不停的進(jìn)入DMA中斷。

wKgZomUDwheAaoKNABbR_LM_OmI635.png

圖5 故障模式下的調(diào)試

wKgaomUDwhqAMWNYAA6icbL5qbw524.png

圖6 代碼進(jìn)入循環(huán)過(guò)程

奇怪的是每次并沒(méi)有看到DMA的寄存器內(nèi)容,原因是已經(jīng)關(guān)閉了DMA外設(shè)的時(shí)鐘。所以無(wú)法看到任何狀態(tài)標(biāo)志。退出中斷時(shí)在C語(yǔ)言下就無(wú)法單步調(diào)試了。切換到匯編界面下,可以看到代碼可以繼續(xù)運(yùn)行到系統(tǒng)時(shí)鐘配置函數(shù),但是在配置函數(shù)中的除法部分進(jìn)入了循環(huán),然后又發(fā)生了DMA中斷,并且循環(huán)沒(méi)有出來(lái)。

顯然,正常的調(diào)試手段已顯示出邏輯的不正常。

4.小結(jié)

至此,情況已經(jīng)明了。由于軟件在進(jìn)入低功耗前試圖關(guān)閉ADC加DMA工作,沒(méi)有按照手冊(cè)的規(guī)范,通過(guò)外設(shè)停止的方式關(guān)閉,而是簡(jiǎn)單粗暴的關(guān)閉DMA時(shí)鐘,導(dǎo)致總線和運(yùn)行邏輯出錯(cuò),無(wú)法繼續(xù)執(zhí)行。

外部看起來(lái)像是進(jìn)入低功耗模式后,外部中斷觸發(fā)沒(méi)有執(zhí)行,芯片沒(méi)有喚醒,實(shí)際上是DMA進(jìn)入了不正常的循環(huán)中斷方式導(dǎo)致了系統(tǒng)卡在循環(huán)代碼下。

芯片的外設(shè)功能強(qiáng)大,每種外設(shè)運(yùn)行的方式也不相同,因此停止外設(shè)時(shí)需根據(jù)外設(shè)特點(diǎn)以及參考手冊(cè)的建議來(lái)實(shí)施,切不可按自己想象的方式執(zhí)行,這樣引起隱蔽的偶發(fā)故障就很難去定位解決了。

此外ST已經(jīng)建立好完整強(qiáng)大的生態(tài)系統(tǒng),按照cube 軟件庫(kù)的規(guī)范編寫(xiě)調(diào)用驅(qū)動(dòng)函數(shù)可以避免少走類似的彎路。

來(lái)源:STM32單片機(jī)

免責(zé)聲明:本文為轉(zhuǎn)載文章,轉(zhuǎn)載此文目的在于傳遞更多信息,版權(quán)歸原作者所有。本文所用視頻、圖片、文字如涉及作品版權(quán)問(wèn)題,請(qǐng)聯(lián)系小編進(jìn)行處理

審核編輯 黃宇

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

    關(guān)注

    2293

    文章

    11032

    瀏覽量

    365055
  • dma
    dma
    +關(guān)注

    關(guān)注

    3

    文章

    576

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    CAN總線傳播延遲過(guò)大導(dǎo)致通信異?,F(xiàn)象解析

    本文導(dǎo)讀在CAN總線系統(tǒng)中,傳播延遲過(guò)大是引發(fā)通信故障的關(guān)鍵誘因之,可能會(huì)導(dǎo)致仲裁異常,使優(yōu)先級(jí)高的信號(hào)無(wú)法正常優(yōu)先傳輸,破壞通信秩序;可能會(huì)造成應(yīng)答錯(cuò)誤,使發(fā)送節(jié)點(diǎn)難以在應(yīng)答隙內(nèi)接收到有效
    的頭像 發(fā)表于 07-15 11:47 ?76次閱讀
    CAN總線傳播延遲過(guò)大導(dǎo)致通信<b class='flag-5'>異?,F(xiàn)象</b>解析

    某車(chē)聯(lián)網(wǎng)終端有時(shí)無(wú)法短信喚醒的故障分析

    某車(chē)企反饋車(chē)載物聯(lián)網(wǎng)終端4G下有時(shí)無(wú)法接收短信,導(dǎo)致車(chē)輛無(wú)法喚醒。查詢短信中心記錄,下發(fā)失敗原因有時(shí)是“用戶不在服務(wù)區(qū)”,有時(shí)是“用戶關(guān)機(jī)”。實(shí)際終端
    的頭像 發(fā)表于 07-14 10:39 ?136次閱讀
    某車(chē)聯(lián)網(wǎng)終端有時(shí)<b class='flag-5'>無(wú)法</b>短信<b class='flag-5'>喚醒</b>的故障<b class='flag-5'>分析</b>

    555定時(shí)器設(shè)計(jì)異?,F(xiàn)象

    課程需要搭建個(gè)555定時(shí)器電路,使用的eda工具是Cadence Spectre ic618,其中比較器和RS鎖存器以及其他邏輯電路均為cmos電路,而放電管為bjt,現(xiàn)在進(jìn)行直流仿真后發(fā)現(xiàn)vdd
    發(fā)表于 04-12 00:25

    stm32g0b1中的usart5進(jìn)不去HAL_UARTEx_RxEventCallback,為什么?

    請(qǐng)教下關(guān)于stm32g系列的問(wèn)題,stm32g0b1中的usart5進(jìn)不去HAL_UARTEx_RxEventCallback,cudemx上配置跟其他串口也是樣的,都打開(kāi)中斷了,
    發(fā)表于 03-13 06:51

    STM32G0B1adc+dma采樣數(shù)據(jù)錯(cuò)位的原因?

    STM32G0B1adc+dma采樣數(shù)據(jù)錯(cuò)位
    發(fā)表于 03-10 08:04

    DLP9500顯示的圖像拉伸,并且有部分圖像無(wú)法顯示,是什么原因?qū)е逻@種異?,F(xiàn)象呢?

    使用ILA抓取的數(shù)據(jù)是正確的。DMD顯示的圖像拉伸,并且有部分圖像無(wú)法顯示。是什么原因?qū)е逻@種異常現(xiàn)象呢?這是因?yàn)镈LP9500的管腳設(shè)置錯(cuò)誤還是軟排線呢?
    發(fā)表于 02-26 06:43

    電路異?,F(xiàn)象及解決

    1 電路異?,F(xiàn)象 這是面包板論壇看到的則帖子,帖主的問(wèn)題主要是使用個(gè)網(wǎng)上借鑒的光耦串口隔離電路,結(jié)果實(shí)際調(diào)試發(fā)現(xiàn)根本通訊不上: ? 您是否已經(jīng)看到這個(gè)問(wèn)題發(fā)生的原因了? ? 2 問(wèn)
    的頭像 發(fā)表于 02-07 10:10 ?543次閱讀
    電路<b class='flag-5'>異常現(xiàn)象</b>及解決

    ADS7953做數(shù)據(jù)采集,系統(tǒng)在測(cè)試過(guò)程中發(fā)現(xiàn)偶爾會(huì)出現(xiàn)ADS7953沒(méi)有輸出的異常現(xiàn)象,為什么?

    我這邊使用了ADS7953做數(shù)據(jù)采集,般情況下工作是正常的,但是系統(tǒng)在測(cè)試過(guò)程中發(fā)現(xiàn)偶爾會(huì)出現(xiàn)ADS7953沒(méi)有輸出的異常現(xiàn)象,也就是該芯片的SDO輸出腳的輸出信號(hào)電平直是低,在出現(xiàn)該現(xiàn)
    發(fā)表于 12-31 07:48

    adc12d1800兩個(gè)通道采樣,Q路正常,I路異常,為什么?

    的,使用段時(shí)間后出現(xiàn)這個(gè)現(xiàn)象。 圖1是正常現(xiàn)象: 圖2是異?,F(xiàn)象(紅色-DQ和DQD;藍(lán)色-DI;綠色-DID): 這是什么原因造成
    發(fā)表于 12-26 06:01

    使用DAC38RF84過(guò)程中出現(xiàn)復(fù)位腳異?,F(xiàn)象,怎么解決?

    在使用DAC38RF84過(guò)程中出現(xiàn)復(fù)位腳異?,F(xiàn)象。該復(fù)位腳外接1只阻值為1K的上拉電阻,上拉電阻另端與1.8V電壓相接。具體異?,F(xiàn)象為:
    發(fā)表于 12-16 08:41

    使用FPGA對(duì)ads6442進(jìn)行控制采樣遇到的異?,F(xiàn)象求解答

    對(duì)個(gè)50KHZ,幅度為2V的正玄波進(jìn)行采樣,但是采樣出現(xiàn)了異常現(xiàn)象,采集回來(lái)的波形如下圖,請(qǐng)問(wèn)這個(gè)問(wèn)題是什么導(dǎo)致的?是采樣模式設(shè)置問(wèn)題,還是硬件電路問(wèn)題? 期待您的解答。
    發(fā)表于 12-06 08:00

    STM32G0B1VC IAP時(shí)flash擦除函數(shù)進(jìn)不去是怎么回事?

    您好,我在使用STM32G0B1VC做IAP功能時(shí)遇到個(gè)很奇怪的現(xiàn)象,我為Bootloader分配了0x08000000~0x0800F
    發(fā)表于 11-15 08:06

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

    ADS7853: 通道B內(nèi)部參考電壓異常,通道A正常,請(qǐng)幫忙分析 Part Number: ADS7853 異?,F(xiàn)象 1.1、通道
    發(fā)表于 09-26 07:42

    使用THS4531驅(qū)動(dòng)ADC時(shí),THS4531電路無(wú)法對(duì)信號(hào)進(jìn)行放大的原因?

    和實(shí)際工作都能正常,但有時(shí)該THS4531 電路無(wú)法對(duì)信號(hào)進(jìn)行放大,多次上電重啟都無(wú)法恢復(fù)。使用烙鐵對(duì)C4和C5加熱后,或者說(shuō)用烙鐵焊下周?chē)碾娐?,信?hào)就好了,但可以肯定的是外圍電路不存在虛焊等問(wèn)題,該
    發(fā)表于 09-05 06:07

    觸發(fā)器具有空翻現(xiàn)象的影響

    觸發(fā)器具空翻現(xiàn)象,通常是指在某些特定條件下,觸發(fā)器(trigger)在電路中產(chǎn)生的一種異常現(xiàn)象。這種現(xiàn)象可能導(dǎo)致電路的不穩(wěn)定,甚至損壞。
    的頭像 發(fā)表于 07-23 11:17 ?3534次閱讀