This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
Hello!
Here is my Verilog HDL code: http://paste.org.ru/?x2a6yj
I trying to work with ADS8881 ADC and it's interface very often getting stuck. FPGA is Xilinx XC6SLX9 with 140 MHz clock speed (to meet 70 MHz clock maximum for ADS8881). Sample rate is 500 KHz and signal is sine at 525 KHz. Every 20-50 us interface hangs up and I restart cycle again. Byte ganged up interface I mean that ADC is not react on control signals. After cycle restart I see it continue to work as expected and then after 20-50 us the error repeats again =(
Also I see another error (take a look at left half of picture below: din=1, dout=orange, sclk=green, convst=red) - sometimes my module false starting to capture data, however dout erroneously getting back to level 1. Right half of picture shows normal cycle without error.
I tried many modes from datasheet: 3 wire 4 wire all with busy or without, and see that ADC working not stable. This makes my cry, what I doing wrong? Modeling in Xilinx ISIM and Modelsim shows that everything is OK with my code - many different measures with random 18-bit values with random conversion times from 500 to 700 ns - all is fine in HDL simulator, but not with real ADC =(
May be someone could share his code to me and all others? I can provide much more details if necessary. Please help, I spent many weeks to get it working stable. Which debug ideas I can try more?
Hi Alex,
Unfortunately, we don't have a software example for the Xilinx FPGA. If you could please post a few zoomed in oscilloscope plots of the DIN, SCLK, DOUT, CONVST during the read transaction and let us know which mode of operation you intend to use 3-Wire/4-Wire with/or without BUSY so we can verify the interface timing.
Please place the oscilloscope probes right at the pins of the ADS8881 device; and provide oscilloscope plots when the device is properly providing conversion results and for the case when it is not working.
The ADS8881 (18-B) is a very high resolution, very low distortion device, and will not perform as expected for input frequencies above Nyquist. The datasheet shows performance up to 100kHz input frequency.
Please post an schematic showing the ADS8881 digital interface connections as well as the amplifier driving the device.
Thank you and Best Regards,
Luis
Alex,
The classic SAR ADC architecture can be used to convert input signal frequencies above Nyquist, (undersampling applications); and I have supported systems using SAR ADC's in undersampling applications many times in the past.
The great majority of mid performance SAR ADCs (12-B, 14-B and in some cases, some of the 16-B resolution devices) could be well suited for these undersampling applications where the bandwitdh of the sample-and- hold is in general a limitation on the input frequency (although, of course, as expected, there is a gradual degradation on the performance, as the input frequency increases, and strictly speaking, it will not meet the datasheet specs).
However, SAR ADC's in this performance class, offering very high resolutions with very low distortion (18-B and above resolution) incorporate self-correction algorithms while performing the Least Significant Bit (LSBs) decisions, and will show a more abrupt decrease in performance at the higher input frequencies, at frequencies well below the BW of the sample-and-hold; as the last few bit decisions will be incorrect after a frequency threshold, at frequencies well below the BW of the sample-and-hold.
Therefore, I recommend mid precision SAR ADCs for under-sampling applications for this reason; and I do not recommend 18-B devices for undersampling applications. Well suited devices for under-sampling applications will be for example ADS7854, ADS7042.
There is of course, no correlation between the input frequency and the interface issues .
Thank you,
Regards,
Luis Chioye
Precision SAR ADC Applications