Tool/software:
I'm working with a customer on this device that is experiencing a strange issue that occurs at about 12 hours of continuous operation following a reset. Essentially, the device does not go to sleep, and it appears there is a standby inhibit in place. The issue if very reproducible, but they are struggling to identify the root cause. The customer agrees that this is likely an application specific issue, and not likely an issue with TI platform software. We wanted to look at the various time based rollover sources to see if that might give us some clues, if there was any correlation.
I don't think there is a correlation, but I hoping for someone to check my work. They are using FreeRTOS + OpenThread + BLE. SDK version is 7.10.02.23. Their FreeRTOS tick rate is 10kHz (100us).
Radio Timer
- 32-bit, fixed 4-MHz rate
- ((2^32) / (4 * 1000 * 1000)) / 60 = ~17.9 minutes rollover period
FreeRTOS
- 32-bit, fixed 10kHz rate
- ((2^32) / (10 * 1000)) / (60 * 60 * 24) = ~4.97 days rollover period
RTC (used as the wake-up timer in standby)
This piece I'm a little bit less clear on. The documentation says it is a "70-bit free running counter", but I only see a 32-bit "sub-second" and 32-bit "second" component. That adds up to only 64-bits. Let's assume that it rolls over after 2^32 seconds.
- (2^32) / (60 * 60 * 24 * 365) = ~136 years rollover period
However, I think we need to look at the rollover of the channel events. I think the standy wake-up timer uses the RTC channel 0 event (in tickless idle mode). This appears to use 16-bits for seconds and 16 bits for sub-seconds. This would approximate the rollover time to:
- (2^16) / (60 * 60) = ~18.2 hours rollover period
In summary, I'm asking:
- Are their any potential timer rollovers I should be aware of?
- Is my math correct on the three rollover sources I have already identified?
- I'm particularly interested in if my assessment of the RTC is correct as this is the most difficult to follow in the source and TRM.
Any other ideas for root cause investigation are of course welcome.
Thanks,
Stuart