AnsweredAssumed Answered

ADC ISR stops getting called after a while, but the ADC continues sampling

Question asked by knapht.fnatt on Dec 3, 2014
I have ADC1 and ADC2 sampling by using the hardware signal (external interrupt) from a timer. They use the same timer, but two different channels.

It works for 10 minutes+, but then the ADC ISR is no longer called. The timer ISR is still called so as far as I can understand the ADC should still get the hardware signal. And it does! I can see while debugging that the ADC data register is still updating with the correct values when I adjust the voltage on the ADC input channel. This means that it works as it should, but the ADC ISR where I get the ADC converted value is not triggered.

The ADC error ISR is not called either, I have a breakpoint in the ISR and I use trace to print out debug message if it enters.

When I read the ADC_SR after it has stopped the JEOC bit is set, so the ADC ISR should be triggered, but it is not. (I use injected, but no regular).

Any idea how I can debug this further? I use the HAL library.

Summary:
ADC ISR or ADC error ISR is not triggered, but the ADC sampled values are still being updated correctly.

Outcomes