最近手头上的产品进入Power Down模式后,功耗高达270uA,与手册介绍的9uA相差甚远,想问问各位怎么才能达到最低功耗。
目前我采取的方式为:在调用CLK_PowerDown()进入睡眠模式前,只保留一个IO中断,其他ADC、PWM、I2C、Timer中断关闭,没有复用的IO全部设置为输入模式,复用的IO则不管它。唤醒后,之前更改的IO重新配置为原来的intput、output或QUASI模式,恢复之前关闭的外设中断。此种处理方式,睡眠模式功耗达到了270uA.
请问是否由于MCU在进入睡眠模式前,IO和PWM、ADC、I2C等外设的配置不正确导致的?如果是这个原因,那么具体应该怎么配置?
问题1:是否所有的外设如ADC、PWM、I2C、Timer都应该关闭?
问题2:是否所有的IO都应该设置为GPIO的INPUT模式(包括复用的IO)?
问题3:如果外设都关闭的话,在唤醒后是否需要重新进行初始化?
|