FAST A>D conversion - Page 1
Forum section: electronics / projects

author: stj
author_rank: Super Contributor
timestamp: April 04, 2019, 11:41:40 am
content: what's the fastest way to do 6bit A-D at TTL levels??can i manage atleast 20M-samples?

author: jonroger
author_rank: Regular Contributor
timestamp: April 04, 2019, 01:38:44 pm
content: A parallel output ADC such as the AD9280?

author: OM222O
author_rank: Frequent Contributor
timestamp: April 04, 2019, 01:53:21 pm
content: can I ask why you want 6 bit ad TTL levels? that's quite course ... about 0.1V which is not really useful for any analog circuit.if you're trying to build a crude logic analyzer, your best bet is voltage compactors, not an ADC. if you desperately want an ADC however, fastest ADCs are the flash topology which is available in the low resolutions that you are asking (i.e: 6 bit).

author: stj
author_rank: Super Contributor
timestamp: April 04, 2019, 03:06:27 pm
content: i want to convert a digital(supposedly) 5v signal into 6bit digital so i can read the logic state in .1v resolution.in short, i want to make a logic probe that does not just indicate "high" or "low" but attempts to judge the signal level to detect failing i.c. outputs.

author: OwO
author_rank: Super Contributor
timestamp: April 04, 2019, 03:14:31 pm
content: AD9200 is only $1 and gets you 10 bits @ 20MSPS.

author: OM222O
author_rank: Frequent Contributor
timestamp: April 04, 2019, 03:24:01 pm
content: Quote from: stj on April 04, 2019, 03:06:27 pmit all really comes down to how much bandwidth you want and how cheap you want the project to be. as I mentioned before, flash ADCs are the fastest but they come in low resolution and are more expensive, but can have a few GSPS bandwidth.a few MSPS can be done with any generic ADC tbh. I strongly recommend you go on mouser / digikey, search for ADCs and then play around with the filters. you can select by topology, cost, sample rate, resolution, etc to find a good balance. one thing I suggest is to stick with I2C or SPI because if you can't find an existing library, other interfaces are generally more painful to work with.

author: stj
author_rank: Super Contributor
timestamp: April 04, 2019, 05:14:44 pm
content: sounds like a good start. thanks.

author: jonroger
author_rank: Regular Contributor
timestamp: April 05, 2019, 04:08:37 am
content: I'd review the math on getting 20Msps across an I2C or SPI bus.

author: stj
author_rank: Super Contributor
timestamp: April 05, 2019, 10:47:20 am
content: i was thinking about a parallel bus for that reason,i²c is out, SPI i dont know, but it would probably need a pretty large microcontroller.

author: OM222O
author_rank: Frequent Contributor
timestamp: April 05, 2019, 12:45:08 pm
content: yeah my bad ... I've never needed that high of a sample rate in my projects so SPI and I2C were fineparallel output would be your best bet in this case.

author: IDEngineer
author_rank: Super Contributor
timestamp: April 05, 2019, 01:46:01 pm
content: You guys beat me to the post about serial vs. parallel interfacing on high data rate A/D's. I've never had to work with really high data rate converters, but this always seemed to me like the biggest challenge. You're generating 10's or 100's of MB or more,continuously, inreal time. That's dedicated discrete hardware at least, or perhaps an FPGA. Then if the data stream is truly continuous you have to dual-port the memory, or multi-bank it, or something. Sounds like a fun challenge but definitely a non-trivial one.

author: ogden
author_rank: Super Contributor
timestamp: April 05, 2019, 01:51:20 pm
content: Quote from: stj on April 04, 2019, 03:06:27 pmLogic analyzer which can read logic state as voltage is... every modern oscilloscope. Just saying.

author: David Hess
author_rank: Super Contributor
timestamp: April 05, 2019, 09:38:31 pm
content: There are lots of cheap TTL compatible parallel output 8 and 10 bit converters which become 6 bits if you ignore 2 or 4 least significant bits.

author: splin
author_rank: Frequent Contributor
timestamp: April 05, 2019, 10:20:40 pm
content: The LPC4370 is a 204MHz triple core ARM Cortex processor with an M4 and two M0 cores with an 80MHz 12 bit ADC - overkill perhaps but they are only $5.5 (10 off). BGA package only unfortunately. Digikey don't even sell 3.5MSPS 12 bit ADCs for that price!If you only want one you can buy an LPC-Link 2 development board for 18 Euros from Embedded Artists. They used to sell a Labtool board which plugs onto an LPC-Link 2 board to make a 2 channel 60MSPS digital scope and/or 11 channel 100MSPS logic analyzer. The software is a bit limited but the firmware and software are available so you could save yourself a lot of work if you went this route.You might want to have a look at this thread which uses the 20MSPS 8 bit ADC1175 for < $2:https://www.eevblog.com/forum/projects/4-channel-adc-10-mhz-8-bit-design/

