硬件工程师做的测试自制最小系统,系统 供电3V
测试目标:
使用原厂的例程,修改GPIO配置后的代码
按键进入深度睡眠状态,
再次按键,唤醒,点亮LED灯2秒。
测试过程:
测试第一次发现,深度睡眠后电流,3V时高达260 uA
找了一圈问题,各个引脚检查,发现引脚状态不正常的KEY2,断开相应的连接。
重新测试后,下降到90 uA
再次排查非GPIO口,将AVCC_USB/AVSS_USB断开,
再次测试,电流下降到36 uA
找不到问题点。再检查 特殊功能IO口,发现BOOT0的电压不正常,不是0,也不是VDD,而是中间的一个值,断开BOOT0连接,电流测试为2.2 uA
但BOOT0是不能悬浮的,检查 程序发现,引脚被配置为输入上拉,将引脚改为输入下拉。
再次测试,电流为2.2uA
致此,低功耗的功耗验证完成。
这里,总结一下问题点:
- 不连接AVCC_USB/AVSS_USB。
- 外部电路的配置不合理。
- PORTF的对应BOOT0的引脚配置错误。
附源码如下:
/******************************************************************************
* Include files
******************************************************************************/
#include gpio.h
#include lpm.h
/******************************************************************************
* Local pre-processor symbols/macros ('#define')
******************************************************************************/
/******************************************************************************
* Global variable definitions (declared in header file with 'extern')
******************************************************************************/
/******************************************************************************
* Local ty