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: Current consumption does not decrease as much as data sheet

Part Number: MSP430FR5969
Other Parts Discussed in Thread: ENERGYTRACE,

Hello.

 

I have a questions.

I want to know the reason why my measurement current value does not achieve the datasheet described.

 

I measured current consumption on MSP430FR5969 Launchpad using EnergyTrace.

Register settings are as follows:

 

int main(void)

{

  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 + SELS__DCOCLK + SELA__VLOCLK;

  CSCTL3 = DIVM__1;   

 

  CSCTL0_H = 0;   

 

  while (1);

}

 

Measurement result was 286 uA on average.

At the page of 18 in the datasheet, it is described that the current consumption is 210uA at 1MHz DCO.

What is the reason why consumption current does not decrease as much as the data sheet?

Regards,

uchida-k

  • Hi Uchida,

    When taking energy trace measurements, ensure the device is in free running mode when the debugger is attached. Also, it is sometimes difficult to see the datasheet specified current levels on a launchpad because of the other components on the board that can be drawing power.

    I'll also point you to our application report MSP430™ Advanced Power Optimizations: ULP Advisor™ Software and EnergyTrace™ Technology for more information on achieving low power and using energy trace. Let me know if you have any further questions.

    Best regards,

    Caleb Overbay

  • Hi Caleb Overbay,

     

    Thank you for your reply.

     

    Using the same code, when measuring with a digital multimeter on a free run Launchpad, the current consumption has decreased.

    I understood that when using EnergyTrace which requires CCS debugger connection, current consumption appears to be larger than usual.

     

    Can I ask additional two questions?

     

    1. When the following sample code is measured at 3 V in the free run state using Launchpad, the current consumption is 252.1 uA, and a value different from the data sheet is visible.

       Are there any possible causes?

     

       I use a sample code where the cache hit ratio is 0% described in SLAA526.

       However, the current consumption value when the cache hit ratio at 1MHz is 0% as described table 5.4 in the data sheet is 370 uA, which is larger than the  measured value.

     

    #include <msp430.h>

    void activeModeTest(void);

    int main(void)
    {
    WDTCTL = WDTPW | WDTHOLD; // Stop 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; // For XT1
    PJOUT = 0;

    // Disable the GPIO power-on default high-impedance mode to activate
    // previously configured port settings
    PM5CTL0 &= ~LOCKLPM5;

    CSCTL0_H = CSKEY >> 8; // Unlock CS registers
    CSCTL1 = DCOFSEL_0; // Set DCO to 1MHz
    CSCTL2 = SELA__LFXTCLK | SELS__DCOCLK | SELM__DCOCLK;
    CSCTL3 = DIVA__1 | DIVS__1 | DIVM__1; // Set all dividers to 1
    CSCTL4 &= ~LFXTOFF; // Enable LFXT1
    do
    {
    CSCTL5 &= ~LFXTOFFG; // Clear XT1 fault flag
    SFRIFG1 &= ~OFIFG;
    }while (SFRIFG1&OFIFG); // Test oscillator fault flag
    CSCTL0_H = 0; // Lock CS registers

    // Endless loop. Function never returns...
    activeModeTest();
    }

    // This function executes the active mode power test.
    void activeModeTest(void)
    {
    __asm("Main: \n"
    " NOP \n"
    " NOP \n"
    " NOP \n"
    "Label_A JMP Label_B ; cache miss \n"
    " NOP \n"
    " NOP \n"
    " NOP \n"
    " NOP \n"
    " NOP \n"
    " NOP \n"
    "Label_B JMP Label_C ; cache miss \n"
    " NOP \n"
    " NOP \n"
    " NOP \n"
    " NOP \n"
    " NOP \n"
    " NOP \n"
    "Label_C JMP Label_A ; cache miss \n"
    " NOP \n"
    " NOP \n"
    " NOP ");
    }

     

             As shown in the figure below, measurements were made by connecting an external power source of 3 V from the J 12 jumper and connecting a digital multimeter to the J 9 jumper.

     

                 

    2.Data sheet What percentage of cache hit ratio is the condition of IAM, FRAM_UNI (Unified memory) (3) in Table 5.4? Or if the device runs all the programs from FRAM, can I not use the cache?

     

    Regards,

    Uchida-k

  • Hi Uchida-k,

    I tested out the code you posted and I'm not seeing ~405uA current draw which aligns with what the datasheet has specified for 0% cache hit ratio. I'm not sure why you're seeing such low numbers but the number listed in the datasheet is typical current consumption. It's possible that the number can be lower than the 370uA listed in Section 5.4.

    Also, The cache hit ratio for IAM, FRAM_UNI (Unified memory) (3) is for a typical program execution which is between 50%-75%. Unified memory means that the FRAM is being used to store both data and code instead of data being stored in SRAM.

    Best regards,
    Caleb Overbay

**Attention** This is a public forum