Attempting 1 MHz photodiode with Teensy 4

Status
Not open for further replies.

GDouglas

Active member
Hello,

I have noticed that I can get lower-noise 300 KHz ADC on the Teensy 4.0 (photodiode with an external op-amp) on the Teensy 4.0 than I can 150 KHz ADC on the Teensy 3.2.

This leads me to suggest there is sufficient noise margin (provided an external op-amp is used) to perhaps push this to 1 MHz for a 1 MSPS photodiode oscillscope with a Teensy 4.

I am using adcReadContinuous() but it seems to throttle to approximately 330 KHz (during 600 MHz CPU) regardless of ADC resolution I set.

Is there a way to modify the ADC processing to a somewhat lower precision (even 4-bit, 6-bit), so that it can run at approximately 1 MHz to essentially have a 1 MSPS oscilloscope?
 
I answered my own question here:

Related post:
https://forum.pjrc.com/threads/57683-Analog-read-on-Teensy-4-0-slower-(compared-to-Teensy-3-6)

The ADC clock is 20MHz, with this:

Code:
#define MAX_ADC_CLOCK 20000000
// 8 bit conversion (17 clocks) plus 8 clocks for input settling
// 10 bit conversion (17 clocks) plus 20 clocks for input settling
// 12 bit conversion (25 clocks) plus 24 clocks for input settling

So that's why it throttles to about 300 KHz.

I wonder if I could eke out 1 MSPS performance at 4bit or 6bit with some ADC library modifications. It would require optimizing it to becoming only 20 clocks per conversion.

Or, theoretically if I can overclock to 25 MHz ADC, that would permit 8bit conversion at 1 MSPS.

Could it be done?
 
Status
Not open for further replies.
Back
Top