我有一个程序在1秒周期(大约)内采样50ms。 使用 LFO 进行时序、使用 ADC10进行采样。
50ms ->连续采样
950ms ->停止采样并在计时器脱离 LFO 运行时进入 LPM3
当在每个50ms 采样周期结束时进入 LPM3时、我运行以下代码:
// RFD sleep function void SleepRFD(void) { ADC10CTL0 &= ~ENC; // Stop conversion ADC10CTL0 &= ~REFON; // Turn off reference RF_DET_OFF // Turn RF supply off ALL_LED_OFF // Turn LEDs off __bis_SR_register(LPM3_bits); // Enter LPM3 }
如果我关闭基准(ADC10CTL0 &=~REFON;)、我得到一个大约0.012mA 的良好最小 Iq、这是我的电路的寄生电流。 但是、我进入 LPM3时会有很大的延迟、因此整个代码(采样和休眠)的平均电流消耗为6.6mA。 请参阅随附的图像、了解其 Energytrace 曲线图。
如果我将基准保持在 ON (//ADC10CTL0 &=~REFON;)上、我得到一个大约0.194mA 的较差最小 Iq、该 Iq 由基准电流消耗决定。 然而、代码快速进入 LPM3、所以总体代码的平均电流消耗(采样和休眠)为2.3mA。 请参阅随附的图像、了解其 Energytrace 曲线图。
查看电能迹线图、看起来关闭基准会导致 MSP430进入 LPM3的延迟。 为了使我能够关闭基准并快速进入 LPM3、我应该采取哪些不同的方式来关闭电源? 此外、为什么 Energy Trace 显示的估算电池寿命更长、从而使第一条迹线的平均电流消耗更高?