author: stj
author_rank: Super Contributor
timestamp: April 06, 2019, 12:07:20 am
content: this may be a good time to add that i'm trying to keep it small.i was thinking of just streaming the adc to a latching buffer, then a 5bit binary>decimal convertor and finally an led bargraph, using the 6th bit to change the led colour to indicate 0-2.5 or 2.5-5v

author: NorthGuy
author_rank: Super Contributor
timestamp: April 06, 2019, 01:18:19 am
content: Quote from: stj on April 06, 2019, 12:07:20 amAre you going to update the bargraph at 20 MHz?

author: Someone
author_rank: Super Contributor
timestamp: April 06, 2019, 01:29:46 am
content: Quote from: NorthGuy on April 06, 2019, 01:18:19 amCharlieplexed to keep the pincount low....

author: splin
author_rank: Frequent Contributor
timestamp: April 06, 2019, 02:33:42 am
content: Quote from: stj on April 06, 2019, 12:07:20 amMost of the ADCs seem to be at least 24 pin TSSOPs; the 42MSPS 8 bit ADC08351 is cheap ($1.45 @ 1K) and is available in WQFN-24 but is a 3V part.QuoteYou also need an oscillator and possibly an i/p buffer depending on the source impedance. How about the STM32L412K8? It has 2 ADCs which can run up to 8.88MSPS in 6 bit mode. They can be interleaved to give you 17.76MSPS. It is < $2 which is probably cheaper than the ADC solution as you wouldn't need an oscillator or binary to dec convertor. You would likely need a buffer as the maximum source resistance is 220 ohms at this speed. It is available in a 5mm x 5mm UFQFPN - 32.It is a 3.3V part only but it would give you a lot of flexibility for handling glitch detection - the ADCs have 3 'analog watchdog' comparators which can generate interrupts when user specified thresholds are crossed. You could for example extend the LED on time when a glitch is detected to improve its visibility (a 50ns LED pulse would be very hard to see without overdriving the LED - but you could use a capacitor to do that easily enough I guess)..You might also be able to detect oscillation and indicate its frequency on another bargraph. You'd not have much processing time for each sample as you'd only get 4.5 clocks per sample @ 80MHz clock but you could use the DSP instructions to process 4 x 8 bit samples per instruction. I'm not sure if it can be configured to DMA the ADC data to a GPIO port directly to drive the LEDs - that would remove a lot of software overhead. If not you could use a second DMA to transfer the samples from memory to a GPIO.

author: OwO
author_rank: Super Contributor
timestamp: April 06, 2019, 04:50:03 am
content: Quote from: blueskull on April 06, 2019, 02:49:27 amIt's around $1 on aliexpress and $0.5 on taobao. It probably is a Chinese replacement but I have used over 300pcs from taobao from 3 different sellers and every single one performed to spec over the specified environment and I haven't had any fail after year. I don't care about getting genuine ADI parts, only parts that perform to spec and don't fail. Anyone should be allowed to make a AD9200 and sell it as AD9200 if it adheres to the datasheet specs.

author: stj
author_rank: Super Contributor
timestamp: April 06, 2019, 11:20:30 am
content: to answer some questions,no mutiplexing, just 30 leds wired direct to the binary>decimal convertor.update rate of the leds would be the rate the data under the probe changes state - that's why the latch is between the dac and binary>decimal decoder.now 20MHz is kind of worse case - most signals would be 4MHz or less - i picked 20 because it's kind of the max you would see a 74ALS series being run.i know they can go higher but it's very rare.

author: NorthGuy
author_rank: Super Contributor
timestamp: April 06, 2019, 12:45:30 pm
content: Quote from: stj on April 06, 2019, 11:20:30 amBut if your output is LED, the best you can possibly see is 20 Hz or so.

author: joeqsmith
author_rank: Super Contributor
timestamp: April 06, 2019, 12:58:53 pm
content: Quote from: stj on April 06, 2019, 11:20:30 amSo you want to make something like the following but with a higher BW?

