Page 1 of 1

ESP32-C3 timer peripheral problems? (no, user error)

Posted: Tue Dec 07, 2021 10:46 pm
by jkingdon
Update: so this is definitely a user code problem (i.e. me), not a hardware or esp-idf problem. I added some debug pin wiggling to the timer library and I can see that it's still generating interrupts when my app goes down. I chased back up to my isr callback function and it's still getting to there, so the problem is with me putting a message on the queue and receiving it into the task at the other end. More debugging tomorrow.

Original:
Has anyone run into problems with the timer peripheral on C3? I'm trying to track down a problem with my app which is driven from a timer and (unlikely as it sounds) it looks like the timer just stops generating interrupts. Once it stops I haven't been able to find a way in software
to restart it, even a full timer_deinit/ timer_init sequence isn't enough.

I'll keep digging into the problem, but I thought it was worth seeing if anyone else has already hit this (google didn't turn up anything).

Re: ESP32-C3 timer peripheral problems? (no, user error)

Posted: Wed Dec 08, 2021 11:44 pm
by jkingdon
To close this out, the root cause was unsafe access to spi_device_polling_transmit() from multiple tasks, eventually causing that function to hang and block the task driven from the timer interrupts. I miss-interpreted the lack of activity from that task as it not getting triggered when in fact it had just disappeared into an infinite loop.

James