Electronics > Projects, Designs, and Technical Stuff
4 channel ADC, 10 MHz, 8 bit design
<< < (8/8)
FrankBuss:
All 4 ADCs of one board are soldered now:



I enhanced the Python script, it is tempting to add all the oscilloscope controls I'm used to now :)



The 1 volt offset x channel number was just added to see all traces at once. I think it is a bit less noise now, after changing the ground connection jumper wire of the external USB serial adapter to some other pin directly on the DE10 Nano board instead on the breadboard. Maybe I need a different capacitor for the green trace, and I couldn't find the bag with the 4 V regulator, so it is all powered from one regulator, which might introduce some cross-talk and other problems, but it is a good start. Will now add the 1 GB sampling memory capability, then it gets interesting.
StillTrying:
They look good, proves a good 8-bits is enough to see wave shapes.
I'd prefer a scope view before the 150k input and after the 20R out put to see what the op amp's doing that the 25MHz sample rate doesn't show.
FrankBuss:
The DDR3 RAM recording for my ADC4 hardware is working now. I can record up to 62.5 million samples, and each sample can have 128 bits, e.g. 8 ADC channels with 8 bits each and then 64 digital channels or other information. Max samplerate is 25 MHz, and probably can be increased to 50 MHz. The current hardware implements 4 ADC channels. My Python reader script saves it in Sigrok format to view with PulseView, and I enhanced the oscilloscope script a bit to trigger on zero crossing. Some PulseView examples:





The transfer over serial port with 1 Mbaud/s is awfully slow. Next will be to integrate it with the Linux on the DE10 Nano board. Then I can transfer it with the 1 GB/s Ethernet connection. I think it might be very useful to add a driver for it for Sigrok, looks like a nice collection of programs. But for analog signal there are some bugs, like you can't import/export files in CSV format from and to the internal SR format, but it is all open source, so someone could fix it someday :D
FrankBuss:
BTW, I refactored all the communication with the FPGA in an extra Python file. Now it is really easy to use the ADC and do something interesting with the data. The reader script, which just dumps the data to a Sigrok and CSV file, looks like this. Most of it is for a nice hexdump of the first few bytes on the screen.

The same functions are used for my Python oscilloscope, for which I added a simple trigger on zero crossing for the first channel, which helps a lot for calibrating. Later I can just change the record_and_read function to use Ethernet, and it works in all programs, only much faster. Might evolve over time to some more useful set of functions.

Maybe Python is better than trying to use Sigrok for it? Adding a driver for PulseView is more work in C++ than in Python, and I can implement project specific functions for data analysis in Python with numpy and all the other frameworks much faster anyway. It could even work from within a Jupyter Notebook.
Navigation
Message Index
Previous page
There was an error while thanking
Thanking...

Go to full version
Powered by SMFPacks Advanced Attachments Uploader Mod