TMS320F28377D: TMS320F28377D: How to reduce current consumption in Low Power Mode

Part Number: TMS320F28377D

Tool/software:

Hello,

I am currently working on implementing Low Power Mode with the TMS320F28377D.

On my board, when 5 V is supplied, the system normally consumes about 350 mA. After entering HIB mode, the current drops to approximately 47 mA.
According to the datasheet, however, the maximum current consumption in HIB mode is specified as about 7.125 mA.

My current source code is shown below.

  • Are there additional steps (e.g., powering down ADCs or disabling other peripherals) that can help further reduce the current?

  • In general, what components or configurations can be adjusted to minimize power consumption when entering Low Power Mode?

Also, the datasheet and TRM only provide high-level information.
Is there any application note or document that gives a more detailed explanation of the Low Power Modes for the F28377D?

Thank you in advance for your support.

void HIB(void)
{
#if defined(CPU2)
    STANDBY();
#elif defined(CPU1)
    EALLOW;
    CpuSysRegs.LPMCR.bit.LPM = LPM_HIB;
    EDIS;

    while((DevCfgRegs.LPMSTAT.bit.CPU2LPMSTAT == 0x0) &&
          (DevCfgRegs.RSTSTAT.bit.CPU2RES == 1));

    DisablePeripheralClocks();
    EALLOW;
    ClkCfgRegs.SYSPLLCTL1.bit.PLLCLKEN = 0;
    ClkCfgRegs.SYSPLLCTL1.bit.PLLEN = 0;
    EDIS;
    asm(" IDLE");
#endif
}

static void Sys2_Sleep(void)
{
    // Enter LPM (Low Power Mode)
    SetCANStatus(A_SLEEP);
    SetCANStatus(B_SLEEP);

    GpioDataRegs.GPACLEAR.bit.GPIO10  = 1U;  // AUX OFF
    GpioDataRegs.GPBCLEAR.bit.GPIO50 = 1U;   // LED OFF
    GpioDataRegs.GPBCLEAR.bit.GPIO51 = 1U;   // LED OFF
    GpioDataRegs.GPBCLEAR.bit.GPIO52 = 1U;   // LED OFF

    SeizeFlashPump();
    FlashOff();
    ReleaseFlashPump();

    EALLOW;
    CpuSysRegs.LPMCR.bit.M0M1MODE = 1U;
    EDIS;

    HIB();
}

  • Hello,

    It appears that you have already implemented the basic steps to enter HIB (Hibernation) mode on the TMS320F28377D. However, to further reduce the current consumption, you can consider the following additional steps:

    1. Power down ADCs: As you mentioned, powering down the ADCs can help reduce the current consumption. You could disable the ADC clock and set the ADC to a low-power state
    2. Disable other peripherals: Disable any other peripherals that are not necessary for your application, such as timers, counters, and serial communication modules. 
    3. Reduce clock frequencies: Reduce the clock frequencies of the peripherals and the CPU to minimize power consumption. You can use the ClkCfgRegs to adjust the clock frequencies.
    4. Disable unused GPIO pins: Disable any unused GPIO pins to prevent them from drawing current. You can use the GpioDataRegs to disable the GPIO pins.
    5. Use power-down modes for other modules: Check the datasheet and TRM for other modules that have power-down modes, such as the CAN module, and use them to reduce power consumption.