author: stj
author_rank: Super Contributor
timestamp: April 06, 2019, 05:41:02 pm
content: Quote from: NorthGuy on April 06, 2019, 12:45:30 pmi can pause the latch on the buffer to hold the sample - or maybe feed it with a 2-3Hz clock

author: stj
author_rank: Super Contributor
timestamp: April 06, 2019, 05:44:55 pm
content: Quote from: joeqsmith on April 06, 2019, 12:58:53 pmno, that's a 2D display, i'm after a single row of 30led'syour on the right track though, imagine a VU meter with a 20MHz+ frontend.

author: nctnico
author_rank: Super Contributor
timestamp: April 06, 2019, 06:28:32 pm
content: Quote from: joeqsmith on April 06, 2019, 12:58:53 pmThat is neat. I made exactly the same thing... over 30 years ago. Only mine had a 16 wide * 8 height display.

author: nctnico
author_rank: Super Contributor
timestamp: April 06, 2019, 06:33:01 pm
content: Quote from: stj on April 06, 2019, 11:20:30 amI don't think this setup is very useful because your eyes are way slower compared to a 20MHz repetition rate. You really need to rethink this.What if you would combine level and frequency into RGB leds. The number of LEDs on would be a measure for the amplitude and the color a measure for the repetition rate.

author: IDEngineer
author_rank: Super Contributor
timestamp: April 06, 2019, 06:54:26 pm
content: Quote from: stj on April 06, 2019, 05:44:55 pmI'm imagining that... and wondering why, and what you're going to do with it. Others have noted that your eyes don't have the temporal response to track changes in the 10's of MHz. So why do you need such a high A/D sample rate? Are you trying to display min/max voltages?So far I'm missing the relationship between a relatively high bandwidth sample rate and a relatively low bandwidth user interface.

author: stj
author_rank: Super Contributor
timestamp: April 07, 2019, 12:47:54 am
content: the high bandwidth is needed to capture the state before it changes,you dont need to update the leds at that rate because you only need to see the high and low signal levels to evaluate the quality of the signal.so as i said, the led's can be latched at a few Hz.

author: radiolistener
author_rank: Super Contributor
timestamp: April 07, 2019, 01:19:58 am
content: I think you can get some parallel ADC, such as AD9200 which was recommended above and connect it to the cheap Chinese eval board for CY7C68013A based logic analyzer:https://www.aliexpress.com/item/EZ-USB-FX2LP-CY7C68013A-USB-logic-analyzer-I2C-serial-and-SPI-core-board-Source-Code-development/32851287266.htmlit can handle 24 MHz sample rate for 8 lines or 12 MHz for 16 lines. And there is ready to use library to work with it even with no need to write program for CY7C68013A controller (this is a fast version of 8051-based architecture microcontroller with a high speed hardware implemented USB).

author: joeqsmith
author_rank: Super Contributor
timestamp: April 07, 2019, 01:30:39 am
content: So you want to know the voltage level before the signal starts to transition? Normally, my projects are not that clean and I break out a scope to get a feel for the signal integrity.Are you planning to use a fixed threshold to trigger the device and just use some fixed precious time as the criteria?Maybe not the best example of messy signals but here I am playing with an eval board.https://www.eevblog.com/forum/microcontrollers/typical-speed-of-fpgas/msg1282290/#msg1282290

author: stj
author_rank: Super Contributor
timestamp: April 07, 2019, 12:57:14 pm
content: i have scopes,and eval boards etc.i'm looking to make something handheld so i dont have to keep looking down at chips and then looking up to a screen.here is how it would function, it would grab a sample as fast as possible, purely to avoid sampling mutiple states in one shot,then it would display the voltage as a simple led bar.big bar = signal good, small bar = signal bad - probably from a failed chip output or blown internal pullup.

author: IDEngineer
author_rank: Super Contributor
timestamp: April 07, 2019, 02:22:20 pm
content: My inner Bob Pease is whispering that this should be done in analog, not digital. Maybe a pair of opamps, one each to detect and display the low and high voltages. Getting your 20MHz bandwidth is child's play in the analog domain. Total cost could be a couple dollars. You could still have the bargraph display you described, if that's even the optimal approach... lots of options.

author: stj
author_rank: Super Contributor
timestamp: April 07, 2019, 06:25:30 pm
content: maybe,but i have over 30years of digital experience inc software.my analog skills go about as far as selecting the right resistor to drive an led, and knowing how to get a clean output from a regulator!!

