Good day everyone
About meI've been an industrial electrician specializing in construction and troubleshooting motor controls, plc, sensing arrays and networking of production line equipment.(percision mixers, injection molding, welders, quality control appratus) for 3 decades. Im experienced c programmer, and physics student who is currently obsessed with chemical engineering (not making chemicals but making stuff to make and test compounds).
I am an intermediate/amateur in building custom pcb's and arduino level projects to run different gadgets and gizmos i dream up. Ive made 70-80 pcb projects over the last 10 years with a DIY cnc
Currently I am using a cheap second hand 50mhz bandwidth spectrum analyzer to recreate a project demonstrated by the youtube channel applied science. Needless to say, my success is limited by my technology
The video in trying to reproduce can be seen hereI wish to recreate some of the functionality of his scope, without the multi thousand dollar price tag. My first idea is to record the data points, then send them to a pc, where I can process the results in software. Eventually I would like to be able to generate a frequency spectrum for use as NMR spectroscopy.
developing and constructing analog front-end at this level is a new step for me and I am not experienced in designing high speed systems. But have been studying layout and timing considerations associated with these systems, and learning the basic of ddr memory. Learned enough to know I need to use an MIG from the manufacturer.
This board will be beyond my abilities to print as the bga layout is to small for my equipment, so I will finally have an excuse to order a custom board from a manufacturer.
I am looking for information regarding the best way to construct a system to read and store data from a high speed adc (200MHz).
My specifications which are written in pencil
Ive been looking into the ADS4128 12bit 200MSPS ADC with +12db adjustable gain
The front end circuit built around the LMH2832 DVGA Amplifier with +60db gain
30 seconds of recording capability(12Gbytes of storage)
What have I done to approach the problemResearch, research, more research.
Brainstorm design with pro/con analysis.
I have come up with 2 possible solutions.
1)Streaming the adc into a ring buffer system, while streaming the buffer to a pc simultaneously. By using math to compair the input/output rates, the buffer can be sized to hold the difference.
Pro smaller on board memory requirements,
storage requirements are moved to a pc,
Ethernet standards have datarates exceeding the input rate
Con slow transfer speeds will not shrink the memory requirments.
Ive never build a board with High speed ethernet which would meet the datarates needed
I lose the ability to process the data within the fpga
2) Go all out, store the raw data and perform data processing on board.
Pro Everything could be in one box and portable for field use
Con Im dreaming, never done anything this intergrated before
This is a learning project for me. I want to learn verilog and FPGA
I want to be able to make a useful low cost nmr open source project just because I believe I can.
After a lot of searching, I came across this article discussing a FIFO with gigabyte depth.
http://xillybus.com/tutorials/deep-virtual-fifo-download-source This seams perfect for my needs. As it could act as a drop in buffer, its not a ring buffer, but a FIFO which would fit my needs quite well.
For the professionals who have made it this far, first off, thank you for reading as your time is precious,
Is this a reasonable approach?
How would you approach this situation?