盤|休眠喚醒異常,從硬件角度分析21)
簡介在國產(chǎn) BLE 物聯(lián)網(wǎng)芯片賽道杰理 AW31N 憑借不錯的成本優(yōu)勢、BLE5.4 協(xié)議棧、豐富外設(shè)與超低功耗能力被大量用在藍牙遙控器、HID 設(shè)備、傳感器透傳模組這類消費類硬件產(chǎn)品上。它內(nèi)置 160MHz 內(nèi)核、ADC、PWM、IR 紅外、SPI/I2C 等外設(shè)這些外設(shè)功能和MCU基本一樣就相當(dāng)于MCU藍牙二合一而且成本不貴適合消費電子成本比較敏感的產(chǎn)品。但實際上手開發(fā)就會發(fā)現(xiàn)這顆芯片并沒有像MCU開發(fā)那樣一帆風(fēng)順SDK 是閉源庫為主公開文檔偏少很多實操細節(jié)只能靠踩坑摸索。今天就結(jié)合實際項目調(diào)試經(jīng)歷把開發(fā)過程中遇到的卡點問題做一下復(fù)盤總結(jié)從硬件角度如何去分析問題希望能夠幫正在做 AW31N項目的朋友少走彎路。一、使用場景描述我們用 AW31N開發(fā)的一款產(chǎn)品應(yīng)用場景為當(dāng)設(shè)備充電或放電的時候會自動喚醒或者按下按鍵也會喚醒喚醒是有一個中斷信號INT輸出給AW31NAW31N檢測到中斷INT輸入狀態(tài)從休眠轉(zhuǎn)換為工作狀態(tài)中斷INT喚醒信號是上升沿喚醒。二、問題描述設(shè)備正常充電或放電的過程中突然偶發(fā)一次AW313N沒有喚醒此時按幾下按鍵就又喚醒了很奇怪這個情況很難復(fù)現(xiàn)。這個問題很難復(fù)現(xiàn)要一直使用2-3天才會復(fù)現(xiàn)1次之后又會很難復(fù)現(xiàn)。從這個問題表象來看INT喚醒屬于外部中斷我們首先會想到是硬件問題因為按照正常的理解軟件配置好中斷之后喚醒就是純硬件的了于是我們增加了樣機數(shù)量開始測試......三、硬件分析遇到問題不可怕怕的時候問題難以復(fù)現(xiàn)問題難以復(fù)現(xiàn)就很難找到規(guī)律找不到規(guī)律就不好往下進展。終于功夫不負有心人經(jīng)過持續(xù)不懈的努力測試復(fù)現(xiàn)到了問題。于是我們保持當(dāng)前環(huán)境不變?nèi)y量信號根據(jù)以往經(jīng)驗遇到任何硬件的問題第一步先去測量LDO輸出是否OK測試一下3.3V此時LDO電壓是沒問題的。第二步測量INT信號是否是高電平于是我們掛上了示波器可以看到INT一直保持穩(wěn)定的高電平但是在問題出現(xiàn)的那一刻INT的信號不得而知這是最關(guān)鍵的問題所在。第三步我們試了多按了幾下按鍵AW313N還真就喚醒了我們從信號也能看得出來如下圖四、排查中斷I/O口我們可以測量中斷I/O口的電平對比看下休眠前后的電壓是否正確。斷開INT接上拉100K測量PA3休眠之后的電平內(nèi)部休眠后下拉10K正常的測試結(jié)果應(yīng)該是0.3V左右。飛線把INT引腳斷開之后經(jīng)過實測電壓確實0.3V左右說明I/O口休眠之后的電平也是OK的。五、總結(jié)目前從硬件角度看很難定性問題因為問題出現(xiàn)那一刻的INT信號沒有捕捉到我們也嘗試掛了示波器監(jiān)控LDO、INT信號測試了一天也沒復(fù)現(xiàn)問題分析到這一步卡住了很難往下走。我們只能另辟蹊徑從軟件角度嘗試去分析一波......未完待續(xù)。