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.

TMS320F28377D: method of wakeup and data save in Halt mode (LPM)

Part Number: TMS320F28377D
Other Parts Discussed in Thread: C2000WARE

Hello,

I am testing LPM mode.

I didn't succeed in STANDBY mode, and I succeeded in entering and exiting HALT mode.

I have some questions about result of my test.

1.

Currently, the port I set as wakeup pin is GPIO18.

When I tested it, the result was:

1) GPIO18 LOW -> HALT() executed -> GPIO18 HIGH -> wake up

2) GPIO18 HIGH -> HALT() executed -> GPIO18 LOW -> GPIO18 HIGH -> not wake up

3) GPIO18 HIGH -> HALT() executed -> GPIO18 LOW -> HALT() executed again -> GPIO18 HIGH -> Wake up

That means, the device wakes up when halt is executed only when GPIO18 is LOW. Is it right?

Is there any way to enter and wakeup halt mode when wakeup Pin(GPIO18) HIGH state?

2.

When the device was entering halt and waking up, the data does not saved.

I turned the LED ON right before entering the halt mode, but the LED does not turn on when the device wake up.

if (halt entry condition)
{
   Sts._Led.Led3 = 0;
   HALT();
}

If I write the code like this source, shouldn't it be executed?

Or should I put it in "the interrupt void local_WAKE_ISR(void)" function of example code?

I want to know the method the changed data is not initialized after wake up.


Thank you for your help.

  • Is there any way to enter and wakeup halt mode when wakeup Pin(GPIO18) HIGH state?

    As stated in the C2000ware example, the wakeup pin must be in high state during HALT entry and a high-low-high transition is needed to bring the device out of HALT. The wake-up pulse must be generated by the I/O pin of another device (or a pulse generator). you cannot use a manual switch.

    When the device was entering halt and waking up, the data does not saved.

    The GPIO pin state is not disturbed during entry/exit into/out of any low-power mode. The state of the GPIO pin would be preserved.

  • The datasheet says:

    To wake up from HALT mode:

    1. Drive the selected GPIO low for a minimum 5us. This will activate the CPU1.WAKEINT and CPU2.WAKEINT PIE interrupts.

    2. Drive the wake-up GPIO high again to initiate the powering up of the SYSPLL and AUXPLL

    3. Wait 16us plus 1024 OSCLK cycles to allow the PLLs to lock and the WAKEINT ISR to be latched.

    4. Execute the WAKEINT ISR.

        The device is now out of HALT mode and can resume normal execution.

    I understood sentence 3 as holding the wakeup pin only high for "16us plus 1024 OSCLK cycles" time.

    But, according to your comment, does it mean that I should occur pulse for "16us plus 1024 OSCLK cycles" time?

  • The datasheet says:

    It is not the datasheet you are quoting from. It is the TRM. Datasheet is a different document: www.ti.com/lit/sprs880.

    For HALT mode wakeup timing requirements and characteristics, please refer to pages 83 & 84 of the datasheet.