我悟了 deep sleep其实我已经实现了 也就是所有线程都挂起时 会自动休眠
只是休眠的时候flash电还没断 所以那2.2mA其实是flash的IQ 然后32M NOR手动关闭VOUT1会导致唤醒不了 所有该怎么优化这个问题呢 在DEEPSLEEP时断VOUT1在唤醒时还能继续运行 我这个思路对吗
可以在BSP_PowerDownCustom处理让flash进deep mode或者断电及相关IO的pinmux处理,BSP_PowerUpCustom里进行退出deep操作或者上电及相关IO的pinmux处理,如下
Nor通常只有十几uA量级的待机电流,进入deepsleep也不需要关闭VOUT1,只有进入hibernate和重启时才需要关闭。之前的排查方向跑偏了。
2.2mA有两个可能性,最大的嫌疑是IO漏电。如果是自己做的板子,每个IO的设置都应当排查一遍,可以参照52x用户手册第5章“输入输出”部分以及之前帖子里的低功耗开发指南操作,这个需要一定的低功耗调试经验。另一个可能性是没有进入deepsleep,可以参照用户手册4.2.7章节测量VDD_VOUT1判断,注意不是VDD33_VOUT1。
好的 我测量一下相关电压 IO漏电问题倒是全部测量过一遍了 都是出于关闭的设定状态 倒是调用下电API后IO反而被释放导致一些地方有电压 但是在这种漏电状态下电流都只有900uA 所以还是没正确进休眠的可能性比较大