Bug描述:系统在待机的时候,电流为1-2mA,但是如果加上扫描头,发现待机电流为40mA。客户无法接受,要该。
解决方法: 只能在待机的时候把给扫描头供电的LDO关掉。在唤醒的时候,开启。
查了下电源管理芯片LP3972,发现可以通过配置寄存器来控制LDO4的输出与否。
具体的做法是:系统待机及唤醒,均要调用OEMPowerOff()函数,那我只要在void OEMPowerOff()的函数里面增加相关的关闭和打开LDO4的操作即可。LDO4的控制位在相关寄存器的第四位。
打开LDO4的操作如下:
UINT8 ucValue = 0;
// image power on pmic
// ldo4 to 3.3v
PMICLIB_Read(LP3972_REG_L34VCR, &ucValue);
ucValue |=0xf0;
PMICLIB_Write(LP3972_REG_L34VCR, ucValue);
反之亦然,关闭LDO4的操作如下:
PMICLIB_Read(LP3972_REG_L34VCR, &ucValue);ucValue &= 0x0F;
PMICLIB_Write(LP3972_REG_L34VCR, ucValue);