AD7606p16_t4 library v0.0.1

jlaustill

Member
AD7606p16_t4: Ultra-High-Speed 16-bit Parallel ADC Library


🚀 200K+ conversions/sec while main loop still runs 11M+ cycles/sec


I built this library for 8-channel, 16-bit ADC applications using the AD7606. What makes it special: direct GPIO port manipulation for blazing performance that barely touches your CPU!


GitHub: https://github.com/jlaustill/AD7606p16_t4


Performance vs Traditional Approaches:


  • digitalRead() approach: Lockups at low rates, 100% CPU usage
  • This library: 200K conversions/sec, <5% CPU usage
  • Result: 95%+ CPU free for your main application

Technical Details:


  • Teensy 4.1: Single GPIO port read (1 operation) for all 16 bits
  • MicroMod: 3 GPIO port reads + bit extraction
  • Auto-detects board type for optimal performance
  • Interrupt-driven with minimal ISR overhead
  • Uses optimized GPIO6/7/8 port registers instead of individual pin reads

Important: Fixed Pin Assignment


Due to GPIO port optimization, data pins are hardcoded for maximum speed:


  • Teensy 4.1: Uses GPIO6[16:31] for single-operation reads
  • MicroMod: Uses GPIO8[12:17] + GPIO7[4:12,16] for 3-operation reads
  • Control pins (RD, CS, CONVST, BUSY, RESET) are configurable
  • Designed to avoid conflicts with CAN, I2C, and SPI

Perfect for:


  • High-speed data acquisition
  • Power monitoring systems
  • Multi-channel instrumentation
  • Real-time control systems

Pin Mapping Resource:


I mapped all the GPIO ports for both platforms here: https://docs.google.com/spreadsheets/d/1BC1eYR55txT5fmuboq2l4_cap3tO48nNU4KF2Cu07pk/edit?usp=sharing


That exercise was quite annoying, as the ATP carrier board documentation is a hot mess, so this spreadsheet will be my go-to resource from now on. I may even turn it into a web page or PDF in the future.


If anyone else needs high-performance parallel ADC on Teensy, this should save you a lot of development time!
 
Is there an off-the-shelf dev board for the ADC that you recommend for use with T4.1? I don’t have a need for 200ksps, but it would be fun to play with.
 
Back
Top