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.

[参考译文] MSP430FR5969:电流消耗的减少量不会像数据表那样大

Guru**** 2573695 points
Other Parts Discussed in Thread: ENERGYTRACE, MSP430FR5969

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/605279/msp430fr5969-current-consumption-does-not-decrease-as-much-as-data-sheet

器件型号:MSP430FR5969
主题中讨论的其他器件:ENERGYTRACE

你好。

 

我有疑问。

我想知道我的测量电流值不能达到所述数据表的原因。

 

我使用 EnergyTrace 测量了 MSP430FR5969 Launchpad 上的电流消耗。

寄存器设置如下:

 

int main (空)

 WDTCTL = WDTPW | WDTHOLD;

 

 P1DIR = 0xFF;                           

 P1OUT = 0;

 P2DIR = 0xFF;

 P2OUT = 0;

 P3DIR = 0xFF;                         

 P3OUT = 0;

 P4DIR = 0xFF;

 P4OUT = 0;

 PJDIR = 0xFFFF;

 PJOUT = 0;

 

 PM5CTL0 &=~LOCKLPM5;

 

 CSCTL0_H = CSKEY >> 8;                 

 CSCTL1 = DCOFSEL_0;

 CSCTL2 = SELM__DCOCLK + SELESS__DCOCLK + SELA_VLOCLK;

 CSCTL3 = DIVM__1;    

 

 CSCTL0_H = 0;    

 

 while (1);

 

测量结果平均为286uA。

在数据表的18页中、描述了1MHz DCO 时的流耗为210uA。

为什么消耗电流不会像数据表那样降低?

此致、

UchIDA-k

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

    您好、Uchida、

    进行能量跟踪测量时、请确保连接调试器后器件处于自由运行模式。 此外、由于电路板上的其他可消耗功率的组件、有时难以在 Launchpad 上查看数据表指定的电流电平。

    我还将向您介绍我们的应用报告 《MSP430Tm高级功耗优化:ULP AdvisorTm软件和 EnergyTraceTm技术 》,了解有关实现低功耗和使用能量跟踪的更多信息。 如果您有任何疑问、请告诉我。

    此致、

    Caleb Overbay

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

    您好 Caleb Overbay、

     

    感谢你的答复。

     

    使用相同的代码、在自由运行的 Launchpad 上使用数字万用表进行测量时、电流消耗会降低。

    我了解到、使用需要 CCS 调试器连接的 EnergyTrace 时、电流消耗似乎大于正常值。

     

    我可以提出另外两个问题吗?

     

    1. 当使用 Launchpad 在自由运行状态下以3V 电压测量以下示例代码时、电流消耗为252.1 uA、可以看到与数据表不同的值。

      是否有任何可能的原因?

     

      我使用一个示例代码、其中缓存命中率为 SLAA526中描述的0%。

      但是、如数据表中的表5.4所述、当1MHz 的高速缓存命中率为0%时、电流消耗值为370uA、大于 测量值。

     

    #include

    void activeModeTest (void);

    int main (空)

    WDTCTL = WDTPW | WDTHOLD;//停止 WDT

    P1DIR = 0;
    P1OUT = 0;
    P1REN = 0xFF;

    P2DIR = 0;
    P2OUT = 0;
    P2REN = 0xFF;

    P3DIR = 0;
    P3OUT = 0;
    P3REN = 0xFF;

    P4DIR = 0;
    P4OUT = 0;
    P4REN = 0xFF;

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

    //禁用 GPIO 上电默认高阻抗模式以激活
    //先前配置的端口设置
    PM5CTL0 &=~LOCKLPM5;

    CSCTL0_H = CSKEY >> 8;//解锁 CS 寄存器
    CSCTL1 = DCOFSEL_0;//将 DCO 设置为1MHz
    CSCTL2 = SELA_LFXTCLK | SELESS__DCOCLK | SELM_DCOCLK;
    CSCTL3 = DIVA__1 | DIVM_1 | DIVM__1;//将所有分频器设置为1
    CSCTL4 &=~LFXTOFF;//启用 LFXT1
    操作

    CSCTL5 &=~LFXTOFFG;//清除 XT1故障标志
    SFRIFG1 &=~OFIFG;
    } while (SFRIFG1&OFIFG);//测试振荡器故障标志
    CSCTL0_H = 0;//锁定 CS 寄存器

    //无限循环。 函数从不返回...
    activeModeTest();

    //此函数执行活动模式电源测试。
    void activeModeTest (void)(空)

    _asm ("主函数:\n"
    " NOP \n"
    " NOP \n"
    " NOP \n"
    "label_A JMP Label_B;缓存缺失\n"
    " NOP \n"
    " NOP \n"
    " NOP \n"
    " NOP \n"
    " NOP \n"
    " NOP \n"
    "label_B JMP Label_C;缓存缺失\n"
    " NOP \n"
    " NOP \n"
    " NOP \n"
    " NOP \n"
    " NOP \n"
    " NOP \n"
    "label_C JMP Label_A;缓存缺失\n"
    " NOP \n"
    " NOP \n"
    " NOP");

     

         如下图所示、通过将来自 J 12跳线的3V 外部电源连接到 J 9跳线并将数字万用表连接到 J 9跳线来进行测量。

     

                 

    2.数据表在表5.4中、IAM、FRAM_UNI (统一存储器)(3)的条件占高速缓存命中率的百分比是多少? 或者、如果器件从 FRAM 运行所有程序、我是否可以使用缓存?

     

    此致、

    UchIDA-k

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

    我测试了您发布的代码、但我看不到~405uA 的电流消耗、这与数据表指定的0%高速缓存命中率一致。 我不知道为什么您看到这么低的数字、但数据表中列出的数字是典型的电流消耗。 该数字可能低于第5.4节中列出的370uA。

    此外、IAM、FRAM_UNI (统一存储器)(3)的高速缓存命中率适用于典型程序执行、介于50%至75%之间。 统一存储器意味着 FRAM 用于存储数据和代码、而不是存储在 SRAM 中的数据。

    此致、
    Caleb Overbay