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.

MSP430FR5869: Receive interrupt from LPM3

Part Number: MSP430FR5869
Other Parts Discussed in Thread: MSP-TS430RGZ48C,

Hello,

I put MSP430FR5869 on MSP-TS430RGZ48C.
MSP430 has uart communication with PC.

MSP430 receives tera term data.
After that, the data is sent back to the tera term in the interrupt processing.
LPM0 can handle receive interrupts, but no interrupts will occur when waiting in LPM3.
However, from this state, if I keep pressing the keyboard, a reception interrupt may occur.

This occurs after power-up or immediately after a reset. Then, once the interrupt processing is completed, the interrupt processing is performed even after one hour.
Again, this occurs in LPM3 and no problem occurs in LPM0.

What can be considered?

Best regards,
DDdoor

  • Hello DDdoor,

    I suspect what is happening is when operating in LPM3 the SMCLK is not operating and any byte that is sent by the PC is not "clocked" into the UART receive register.

    In LPM3 when the UART RX pin changes state, the UART is supposed to generate an SMCLKREQEN, which starts the clocks running if CSCTL4.SMCLKOFF=1.

    In debug mode confirm this bit is set before entering LPM3 or explicitly set it.

    Here is a table in the user's guide, section 3.2.7.

  • Hi DDdoor,

    I wanted to make a follow-up comment.  You can disregard what I posted earlier.  The UART will request the clock source when the START bit is detected.  I don't know what baud rate you are running but I will assume it is something fast, like maybe 115200 and therefore using the SMCLK.  If this is the case, I believe the issue is when a clock request from the UART occurs it can several microseconds for the DCO/FLL to come up provide a stable SMCLK to drive the UARTs baudrate generator.  I'ts during this time that one or more bits from the first byte sent by the computer are getting missed or are causing the UCRXERR or other error flag bit to be set, which does not generate the receive interrupt.

    I would try running at 9600 baud to see if you have the same behavior.

  • Hello Dennis Lehman,

    Thank you for your reply.
    First, I didn't mention the baud rate, but the baud rate is 9600. SMCLK is 4MHz. The settings follow the settings recommended in the user guide.

    I understood your explanation as follows. Losing one or more of the first byte is likely due to SMCLK being unstable on return from LPM3. I'm not sure of the following: That is, the situation where returning from LPM3 does not work is concentrated at the time of reset or after power-up.

    What can this be considered?

    Best regards,
    DDdoor

  • Hi DDdoor,

    Can you reduce your code to the smallest size, but still demonstrates the issue, and post here?

  • Hello Dennis Lehman,

    Thank you for your reply.

    I want to send it in a private message.

    Best regards,
    DDdoor

  • Hello DDdoor,

    I sent you a friend request.  You should receive a message.  Please respond when you receive it.

  • Hi DDdoor,

    Checking on your status.