我正在使用 MSP430FR5994检查我们新主板的原型。 在编写本文档时、我已经(部分)构建了许多板、所有功能都正常、现在我的重点是检查功耗。
我的板上现在没有任何其他器 件、只有 MSP4305964和复位上拉电阻器、该板由外部电源供电。 但是、即使在 LPM3模式下怠速运行、我仍然测量(变化)介于330和380 uA 之间的值。 当我开始执行大量代码时、我最终将一些初始化代码放入主函数中、以切断其余部分、但没有显著结果。
最后、我转至具有最小程序(修改后的 blink.c)的 MSP430FR5994 (相同系列、相同规格) LaunchPad、我使用该程序将器件设置为 LPM4或 LPM3模式:
#include <msp430.h> #pragma vector=unused_interrupts interrupt void Unexpected_ISR() { // Interrupt handler for unexpected interrupts. __delay_cycles(16000000); WDTCTL = 0xDEAD; } void main(void) { WDTCTL = WDTPW | WDTHOLD; while(1) _BIS_SR(LPM3_bits); // Either LPM3 or LPM4 modes }
现在的问题是以下、相信我、这需要相当多的时间才能发现、并且在我的原始项目和这个最小代码项目中是可复制的:
-如果我在 LaunchPad 上的代码中没有断点的情况下启动此程序、消耗大约为350uA、当我断开目标(以 SPBW 形式连接)时 、在 LPM3和 LPM4模式下、它下降到大约220uA 的值、 在我自己的电路板上、这些电流会提高约100uA、
-现在、如果我停止我的目标并在中断捕捉器中设置一个断点(这就是我添加它的原因)并再次启动、在 LPM4模式下、我测量0.6uA (我认为是正确的)、在 LPM3模式下、我测量大约50uA (我认为这仍然是我的板和 LaunchPad 上规格的两倍)。
SI 最后我的问题是:
- 我应该应用哪些设置来测量设备的电流(标准/软断点、低功耗模式调试或非 ASF)?
- 什么设置会影响功耗? 我的调查结果是否已知问题/功能?
- 还有哪些因素会阻止我达到最大值 在 LPM3模式下为25uA?
感谢您的任何帮助、
Marc