General Purpose Parallel Interface for high speed external ADC Reading

Chaerne
Posts: 1
Joined: Tue Feb 10, 2026 7:57 pm

General Purpose Parallel Interface for high speed external ADC Reading

Postby Chaerne » Tue Feb 10, 2026 8:09 pm

Hello Everyone

I'm planning on Building an Oscilloscope using an AD9201 (https://www.mouser.ch/datasheet/3/1014/1/AD9201.pdf) 10bit dual channel ADC and an esp32s3. From some over the thumb calculations i would be able to go to around 500ksps-1Msps per channel if i were to simply bitbang the clock and read directly from the GPIO registers. Now the S3 has no general purpose parallel interface, now my question would be can i repurpose the camera interface to read the ADC? Inorder to read the ADC you need to generate a clock, and on the rising edge data can be read from the adc, there is also a select pin which allows for switching between the channels of the adc, so that would need to be done aswell.

Thank you in advance for any insights or ideas on this topic!

vvb333007
Posts: 71
Joined: Wed Jul 31, 2024 5:53 am
Location: Thailand
Contact:

Re: General Purpose Parallel Interface for high speed external ADC Reading

Postby vvb333007 » Wed Feb 18, 2026 4:47 pm

Yes you can. You would have to simulate camera signals tho.

What I would try is to use core 0 (or core 1) to run 1 high priority task which reads data in a tight loop, high priority, no CPU yield (100% cpu use). Task watchdog is off. This core will read GPIO values really fast. Or you can use S3 PIE to read 8 GPIOs at once in 1 assembler instruction, and 2 more GPIOs via register. Another core is used for the rest of your firmware.

This can give you far more than 1 Ms - it is just 3-4 assembler instructions together
Thanks!
Slava.

User avatar
ok-home
Posts: 156
Joined: Sun May 02, 2021 7:23 pm
Location: Russia Novosibirsk
Contact:

Re: General Purpose Parallel Interface for high speed external ADC Reading

Postby ok-home » Thu Feb 19, 2026 3:04 am

Now the S3 has no general purpose parallel interface, now my question would be can i repurpose the camera interface to read the ADC?
You can use this as a basic example:
viewtopic.php?t=33876
https://github.com/ok-home/logic_analyzer
This example allows you to capture 8/16-bit samples from the parallel interface of the lcd_cam. There's an additional clk pin for s3.

For experiments, this is practically sufficient with almost no code changes.

Who is online

Users browsing this forum: Baidu [Spider], coccocbot, PetalBot, trendictionbot and 11 guests