CH582M CH582F 功耗差异

从582M切换到582F,同样的程序只是删点多余的IO口配置,休眠模式下功耗却在50uA左右下不去,用582M的时候休眠模式下功耗却在10uA左右,IO口已有确定的电瓶。582F原理图如下:

image.png

CH582M和CH582F内核一样的,代码通用,数十uA的功耗差异,一般是IO漏电导致的。

低功耗问题排查,见链接:沁恒蓝牙系列MCU低功耗底电流异常问题排查 - JayWell - 博客园 (cnblogs.com)


已按上述连接排查过了,休眠前每个IO口均有确定的电平


测试休眠期间的静态功耗,就基于PM例程修改代码进行测试。

先确保焊接都没问题,引脚焊盘尽量饱满,GND连通确保连好。

是仅测试CH582F的功耗吗,代码中配置的上/下拉要与外部店铺相接近以减小休眠期间的漏电。可以在休眠前打印R32_PA_PD_DRV,R32_PA_PU,R32_PA_DIR、R32_PB_PD_DRV,R32_PB_PU,R32_PB_DIR这几个寄存器,看看是否与外部电平相近。打印日志获取到后记得断开杜邦线。
如果是测试的板子整体的功耗,可以按外部电路,逐个去掉,检查是哪些模块引起功耗偏高。


CH582F的一部分IO是没有打线引出的,但因为F和M共用晶圆,实际上F也存在这些IO,或许同样需要上下拉处理。

另外有一点疑问想咨询下FAE,对于这种未使用的引脚,什么时候适合设置为模拟输入来降功耗,什么时候适合设置为特定上下拉输入来降功耗?谢谢!


如果是BLE代码,在启用HAL_SLEEP后会调用

    GPIOA_ModeCfg(GPIO_Pin_All, GPIO_ModeIN_PU);

    GPIOB_ModeCfg(GPIO_Pin_All, GPIO_ModeIN_PU);

配置所有GPIO输入上拉即可。

浮空输入只建议在运行期间配置,休眠前是需要固定电平的,比方说休眠前,ADC引脚要配置为输入上/下拉,唤醒后运行ADC前,GPIO再配置为浮空输入。针对没引出的IO,无需做特殊处理,配置GPIO_Pin_All一并上拉即可。


实测正如5楼所述,需要582F需对未引出的IO口做处理。


只有登录才能回复,可以选择微信账号登录