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.

CC1310: RAT overflow seems to cause radio to hang

Part Number: CC1310

I am using a reworked version of rfWakeOnRadioRx to act as a low power receiver for various sensors.

The problem I have is that every 20 minutes or so the radio hangs. I have had to implement a watchdog to reset the board when this happens but, obviously, I would prefer not to have to do this.

Having noticed that this issue was reasonably periodic I started to log RF_cmdPropRxSniff.startTime and have found that as it approaches 0xFFFFFFFF the radio hangs.

The code for updating the startTime is;

            RF_cmdPropRxSniff.startTime += WOR_WAKE_UP_INTERVAL_RAT_TICKS(WOR_WAKEUPS_PER_SECOND);
            /* Schedule RX */
            RF_runCmd(rfHandle, (RF_Op*)&RF_cmdPropRxSniff, RF_PriorityNormal, &cmdWakeCallback, RF_EventRxEntryDone);

            if (RF_cmdPropRxSniff.status == PROP_DONE_OK) { // etc. etc.

...and the start time has been previously set by;

    RF_cmdPropRxSniff.startTime = RF_getCurrentTime();

This is exactly the same as the code for the original example rfWakeOnRadioRx.

This is a NORTOS program and I am using the latest simplelink CC1310 SDK (4.1).

Having left the program running and logging watchdog resets and startTime values and it reliably resets when the start time reaches 0xF4xxxxxx.

Why does this happen? Surely the driver takes care of RAT overflows so if I use a 32-bit variable for the start time (as I do) it should simply follow what the RAT timer is doing and overflow as required.

Any help appreciated.