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.

MCU occasionally gets stuck, reset & generates errors from the radio module

Hello,

My program tends to gets stuck once and a while:

Using a debugger I've found out that it happens when trying to read the IOCFG2 state:

RF1AINSTR1B = (IOCFG2 | RF_SNGLREGRD);

while (!(RF1AIFCTL1 & RFDOUTIFG));  <--- Infinite loop !!!


I've tried to use a timeout counter and then continue, but then I get the same phenomena when I try to write the IOCFG2:

RF1AINSTRB = (IOCFG2 | RF_SNGLREGWR); // Send address + Instruction

RF1ADINB = value; // Write data in

__no_operation();

while( !(RF1AIFCTL1 & RFSTATIFG)) //<--- Infinite loop !!!

When I try again to use a timeout counter and to continue, the program reaches the start label (I think that it indicates a BOR...?)

The RF1AIFERR sometimes gets 0x4 or 0x5 or 0x2 (OPERR, OUTERR)

At the last time I've noticed that the SYSRSTIV is 0x2 (BOR)

Do you have an idea why it happens, and how to debug / solve this issue?

Thanks,

Lior.

  • Lior Baz said:
    The RF1AIFERR sometimes gets 0x4 or 0x5 or 0x2 (OPERR, OUTERR)

    0x5 in the RF1AIFERR means that the OUTERR and LVERR (Low core voltage error flag) bits are set. What Core Voltage Level has been set in PMMCOREVx?

    Lior Baz said:
    At the last time I've noticed that the SYSRSTIV is 0x2 (BOR)

    What is your supply voltage, and is it stable?

    If the radio core is reporting a Low core voltage error and Brown Out Resets are occuring maybe there is problem with the supply voltage.

  • Thanks for picking up this issue.

    The Vcore is set to level 2 (the LVERR is usually not set) which is 1.8-1.84V according to the datasheet.

    The voltage supply does goes up and down as part of the system engineering. However, it is always stays in the permitted range, meaning 2.3V to 3.3V. Anyway, when i check it with a scope, or a debugger - it looks fine.

    Nevertheless, even IF there was a momentarily drop in the supply voltage, how can I ignore such errors in a correct way, hence keep the system running? Currently, the system just resets, or gets stuck in loops.  

    Thanks,

    Lior.

**Attention** This is a public forum