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.

MSP430 hangs

Other Parts Discussed in Thread: MSP430FR5986

Hello,

I'm using the MSP430FR5986 and I toglle a led in the main cycle. The oscillator is the internal DCO.

After some time (more than 10 min) the led stops blinking, meaning the micro has hanged.

I don't have any in the code that could cause that.

When this happens I can't program the micro (using the MSP-FET430).

To reprogram it I have to turn off the power and turn on again.

What could cause that?

  • Hi Diogo,

    Are you using a custom board, or a TI Target Board? How are you powering this board? Also, if you code is a just a few lines, can you post it so we can see what the code is?

    If you try to reset the device (by pulling the reset line low then releasing it to go back high again), will that unlock the device where it continues running again?

    Have you checked to see if unintentional interrupts are firing? If you don't have an ISR assigned for an interrupt that fires, it could possibly cause the 430 to jump to unexpected locations, which could cause similar issues to what you are seeing. You can detect this by putting trap ISRs in all the interrupts that you are not using. This way, if an unexpected ISR fires, it has somewhere to go.

    Mike
  • Thanks mike.

    I'm using a custom board. The code is a bit longer to post here.

    If I reset it with the reset pin the device dont unblock. The reset pin should not always unlock?

    Right now I only have enabled the RTC ready interrupt and the Extended Scan Interface interrupt.

    I will check if there are another interrupt firing

  • Hi Diogo,

    Can you try running your code on a TI board (a target board, or a LaunchPad)? Also, can you post the portion of your schematic that includes the reset circuitry? If you don't want to post on a public forum, let me know and I can send you my email address. I want to double check that everything is configured correctly in hardware.

    Mike
  • I think I found the cause in device erratasheet:

     

    PMM24 PMM Module

    Function Device may enter lockup state during wake-up from LPM3 and LPM4

    Description The device may enter a lockup state during an interrupt-triggered wake up from LPM3 or

    LPM4. The device will remain in lockup state, unable to respond to the interrupt or

    continue application execution, until a power cycle brings it back to reset state.

    LPM3.5 and LPM4.5 are not affected by this behavior.

    Workaround 1) Use LPM2 instead of LPM3 or LPM4. Refer to the device specific datasheet for details

    on LPM2 wake up time and power consumption.

    OR

    2) If the application only uses RTC or GPIO as a wakeup source, use LPM3.5 or LPM4.5

    instead. Refer to the device specific datasheet for details on LPM3.5/LPM4.5 wake up

    times and power consumption.

    Note: When using LPM3.5/LPM4.5, the Compute Through Power Loss (CTPL) utility

    APIs (part of the FRAM software utilities) can be used to configure device behavior prior

    to LPM entry and on wake-up.

    I need LPM3, so now I dont kown what to do...

  • Diogo,

    If you suspect PMM24 is root cause, can you try LPM2 to verify the lockup doesn't occur? Just want to make sure we really nail it down as PMM24 being root cause.

    Also, using LPM2 long term (until the errata is fixed) should not have a significant current impact in most applications. Is there something in particular in your application that you require LPM3?

    Mike
  • I'm running the micro in LPM2 for more than 2 hours and till now has not blocked.
    This application is powered by a small battery and has to last about 10 years, so any additional consumption is important.

  • Ok, sounds like PMM24 is a likely candidate for root cause.

    I understand that running in LPM2 vs LPM3 for extended lengths of time is not ideal, but LPM2 can still get under 1uA. Or you could determine if your application can use LPM3.5, which could save you even more power.

    Without additional information on what your application is and how you are configuring and using the MSP430, I can't provide a whole lot more information about how to optimize power consumption.

    Mike
  • I can't use LPM3.5 because I need cpu wake up from various sources and maintain the state of the variables in ram.

    I guess I have to stay at LPM2.
    Thanks anyway for your help.

**Attention** This is a public forum