In a world where an analogue to digital converter is all too often an integrated peripheral buried inside a microcontroller, it’s easy to forget how simple these devices can be when built from first principles. An entry in our Op-Amp Challenge from [NNNI] demonstrates this perfectly, it’s a high resolution multi-slope ADC for instrumentation purposes, constructed using a mixture of op-amps, logic chips, and a Raspberry Pi Pico. Best of all, it’s easy to understand, so there’s little of that analogue mystique to worry about.
This type of ADC measures an analogue value by counting how long it takes to charge a capacitor to that voltage. A simple version that measures charge time has a few drawbacks, so this project goes from single slope to multi slope by measuring both charge and discharge times compared to the voltage. Pay attention to component matching and reference stability, and such a design can offer a very high resolution measurement.
The value in this project lies not only in the design itself, but also in the extremely comprehensive description of its operation, which should teach most readers a thing or two. That curvy-line PCB is rather nice, too. We used single slope ADCs to read analogue joysticks back in the day, but we certainly learned something here. Want to see another? This isn’t the first dual slope ADC we’ve seen.
Very cool project. a lot of good analog design. I will say though I really like the modern day integration of ADC’s. This is a good project to increase your analog design skills. For me though I like the one chip solutions. Check out the AD7768.
+1 for using the falstad circuit simulator
also gorgeous round traces
Yes. It really looks beautiful. All those trace look very fine.
+3 for that
When in chem grad school a few centuries ago we had to learn about the different types of ADCs; speed, resolution, single-ended vs. differential inputs, limitations, etc. Had to, because a 12-bit ADC board for the Apple IIe ran upwards of $1200 (1986 dollars). Unnecessary performance was far too expensive. I think the Apple board was made by ADALAB, and converted analog signals at the blinding rate of…20 Hz.
Yes, slow. But back then, non-computer-based acquisition required reading a meter a dozen times and averaging the results. Occasionally you had to do the ol’ cut-out-the-curve-and-weigh-it method that used a lot of stripchart recorder paper. So a system that would collect and average five seconds of data—100 points—all by itself was an absolute marvel. Though we did have to write simple programs in BASIC and print the results dead trees.
Today a turnkey system including software that will acquire four differential channels of 12-bit data, literally a thousand times faster than that ADALAB system, is just $80 (in 2023 dollars) from DATAQ. And if you’re willing to do a bit of wiring and programming, a $10 bill will get you a system with similar capability from Adafruit.
I love (most) advances in technology…
Around the same time as you describe I was logging an analogue voltage from an X-ray analyser.
I found an ADC with (8 bit) serial output, and put it on a board with some 74-series logic to add the start and stop bits that a PC serial port requires (I think that I was a lot cleverer then)
I learned a very useul lesson there, because the data was gibberish. Moving a potentiometer to simulate an input led to wild swings in the output. Eventually (after some days of head-scratching) I noticed the the less I moved the pot the bigger the change in the number and realised that the chip was putting out the data LSb first and the serial port expected the reverse.
Quite a few times since i have seen the same sort of wild randomness, and endianism is now much higher on the list of considerations.
This is a cool project that I wouldn’t mind taking a spin at.
I need to see if it has a UI though, or if I could feed it all into something like sigrok.
A small usb precision datalogger would be a good addition to the bench.
It make sense if you can obtain higher speed or higher resolution. But you cant, so its loose of time and useless.