Hello!
I am building an FPGA-based data measurement system which uses an AD7980 AD converter. I have just received the first prototype of the AD modules, but the FPGA part is not done yet.
I want to test the ADC at Msa/s with as low jitter as possbile, and I was hoping that I could use an Teensy 3.0 for this. There are three things I need to do this:
Based on my own quick tests so far, it seems that (1) is easily done with analogWrite.
I still haven't figured out how to get 16-bit SPI transfers, but from benchmarks I have seen it seems that 16 Mbit/s is feasible. USB transfer speed could also be sufficient.
Now, the question is if it is even remotely possible to do all this at once? One issue is creating an interrupt which can react to the "data ready" signal quickly enough (~88 ns!) and start to shift the data out @ ~84 MHz. And after that, I need to send the data over USB. I was hoping to see if anyone had written an example of transferring data from SPI->USB with DMA... but the issue of getting the SPI transfer started quickly enough still remains.
Thank you for reading!
I am building an FPGA-based data measurement system which uses an AD7980 AD converter. I have just received the first prototype of the AD modules, but the FPGA part is not done yet.
I want to test the ADC at Msa/s with as low jitter as possbile, and I was hoping that I could use an Teensy 3.0 for this. There are three things I need to do this:
- Generate a trigger pulse (<290ns @ 1MHz) to start conversion
- Receive the "data ready" signal from the ACD and read out the 16 bits of data VERY quickly (see p. 18 in the AD7980 data sheet)
- Sent the data to the PC via USB
Based on my own quick tests so far, it seems that (1) is easily done with analogWrite.
I still haven't figured out how to get 16-bit SPI transfers, but from benchmarks I have seen it seems that 16 Mbit/s is feasible. USB transfer speed could also be sufficient.
Now, the question is if it is even remotely possible to do all this at once? One issue is creating an interrupt which can react to the "data ready" signal quickly enough (~88 ns!) and start to shift the data out @ ~84 MHz. And after that, I need to send the data over USB. I was hoping to see if anyone had written an example of transferring data from SPI->USB with DMA... but the issue of getting the SPI transfer started quickly enough still remains.
Thank you for reading!
Last edited: