I‘ve had a problem using AD9257. I used it to acquire a sine wave, but the waveform will jump if the input exceed a value, as shown below.
The problem does not occur in all of the 8 channels.
I made a few test boards, and each board has different error channels.
I use AD8138 as the differential Driver. I watched the differential input of AD9257 with an oscilloscope, and it is a standard sine wave.
I used the test pattern function of AD9257 to test my driver program, and I can receive the test pattern correctly.
What is the possible reason for this problem?
Appreciate all your efforts and help.
Thank you for using the AD9257. You mentioned that the problem does not occur on all channels, and different boards show the problem on different channels. On a given board, are the problem channels the same from power-up to power-up? For example, if only Channel A is not working on one board, will it always be only Channel A that does not work?
If you are able to post your schematic, I would be glad to look at them.
Also, as a sanity check, please try a Digital Reset as described in the CLOCK STABILITY CONSIDERATIONS section of the AD9257 datasheet.
SPI_Write (0x08, 0x03); # Start Digital Reset
SPI_Write (0x08, 0x00); # Finalize Digital Reset and Return to Normal Operation
I really appreciate your reply. It is indeed a problem of CLOCK STABILITY. The power of my clock is little later than AD9257's power. After a digital reset, AD9257 works properly.
You are very welcome!
I hope your project goes well.