Fast ADC reading

dirk degrave
Posts: 1
Joined: Wed Oct 02, 2024 8:02 am

Fast ADC reading

Postby dirk degrave » Wed Oct 02, 2024 8:32 am

In a new project with the ESP32-C3 we like to readout a photo array sensor. So we need some digital hardware signals synchronized with the ADC reading. These hardware signals are mostly created by a PWM channel on 33KHz. Due this synchronization issues we can only use the 'one Shot' mode, 'continuous' mode isn't possible.
The ADC read value routine call will start the ADC channel conversion, and wait until this conversion is finished. So, every ADC reading call will takes 20us CPU execution time. This means the controller CPU is mostly occupied with waiting on finishing of the ADC conversion @33KHz sample rate.
Is it possible to split the ADC reading routine in two (or three) parts ?
A ‘start ADC conversion’ routine call, and a ‘reading ADC out’ call (one with and one without the ADC conversion time finish check). This can free the CPU of this waiting task, spent more time on the background tasks (already system interrupt hooks at the PWM signal changes).

I’ve found some source code for the ‘ESP32’, but it seems not compatible for the ‘ESP32-C3’. Any advice ?
(at the moment not so much experience with the ESP32-C3 registers)

Please let me know if you have any idea,

Dirk

Who is online

Users browsing this forum: Google [Bot] and 35 guests