How to achieve 10 MHz sampling rate with onboard ADC

DeftBow

New member
Hello all, I am a first time user of the Teensy 4.1 board. I purchased it for a project I am tinkering with to hopefully measure 1-2 MHz signals with the built in ADC. So far, I have been trying my best to research how to increase the sampling rate to roughly 10 MS/s (5-10x Nyquist) on one of the ADC's on the 4.1. I've been reading on DMA and feel so overwhelmed to be honest. What I can gather is direct memory access bypasses the processor when data comes in, acting as a buffer. This then allows the ADC to chew through chunks of data as it is freed up (please correct me if I am wrong). However, the code has been very confusing to me. Most of the forum posts I see use a lot of jargon that I don't comprehend.

I would really appreciate it if anyone has had experience sampling at 10 MS/s and can provide some guidance. I am attaching my working program file that I had ChatGPT develop from the ADC_DMA.h file from the ADC library (it wasn't super helpful, of course).
 

Attachments

  • ADC_discovery.ino
    3.4 KB · Views: 7
Sadly, the internal ADC can't sample that fast. No amount of DMA or software trickery can compensate for the fact the analog input circuitry just isn't anywhere near cable of 10 Msamples/sec.
 
Back
Top