author: splin
author_rank: Frequent Contributor
timestamp: April 07, 2019, 09:45:23 pm
content: Quote from: stj on April 07, 2019, 12:57:14 pmSo you want a sampling rate of a few Hz with an acquisition time of 50ns or less to minimize the probability of sampling during a signal transition. You don't need a high speed ADC, just one with a fast(ish) sample and hold - or make your own sample and hold with an analog switch, a capacitor and a jellybean CMOS or FET input opamp.I'd still suggest using a microcontroller as your solution is useless for signals which have a high or low mark/space ratio such as the write strobe of a RAM chip which might only be active for very short periods (a few hundred nano seconds perhaps) with relatively long off periods. The probability of sampling it in the active state woud be very low for sampling rates of a few Hz.Using the $2 STM32L412 would be cheaper and simpler (H/Wwise). You would only need to use one of the ADCs running in 6 bit mode, configured for a sampling time of 2.5 clocks or 31.25ns. You could use your method by running the convertor a few times per second and calculate and output the bargraph driver signals on GPIOs but you could do much better by running both ADCs interleaved at 17.8MSPS and use the processing power to examine the signal. The capture and processing doesn't have to be continuous so you could capture almost 40,000 samples into a RAM buffer and then process it at leisure.As a minimum you'd look for short pulses to ensure they get displayed. You could also look for overshoots/undershoots/oscillations in signal transitions and perhaps light additional LEDs to flag that it is worth further examination with a proper scope. Another possibility is to look for other anomolies such as runt pulses or glitches, and/or detecting a tri-stated signal level and displaying its voltage - even if it spends only short periods in the tri-state condition.When updating the bar graph you could ramp up, or down, the level at a speed proportional to the signal transistion time (obviously within the limits of the 17.8MSPS sampling rate). This could be helpful to detect overloaded signal lines or weak drivers.Use two STM32L412s and interleave all 4 ADCs to get over 30MSPS for better signal timing resolution (but still subject to each ADC's 31.25ns minimum acquisition time).Use the built-in USB peripheral to connect to a PC for uploading data or configuring thresholds, timings etc. relevant to the circuit being tested.Whatever ADC you use you will almost certainly need to buffer the signal as high speed ADCs require low impedance drivers for accurate results. Without a buffer it could cause glitches to the signal as the ADC switches its sampling capacitor. The buffer would be very simple - just an opamp configured as a voltage follower. It would have to be reasonably fast to handle the signal frequency of course - say 50MHz BW or more, so not a cheapie LM324!

author: IDEngineer
author_rank: Super Contributor
timestamp: April 08, 2019, 01:37:53 am
content: Quote from: stj on April 07, 2019, 12:47:54 amDespite your bargraph comments, it sounds like what you really care about is insuring that a logic low is "below a certain threshold voltage" and a logic high is "above a certain threshold voltage". That could be done with two discrete LED's.For now, I'm sticking with my analog recommendation. Two analog comparators could do this in a single IC and deliver 20MHz without even breathing hard. No "missed levels because they happened between samples", either. And if you really want a digital output for some downstream purpose, the comparators can drive into digital circuitry... there are even comparators with open-collector/open-drain outputs for exactly that purpose. You can even have controllable hysteresis to reduce your noise susceptibility, basically for free.This project reminds me of the guy who wanted to double the amplitude of an analog signal, and his plan was a full system of antialiasing filter, A/D, MCU, D/A, and output filter. That way the MCU firmware could multiply the samples by 2.

author: stj
author_rank: Super Contributor
timestamp: April 08, 2019, 11:00:04 am
content: Quote from: splin on April 07, 2019, 09:45:23 pmand there is the problem,it's going to be checking clock,address,data and chip-select lines on old computers.

author: 2N3055
author_rank: Super Contributor
timestamp: April 08, 2019, 11:11:58 am
content: So you want min/max peak detector connected to LM3914 LED bar graph..

author: joeqsmith
author_rank: Super Contributor
timestamp: April 08, 2019, 12:23:30 pm
content: Quote from: 2N3055 on April 08, 2019, 11:11:58 amThis is what I keep thinking but does he really want to see the under and overshoot? I think I just need to wait and see what he comes up with and how it is used.

author: 2N3055
author_rank: Super Contributor
timestamp: April 08, 2019, 12:28:47 pm
content: Quote from: joeqsmith on April 08, 2019, 12:23:30 pmI agree.. I kinda understand what he wants to measure. It's just I simply use scope for that..