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.

[参考译文] MSP430FR4133:LPM3消耗60uW 而不是6uW:)

Guru**** 633805 points
Other Parts Discussed in Thread: MSP430FR4133, ENERGYTRACE, MSP430FR5969
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/600842/msp430fr4133-lpm3-consuming-60-uw-instead-of-6-uw

器件型号:MSP430FR4133
主题中讨论的其他器件: ENERGYTRACEMSP430FR5969

尊敬的:

我将使用 MSP430FR4133开始我的工作。

我在 EnergyTrace、自由运行模式下进行了一些测试、移除了 UART 跳线以及 Launchpad 的 LED 跳线。

对于以下代码、我为 LPM3获得60uW 的值、这显然是不正确的。 但是,代码很简单,但我看不到我缺少什么,可能是因为时差;)

因此、请向我提供您的意见、并告诉我在使用此 MCU 的第一步中、我做了什么错了!


#include 



//
////@在低功耗模式和函数中将其 GPIO 短接//

void GPIO_init ()
{
P1DIR = 0xFF;P2DIR = 0xFF;P3DIR = 0xFF;P4DIR = 0xFF;
P5DIR = 0xFF;P6DIR = 0xFF;P7DIR = 0xFF;P8DIR = 0xFF;
P1REN = 0xFF;P2REN = 0xFF;P3REN = 0xFF;P4REN = 0xFF;
P5REN = 0xFF;P6REN = 0xFF;P7REN = 0xFF;P8REN = 0xFF;
P1OUT = 0x00;P2OUT = 0x00;P3OUT = 0x00;P4OUT = 0x00;
P5OUT = 0x00;P6OUT = 0x00;P7OUT = 0x00;P8OUT = 0x00;

//删除 GPIO 默认高阻抗并应用上一个
PM5CTL0 &=~LOCKLPM5;
}



