從582M切換到582F,同樣的程序只是刪點(diǎn)多余的IO口配置,休眠模式下功耗卻在50uA左右下不去,用582M的時(shí)候休眠模式下功耗卻在10uA左右,IO口已有確定的電瓶。582F原理圖如下:
從582M切換到582F,同樣的程序只是刪點(diǎn)多余的IO口配置,休眠模式下功耗卻在50uA左右下不去,用582M的時(shí)候休眠模式下功耗卻在10uA左右,IO口已有確定的電瓶。582F原理圖如下:
CH582M和CH582F內(nèi)核一樣的,代碼通用,數(shù)十uA的功耗差異,一般是IO漏電導(dǎo)致的。
低功耗問題排查,見鏈接:沁恒藍(lán)牙系列MCU低功耗底電流異常問題排查 - JayWell - 博客園 (cnblogs.com)
已按上述連接排查過了,休眠前每個(gè)IO口均有確定的電平
測試休眠期間的靜態(tài)功耗,就基于PM例程修改代碼進(jìn)行測試。
先確保焊接都沒問題,引腳焊盤盡量飽滿,GND連通確保連好。
是僅測試CH582F的功耗嗎,代碼中配置的上/下拉要與外部店鋪相接近以減小休眠期間的漏電??梢栽谛菝咔按蛴32_PA_PD_DRV,R32_PA_PU,R32_PA_DIR、R32_PB_PD_DRV,R32_PB_PU,R32_PB_DIR這幾個(gè)寄存器,看看是否與外部電平相近。打印日志獲取到后記得斷開杜邦線。
如果是測試的板子整體的功耗,可以按外部電路,逐個(gè)去掉,檢查是哪些模塊引起功耗偏高。
CH582F的一部分IO是沒有打線引出的,但因?yàn)镕和M共用晶圓,實(shí)際上F也存在這些IO,或許同樣需要上下拉處理。
另外有一點(diǎn)疑問想咨詢下FAE,對于這種未使用的引腳,什么時(shí)候適合設(shè)置為模擬輸入來降功耗,什么時(shí)候適合設(shè)置為特定上下拉輸入來降功耗?謝謝!
如果是BLE代碼,在啟用HAL_SLEEP后會(huì)調(diào)用
? ? GPIOA_ModeCfg(GPIO_Pin_All, GPIO_ModeIN_PU);
? ? GPIOB_ModeCfg(GPIO_Pin_All, GPIO_ModeIN_PU);
配置所有GPIO輸入上拉即可。
浮空輸入只建議在運(yùn)行期間配置,休眠前是需要固定電平的,比方說休眠前,ADC引腳要配置為輸入上/下拉,喚醒后運(yùn)行ADC前,GPIO再配置為浮空輸入。針對沒引出的IO,無需做特殊處理,配置GPIO_Pin_All一并上拉即可。
實(shí)測正如5樓所述,需要582F需對未引出的IO口做處理。