|
我做的是一个低功耗设备。然后我测试功耗时发现在睡眠模式下还有125uA左右的电流。然后我就排查原因发现是6轴LSM6DSL产生的功耗。排查方法为我将6轴取下被屏蔽6轴相关代码。发现睡眠功耗正常了只有10几uA。但是我将6轴焊接上去发现功耗又变成了125uA(没有写配置6轴的相关代码)。在我配置加速度和角速度都为POWER_DOWN任然有那个么高的功耗。 甚是不解这是为啥龙鳞好几天了。以下是我的P原理图和配置睡眠的代码,代码是用三轴的驱动改的。
void hal_acc_wakeup_int(void)
{
// LIS3DH_WriteReg(LSM6DSL_ACC_GYRO_CTRL4_C, 0x40); // 角速度睡眠
// delay_ms(10);
LIS3DH_WriteReg(LSM6DSL_ACC_GYRO_CTRL1_XL, 0x10); //12.5Hz,量程+-2g
delay_ms(10);
LIS3DH_WriteReg(LSM6DSL_ACC_GYRO_CTRL2_G, 0x00); //角速度掉电模式
delay_ms(10);
LIS3DH_WriteReg(LSM6DSL_ACC_GYRO_TAP_CFG1,0xE0); //中断唤醒模式,开启高通数字滤波,中断不锁存
LIS3DH_WriteReg(LSM6DSL_ACC_GYRO_WAKE_UP_DUR, 0x40); //识别中断时间
LIS3DH_WriteReg(LSM6DSL_ACC_GYRO_WAKE_UP_THS, 0x10); //唤醒阈值250mg
LIS3DH_WriteReg(LSM6DSL_ACC_GYRO_MD1_CFG, 0x20); //使能唤醒中断为INT1
LIS3DH_WriteReg(LSM6DSL_ACC_GYRO_CTRL9_XL, 0x00); //x,y,z轴失能
}
|
|