High speed digitizer - Acquire up to 200M Samples at 125MHz
Posted: Tue Aug 11, 2020 6:57 pm
Hello everyone,
I've worked on an acquisition card with the Red Pitaya board. It can acquire up to 200M Samples at full speed (125 M Samples/s). https://github.com/alex123go/RedPitaya_Acquisition
How:
It consists of a DMA block directly connected to the ADCs. When an acquisition is started, the FPGA side can fill up to 384MB of the RAM (Linux's RAM is limited to 128MB, so the remaining 384MB are reserved for DMA). Therefore, in single channel mode, a little over 200 million samples can be saved without dead-time.
When the RAM is filled, data are transferred over TCP to the host computer and can be plotted or saved.
I've tried to make a GUI that kinda look-like an oscilloscope for easier use of the tool. There is also a script without GUI, useful for longer acquisition without freezing the computer.
Unfortunately, you need to write a new Linux Image to the SD card, so I think the board is no longer compatible with original Red Pitaya's apps (although I never used them so I am not 100% confident).
The new image is based on Pavel's version (https://github.com/pavel-demin/red-pitaya-notes), with the reserved memory modified, plus some software for red-pitaya discovery over UDP and communication over TCP.
Why:
Considering that the price of dual channel high-speed acquisition card is in the thousands, I think this acquisition firmware can be a good addition to any laboratory or to anyone's electronic workbench.
Future:
As future work, I plan to add decimation, to add an internal trigger and to the merge the different tools into a single bitfile (I've also worked on a waveform generator). I also plan to improve the maximum number of points to 224M.
Please remember it's still a work in progress. I'll be more than happy to help if you find bugs, have difficulty with the instrument or have ideas for improvements/upgrades.
I hope you'll enjoy the tool, and please let me know what you think about it.
Alex
I've worked on an acquisition card with the Red Pitaya board. It can acquire up to 200M Samples at full speed (125 M Samples/s). https://github.com/alex123go/RedPitaya_Acquisition
How:
It consists of a DMA block directly connected to the ADCs. When an acquisition is started, the FPGA side can fill up to 384MB of the RAM (Linux's RAM is limited to 128MB, so the remaining 384MB are reserved for DMA). Therefore, in single channel mode, a little over 200 million samples can be saved without dead-time.
When the RAM is filled, data are transferred over TCP to the host computer and can be plotted or saved.
I've tried to make a GUI that kinda look-like an oscilloscope for easier use of the tool. There is also a script without GUI, useful for longer acquisition without freezing the computer.
Unfortunately, you need to write a new Linux Image to the SD card, so I think the board is no longer compatible with original Red Pitaya's apps (although I never used them so I am not 100% confident).
The new image is based on Pavel's version (https://github.com/pavel-demin/red-pitaya-notes), with the reserved memory modified, plus some software for red-pitaya discovery over UDP and communication over TCP.
Why:
Considering that the price of dual channel high-speed acquisition card is in the thousands, I think this acquisition firmware can be a good addition to any laboratory or to anyone's electronic workbench.
Future:
As future work, I plan to add decimation, to add an internal trigger and to the merge the different tools into a single bitfile (I've also worked on a waveform generator). I also plan to improve the maximum number of points to 224M.
Please remember it's still a work in progress. I'll be more than happy to help if you find bugs, have difficulty with the instrument or have ideas for improvements/upgrades.
I hope you'll enjoy the tool, and please let me know what you think about it.
Alex