High speed ADC to MCU data collection. - Page 1
Forum section: electronics / projects

author: Paptrack
author_rank: Contributor
timestamp: March 27, 2024, 12:42:33 pm
content: Hello,I need to sample a 20MHz signal from an ultrasound transducer. I would need to use a high speed ADC of around 500Msps.I have searched for MCUs with such a fast ADC but I'm afraid I haven't found any. I will have to use an external ADC like the AD9694, for example. Processing work of the obtained data would be minimal, but I do need to store all conversions in memory (internal or external). The sampling time will last about 2.5ms, so at 500Msps, I would get 1250000samples.It is the first time I work with such a fast ADC and I am worried about how to store all data fast enough with an MCU. I would like to avoid using an FPGA, as my lack of experience with these devices would greatly extend the project development. AD9694 has an JESD0204B interface but It is being quite difficult to find an MCU with this interface. Should I perhaps choose an ADC with parallel output?And what about using a DSP? I have no experience with them either and I don't know how difficult is to work with them.Any suggestion will be welcome. Thank you in advance.

author: moffy
author_rank: Super Contributor
timestamp: March 27, 2024, 01:41:47 pm
content: I think you need an FPGA, for the interface to the ADC and transfer to memory, the response times and data rates are beyond an MCU, I think DSPs would have the same issues unless one has an integrated FPGA.

author: moffy
author_rank: Super Contributor
timestamp: March 27, 2024, 08:36:53 pm
content: What you are trying to do is very similar to a digital oscilloscope's digitizing section, they could act as a reference point.

author: eTobey
author_rank: Super Contributor
timestamp: March 27, 2024, 09:26:05 pm
content: What do you need to measure it for? Distance measurment?

author: radiolistener
author_rank: Super Contributor
timestamp: March 27, 2024, 09:39:07 pm
content: Usually such ADC stream is processed on FPGA. You can do frequency shift, apply CIC and compensation FIR filter with decimation in order to reduce sample rate and then transfer it to MCU at lower sample rate for further processing. This way is used for realtime continuous stream processing, for example in radio receivers, radars, etc.But if you're needs to process full bandwidth, then you're needs to attach RAM to FPGA and record sample to the RAM at full ADC speed and then read it with MCU and process it at lower speed. This is how digital oscilloscopes working.I'm afraid there is no MCU which can do DSP for a stream at 100-200 MS/s speed.Modern PC can do realtime processing for such fast streams, but there is another problem - to deliver that stream to CPU internal bus, which is also needs to use FPGA.FT2232HL allows to deliver fast stream from 8-bit parallel bus to PC through USB, but it's speed is limited with 480 MBps, which is not enough to deliver digitized 20 MHz signal.

author: dmendesf
author_rank: Frequent Contributor
timestamp: March 27, 2024, 10:40:23 pm
content: If you can go down to ~100Msps (even at 16 bits per sample) then you can use a stm32 camera interface / parallel port interface + DMA to move data to an SDRAM buffer. I don't know any microcontroller/DSP faster option to move data from an external ADC to memory. FPGA would be the traditional option to do it. There's an USB3 equivalent chip to FT2232 that can move way more data inside a PC per second but the buffer size is far too small for your application.

author: SiliconWizard
author_rank: Super Contributor
timestamp: March 28, 2024, 02:35:07 am
content: Is it 8-bit and single-channel?If so, if really you can't use a FPGA (which would be prefered here), you could "deserialize" the 8-bit output to 32-bit using external buffers, and then read data by 32-bit chunks at 1/4th the data rate, 125MHz, which might be workable with the memory interface of an appropriate MCU. You would also need enough memory. That's something you may be able to do with a beefy MCU (at least Cortex-M7 stuff), but that would require some significant glue logic and careful preparation leveraging the MCU interfaces as efficiently as possible. Not that I really recommend it, but, it may be doable this way by accumulating the samples per 32-bit chunks externally.

author: aeg
author_rank: Regular Contributor
timestamp: March 28, 2024, 03:58:15 am
content: Your signal has acarrier frequencyof 20MHz but what is thebandwidthof the intelligence contained in the signal?

author: inse
author_rank: Super Contributor
timestamp: March 28, 2024, 05:42:58 am
content: I don’t know what you are looking for in that signal, but downconversion or demodulation is not an option?This would help reducing the sample rate and memory demand.Processing the 1.25Gbyte of raw data is another task…

author: dmendesf
author_rank: Frequent Contributor
timestamp: March 30, 2024, 11:48:52 pm
content: Quote from: inse on March 28, 2024, 05:42:58 am1.25 Megawords (usually US signals use at least 10 bits per sample). Demodulation isn´t very common probably because it´s a transient signal very dependent on transducer characteristics.What stands out is the very high US frequency (20MHz) and the very high relationship desired between sampling frequency and signal frequency (500MSPS / 20 MHz = 25.... usually 10 is great, 5 is OK).

author: SiliconWizard
author_rank: Super Contributor
timestamp: March 31, 2024, 12:11:33 am
content: Well, looking at the ADC ref. the OP mentioned (AD9694), which I hadn't looked up, it's a 14-bit 500Msps ADC. And before that, they stated they looked for something like this but integrated into the MCU. That's completely crazy.So maybe, but just maybe, the OP doesn't have a clear idea of what is technically required here.

author: jbb
author_rank: Super Contributor
timestamp: March 31, 2024, 01:13:43 am
content: How about coming at this sideways? Why notbuy a Picoscope or Cleverscope (or other) USB oscilloscope and integrate it into your platform?

author: Paptrack
author_rank: Contributor
timestamp: May 16, 2024, 11:44:26 am
content: Hi, thank you for your contribution.Actually, we are thinking to decrease the sampling rate to 100Msps. We might explore the way of the STM32 with DCMI interface.Thank you.