////
@简要超循环
//
////输入、感应和发送
//
int main (void)
{
//停止看门狗计时器
WDTCTL = WDTPW | WDTHOLD;


//初始化内容
GPIO_init();


//输入 LPM
_bis_SR_register (LPM3_bits + GIE);
} 

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    测量功率时是否处于调试模式?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    你好,
    我要做的是按下"debug"按钮、当调试器在代码的第一行停止时、我按下"Free Run"、这样调试器的功耗就不会被考虑在内。 我这样做对吗?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    当您连接到调试器时、器件不会进入 LPM3模式。 将代码下载到器件中。 然后停止调试会话。 重置器件、您将能够进入 LPM3模式。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    有什么好处 ? )
    这与"自由运行"不同吗?



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

    对此有任何回答吗?

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

    我目前正在使用 Energytrace 进行一些测量。

    同时、请查看、

     

    ULP 顾问

    http://processors.wiki.ti.com/index.php/ULP_Advisor?DCMP=MSP430&HQS=Other+OT+ULPADVISOR

    MSP430Tm高级功耗优化:ULP AdvisorTm软件和 EnergyTraceTm技术

    http://www.ti.com/lit/an/slaa603/slaa603.pdf

    MSP430技术讲座系列7 of 12 -低功耗优化

    https://training.ti.com/msp430-workshop-series-7-12-low-power-optimization

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

    谢谢  

    不知道第三个、将检查。

    如果您同时发现了苏米苏、请告诉我。

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

    你好、  

    您是否获得了相同的值?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    是的、我得到了相同的值。 您能否尝试 lpm 0模式并查看您得到的结果?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    卡佐拉

    我仍在努力解决这一问题。 我会告诉您我发现了什么。

    -尼马

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    #include 
    
    
    int main (void)
    {
    WDTCTL = WDTPW | WDTHOLD;
    
    //配置 GPIO
    P1OUT = 0;
    P1DIR = 0xFF;
    
    P2OUT = 0;
    P2DIR = 0xFF;
    
    P3OUT = 0;
    P3DIR = 0xFF;
    
    P4OUT = 0;
    P4DIR = 0xFF;
    
    PJOUT = 0;
    PJSEL0 = BIT4 | BIT5; //对于 XT1
    PJDIR = 0xFFFF;
    
    //禁用 GPIO 上电默认高阻抗模式以激活
    //先前配置的端口设置
    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 (LPM3_bits);
    }
    

    我使用 MSP430FR5969测试了上述代码、这就是我得到的结果。

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

    尊敬的  

    很抱歉、我已经离开了几天! 挪威,尼斯国家:)

    这些是我使用 msp430fr4133获得的值:

    LMP0 600uW = 0.6mW   
    lpm3 60uW = 0.06mW  
    lpm4  2uW = 0.002mW

    我可能缺少此 XT1安装部分?

    请告诉我!

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

    尊敬的  

    对此有任何更新或说明? 如果我无法信任 EnergyTrace、应该购买万用表吗? )

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

    很抱歉我已经离开办公室几天了。 我得到的数字相对于数据表是正确的。 您能否尝试使用相同的代码并向我发送您的结果的屏幕截图?

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

    尊敬的  

    您的编号是针对 msp430fr5969的、但问题是针对 msp430fr4133。。。

    如果我的 msp430fr4133不正确、TI 能否提供 LPM3代码、如果需要进行一些更改、TI 能否提供 LaunchPad 配置?

    谢谢

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    /*-版权所有-、BSD_EX
    *版权所有(c) 2014、德州仪器(TI)公司
    *保留所有权利。
    *
    *
    只要
    符合以下条件*、允许以源代码和二进制形式重新分发和使用:
    *
    *源代码的重新分发必须保留上述版权
    声明*、此条件列表和以下免责声明。
    *
    ***二进制形式的再发行必须在
    
    *随发行提供的文档和/或其他材料中复制上述版权声明、本条件列表和以下免责声明。
    *
    ***未经
    
    事先书面许可、不得使用德州仪器公司的名称或*其贡献者的名称认可或推广从本软件衍生的产品*。
    *
    *本软件由版权所有者和贡献者"按原样"提供
    *、
    
    不承担任何明示或暗示的保证、包括但不限于*适销性和特定用途适用性的暗示保证*。 在任何情况下、版权所有者或
    *贡献者都不对任何直接、间接、偶然、特殊、
    *模范、 或相应的损害(包括但不限于
    *采购替代产品或服务;丧失使用、数据或利润;
    *或业务中断)、但出于任何责任理论
    、*无论是在合同中、严格责任还是由于
    使用本软件而以任何方式产生的侵权行为(包括疏忽或*其他)
    、*即使已获悉可能会发生此类损坏。
    *
    ***
    *
    * MSP430代码示例免责声明
    *
    * MSP430代码示例是自包含的低级程序
    ,通常*以
    高度*简明的方式演示单个外设功能或器件功能。 为此、代码可能依赖于器件的加电默认
    值*寄存器值和时钟配置等设置、
    并且在组合多个示例中的代码时必须*小心以避免潜在的副作用
    *。 另请参阅 www.ti.com/grace 了解 GUI、并参阅 www.ti.com/msp430ware
    *了解外设配置的 API 函数库方法。
    *
    *--/版权--*
    //*********
    // MSP430FR413x 演示-在 ACLK = XT1CLK = 32768Hz 的情况下进入 LPM3。
    //
    //说明:配置 ACLK 以 XT1晶振为源。 进入 LPM3直到
    // 执行 WDT ISR 并切换 P1.0上的 LED。
    //
    // MSP430FR4133
    // --------
    // /|\| |
    // || |
    // || XIN (P4.1)|--
    // -|RST |~32768Hz
    // | XOUT (P4.2)|--
    // | |
    // | P1.0|->LED
    //
    William Goh
    // Texas Instruments Inc.
    // 2014年1月
    //使用 IAR 嵌入式工作平台 v5.60和 Code Composer Studio v5.5构建
    //*********
    #include 
    
    int main (void)
    {
    WDTCTL = WDT_ADLY_1000; // WDT 1000ms,ACLK,间隔定时器
    
    SFRIE1 |= WDTIE; //启用 WDT 中断
    
    P4SEL0 |= BIT2 + BIT1; // P4.2:XOUT;P4.1:XI1
    
    CSCTL4 = SELMS_DCOCLKDIV + SELA_XT1CLK;// MCLK=SMCLK=DCO;ACLK=XT1
    
    //端口配置将所有未使用的引脚输出为低电平
    P1OUT = 0x00;
    P2OUT = 0x00;
    P3OUT = 0x00;
    P4OUT = 0x00;
    P5OUT = 0x00;
    P6OUT = 0x00;
    P7OUT = 0x00;
    P8OUT = 0x00;
    
    P1DIR = 0xff;
    P2DIR = 0xff;
    P3DIR = 0xff;
    P4DIR = 0xff;
    P5DIR = 0xff;
    P6DIR = 0xff;
    P7DIR = 0xff;
    P8DIR = 0x0F;
    
    //禁用 GPIO 上电默认高阻抗模式
    //激活先前配置的端口设置
    PM5CTL0 &=~LOCKLPM5;
    
    操作
    {
    CSCTL7 &=~(XT1OFFG | DCOFFG); //清除 XT1和 DCO 故障标志
    SFRIFG1 &=~OFIFG;
    } while (SFRIFG1和 OFIFG); //测试振荡器故障标志
    
    _bis_SR_register (LPM3_bits | GIE); //进入 LPM3
    __no_operation(); //对于调试
    器}
    
    //看门狗计时器中断服务例程
    #if defined (__TI_Compiler_version__)|| Defined (__IAR_systems_ICC__)
    #pragma vector=WDT_vector
    __interrupt void WDT_ISR (void)
    #Elif defined (__GDT__)
    void __attribute__(interrupt (interrupt (WDT_vector
    
    )#pragma!#pragma Compiler (WDT_isc)(void)(void)#pru_isr!
    #endif
    {
    P1OUT ^= 0x01; //每1次切换 P1.0 (LED)
    }
    
    

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    /*-版权所有-、BSD_EX
    *版权所有(c) 2014、德州仪器(TI)公司
    *保留所有权利。
    *
    *
    只要
    符合以下条件*、允许以源代码和二进制形式重新分发和使用:
    *
    *源代码的重新分发必须保留上述版权
    声明*、此条件列表和以下免责声明。
    *
    ***二进制形式的再发行必须在
    
    *随发行提供的文档和/或其他材料中复制上述版权声明、本条件列表和以下免责声明。
    *
    ***未经
    
    事先书面许可、不得使用德州仪器公司的名称或*其贡献者的名称认可或推广从本软件衍生的产品*。
    *
    *本软件由版权所有者和贡献者"按原样"提供
    *、
    
    不承担任何明示或暗示的保证、包括但不限于*适销性和特定用途适用性的暗示保证*。 在任何情况下、版权所有者或
    *贡献者都不对任何直接、间接、偶然、特殊、
    *模范、 或相应的损害(包括但不限于
    *采购替代产品或服务;丧失使用、数据或利润;
    *或业务中断)、但出于任何责任理论
    、*无论是在合同中、严格责任还是由于
    使用本软件而以任何方式产生的侵权行为(包括疏忽或*其他)
    、*即使已获悉可能会发生此类损坏。
    *
    ***
    *
    * MSP430代码示例免责声明
    *
    * MSP430代码示例是自包含的低级程序
    ,通常*以
    高度*简明的方式演示单个外设功能或器件功能。 为此、代码可能依赖于器件的加电默认
    值*寄存器值和时钟配置等设置、
    并且在组合多个示例中的代码时必须*小心以避免潜在的副作用
    *。 另请参阅 www.ti.com/grace 了解 GUI、并参阅 www.ti.com/msp430ware
    *了解外设配置的 API 函数库方法。
    *
    *--/版权--*
    //*********
    // MSP430FR413x 演示-具有 MCLK 16MHz 的 LPM3条
    目//
    说明:当 MCLK 为16MHz 时,如果温度明显改变
    // 对于进入 LPM3和退出 LPM3、MCLK 频率为
    // 唤醒可能与 LPM3为
    //时明显不同 输入、可能超出指定的工作范围。 以避免
    // 这样、MCLK 可被设定为从 DCOCLKDIV 分频。
    //
    // MSP430FR4133
    // --------
    // /|\| |
    // || |
    // -|RST P1.0 |-->LED
    // | |
    
    //
    
    //// Kathryn Adamsky
    // Texas Instruments Inc.
    // 2016年6月(更新)| 2014年6月(创建日期)
    //使用 IAR 嵌入式工作平台 v6.10.2和 Code Composer Studio v5.5进行构建
    //************
    #include 
    
    void Init_GPIO (void);
    
    int main (void)
    {
    WDTCTL = WDTPW | WDTHOLD; //停止看门狗计时器
    
    //配置 GPIO
    init_gpio();
    P1OUT &=~BIT0; //清除已定义加电状态的 P1.0输出锁存器
    P1DIR |= BIT0; //将 P1.0设置为输出方向
    
    //禁用 GPIO 上电默认高阻抗模式
    //激活先前配置的端口设置
    PM5CTL0 &=~LOCKLPM5;
    
    _bis_SR_register (SCG0); //禁用 FLL
    CSCTL3 |= SELREF_REFOCLK; //将 REFO 设置为 FLL 基准源
    CSCTL0 = 0; //清除 DCO 和 MOD 寄存器
    CSCTL1 &=~(DCORSEL_7); //首先清除 DCO 频率选择位
    CSCTL1 |= DCORSEL_5; //设置 DCO = 16MHz
    CSCTL2 = FLLD_0 + 487; // DCOCLKDIV = 16MHz
    _DELAY_CYCLES (3);
    _BIC_SR_register (SCG0); //启用 FLL
    while (CSCTL7 &(FLLUNLOCK0 | FLLUNLOCK1)); // FLL 锁定
    FRCTL0 = FRCTLPW | NWAITS0; //将 FRAM 等待状态数设置为0
    CSCTL4 = SELMS_DCOCLKDIV | SELA_REFOCLK; //将默认 REFO (~32768Hz)设置为 ACLK 源,ACLK = 32768Hz
    //默认 DCOCLKDIV 为 MCLK 和 SMCLK 源
    
    //配置 RTC
    RTCMOD = 10-1; //每10*1000*(1/10kHz)=~1S 发生一次中断和复位
    RTCCTL |= RTCSS_VLOCLK | RTCSR |RTCPS_1000;
    RTCCTL |= RTCIE;
    
    while (1)
    {
    CSCTL5 |= DIVM_1; // MCLK = 0.5* DCOCLKDIV = 8MHz -仅当 LPM3进入和 LPM3退出的温度发生显著变化时
    
    P1OUT ^= BIT0;
    
    _bis_SR_register (LPM3_bits | GIE); //进入 LPM3、停止所有时钟
    __no_operation(); //对于调试器
    }
    }
    
    // RTC 中断服务例程
    #if defined (__TI_Compiler_version__)|| defined (__IAR_systems_ICC__)
    #pragma vector=RTC_vector
    __interrupt void RTC_ISR (void)
    #Elif defined (__GNU__)
    void __attribute__((interrupt (RTC_vector))))#pragma
    
    编译器#void RTC_ISR (void)不受支持!
    #endif
    {
    //配置 CS
    _BIC_SR_register (SCG0); //启用 FLL
    while (CSCTL7 &(FLLUNLOCK0 | FLLUNLOCK1)); // FLL 锁定
    
    CSCTL5 &= DIVM_1; // MCLK = DCOCLKDIV = 16MHz -仅当 LPM3进入和 LPM3退出时温度发生显著变化
    
    开关(__evo_in_range (RTCIV、RTCIV_RTCIF))
    {
    案例 RTCIV_NONE:break; //无中断
    案例 RTCIV_RTCIF:__BIC_SR_REGISTER_ON_EXIT (LPM3_BITS); // RTC 溢出
    //在 ti 上退出 LPM3
    中断;
    默认值:break;
    }
    }
    
    空 Init_GPIO()
    {
    P1DIR = 0xFF;P2DIR = 0xFF;P3DIR = 0xFF;P4DIR = 0xFF;
    P5DIR = 0xFF;P6DIR = 0xFF;P7DIR = 0xFF;P8DIR = 0xFF;
    P1REN = 0xFF;P2REN = 0xFF;P3REN = 0xFF;P4REN = 0xFF;
    P5REN = 0xFF;P6REN = 0xFF;P7REN = 0xFF;P8REN = 0xFF;
    P1OUT = 0x00;P2OUT = 0x00;P3OUT = 0x00;P4OUT = 0x00;
    P5OUT = 0x00;P6OUT = 0x00;P7OUT = 0x00;P8OUT = 0x00;
    }
    

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    以上两个示例适用于您的器件。 请尝试一下、然后为我截屏结果吗?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    你好、  

    谢谢! 我肯定会在周末去的! )

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

    尊敬的  

    更新 launchpad 固件的 Code Composer Studio 警告的其中一个过程之后、值似乎是可以的!

    这是否可以修复与功耗和 EnergyTrace 相关的问题?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    啊、我很高兴它终于开始工作了。 由于某种原因、它可能永远不会退出调试模式、并且在更新后它会工作。 我不确定。 我将向内部团队报告。 同时,我要感谢你的耐心,我很高兴看到问题得到解决。

    NIMA