This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] RTOS/MSP430FR6972:LPM4和#39的功耗问题

Guru**** 2589265 points
Other Parts Discussed in Thread: MSP430FR6972, ENERGYTRACE

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/624903/rtos-msp430fr6972-the-question-of-lpm4-s-consumption

器件型号:MSP430FR6972
主题中讨论的其他器件: MSP430WAREENERGYTRACE

工具/软件:TI-RTOS

你好

我想测试 LPM4的功耗。 只有 MSP430FR6972、JTAG 电路和32.768kHz 晶体振荡器焊接在 PCB 上。 万用表 是3.3V 电源电路中的串联连接、用于测量功耗。 但是,消费是133uA,令人惊讶。  导致这种现象的原因是什么?  在功耗测试中、我应该注意什么?

测试代码如下:

int main (void)
{
WDTCTL = WDTPW | WDTHOLD;

//配置 GPIO
P1OUT = 0;
P1DIR = 0xFF;

P2OUT = 0;
P2DIR = 0xFF;

P3OUT = 0;
P3DIR = 0xFF;

P4OUT = 0;
P4DIR = 0xFF;

P5OUT = 0;
P5DIR = 0xFF;

P6OUT = 0;
P6DIR = 0xFF;

P7OUT = 0;
P7DIR = 0xFF;


P9OUT = 0;
P9DIR = 0xFF;

PJOUT = 0;
PJSEL0 = BIT4 | BIT5; //对于 XT1
PJDIR = 0xFFFF;


PM5CTL0 &=~LOCKLPM5;

// XT1设置
CSCTL0_H = CSKEY >> 8; //解锁 CS 寄存器
CSCTL1 = DCOFSEL_0; //将 DCO 设置为1MHz
CSCTL2 = SELA_LFXTCLK | SELESS__DCOCLK | SELM_DCOCLK;
CSCTL3 = DIVA__1 | DIVM_1; //将所有分频器设置为1
CSCTL4 &=~LFXTOFF; //启用 LFXT1
DO
{
CSCTL5 &=~LFXTOFFG; //清除 XT1故障标志
SFRIFG1 &=~OFIFG;
} while (SFRIFG1&OFIFG); //测试振荡器故障标志
CSCTL0_H = 0; //锁定 CS 寄存器

__bis_SR_register (LPM4_bits);

__no_operation();
__no_operation();
} 

此致

Jent

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好 Jent、

    您的代码看起来不错、因为它与 MSP430Ware 提供的 LPM4示例相同。 在尝试测量 LPM 电流时需要考虑的两个方面。 "您的电路板是如何配置的?" 以及"如何测量电流?"

    对于第一个问题、这是定制板还是目标板? 如果是定制的、那么哪些信号会连接到 MSP430? 是否有线路在器件上配置为输出低电平时驱动为高电平、从而导致电流消耗过大? 是否有任何可能导致过流的悬空引脚?

    对于第二个问题、您在哪里测量电流? 您是测量电路板中的 VCC、还是测量 VCC 进入 MSP430的位置? 这一点至关重要、尤其是在定制电路板上、因为在电路板中的 VCC 处进行测量可能会拾取与 MSP430无关的电流。 还要确认、您断开 VCC 连接并在整个断开过程中进行测量、对吧? 我们还需要查看您的测量结果。 根据我的经验、手持式万用表不是测量低电流的好工具、因为它们不够精确、并且会产生假值。 您需要使用额定电流低于 uA 的工作台万用表。 更好的方法是使用受控电压/电流源来绘制随时间变化的电压/电流。 在这两个系统中、测量值可能会关闭、具体取决于您用于测量的刻度。 例如、在我通常使用的电压/电流源表中、测量值默认为20V、2A 标度。 在这个刻度上、我的~1uA 电流看起来像100uA。 通过将刻度调整为自动设置或3V、1uA、我可以精确测量我的电流。 也就是说、请检查仪表的刻度设置、以确保获得准确的测量结果。

    您还可以使用 EnergyTrace 了解电流消耗。 请记住、如果从调试开始启动 EnergyTrace、它将对启动电流进行计数、这可能会使 LPM4电流过载、具体取决于所记录数据的时间长度。 您还可以在整个应用的中途启动 EnergyTrace、以确保在获取数据之前处于 LPM4模式。

    这是否有帮助?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    你好 Jace,  

    我听从了你的建议,做了另一个实验。  在实验中,只有 msp430fr6972和 JTAG 部分保留。

    我 使用了6-1/2位精密万用表来测试电流。 但我发现电流仍然很大。 LPM4 的功耗 如下所示, LaunchPad 用于3.3V 电源。

    测试 代码如下所示

    #include 
    #include "msp430fr6972.h"
    int main (void)
    {
    WDTCTL = WDTPW | WDTHOLD;
    
    //配置 GPIO
    P1OUT = 0;
    P1DIR = 0xFF;
    
    P2OUT = 0;
    P2DIR = 0xFF;
    
    P3OUT = 0;
    P3DIR = 0xFF;
    
    P4OUT = 0;
    P4DIR = 0xFF;
    
    P5OUT = 0;
    P5DIR = 0xFF;
    
    P6OUT = 0;
    P6DIR = 0xFF;
    
    P7OUT = 0;
    P7DIR = 0xFF;
    
    
    
    P9OUT = 0;
    P9DIR = 0xFF;
    
    
    PJOUT = 0;
    PJDIR = 0xFFFF;
    
    PM5CTL0 &=~LOCKLPM5;
    
    // XT1设置
    CSCTL0_H = CSKEY >> 8; //解锁 CS 寄存器
    CSCTL1 = DCOFSEL_0; //将 DCO 设置为1MHz
    CSCTL2 = SELA_LFMODCLK | SELESS__DCOCLK | SELM_DCOCLK;
    CSCTL3 = DIVA__1 | DIVM_1; //将所有分频器设置为1
    CSCTL0_H = 0; //锁定 CS 寄存器
    
    // while (1);
    
    __bis_SR_register (LPM4_BITS);
    
    __no_operation();
    __no_operation();
    } 

    此致

    Jent

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好 Jent、

    我在您的电路中看不到您的电源去耦电容器。 如果不存在、不稳定性或来自 Supplion 的噪声可能会影响器件、从而导致额外的功耗。 此外、由于 LCD 模块未被使用、引脚 REE/LCDCAP 需要被接至 DVSS 或 DVCC。

    我也不确定您的测量结果与您的设置有多精确。 尤其是由天线支持的芯片、而不是放置在 PCB 上。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Jace,  

    感谢你的帮助。

     我 将原理图更改如下、从而解决了问题:

    使用上面的原理图,MSP430FR6972的功耗与 MSP430FR6972的数据表在不同的低功耗模式下的功耗相同。 但我不知道 原因是什么?

     您是否理解它?

    此致、

    Jent

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Jent、

    我以前没有注意到这一点、但在您之前的电路中、您的 JTAG 信号被拉高、这会导致消耗额外的电流。 在您的新原理图中、这些都保持未连接状态。 这是不使用时针对 JTAG 引脚的建议配置。 请再次查看我之前的帖子、因为您仍然没有解决 VCC 去耦电容器和 R33/LCDCAP 引脚的问题。