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.

ADS8688: Only receive 0xFFFF from SDO

Part Number: ADS8688

I am having some problems with the SPI communication between an ATMega2560 MCU and the ADS8688. The MCU only receive 0xFFFF from ADS8688 regardless of the program/command registers sent. Here is an example of the response from ADS8688 when the MCU send an Auto Channel Sequence with Reset (AUTO_RST) command (data is captured using a logic analyzer):

The hardware design can be seen below:

I have checked the signal is transmitted accurately from the MCU to the ADS8688. The Arduino library being used is obtained from:  Any help is greatly appreciated.

  • Khoi,

    Normally these kinds of problems are related to timing issues. Can you please capture a scope waveform of SCLK, SDO, and CS? When we look at this we should be able to determine the issue.

    Best regards,
  • Hello Art,

    Thank you so much for the prompt reply. I have attached the photos in the original post but for some reasons they didn't show up. Here is the waveform of sending the AUTO_RST command (0xA000):

    I have tried with other registers but only receive 0xFFFF. Here is the hardware design:

    Thanks.

  • Khoi,

    Some items to consider:

    1. Look at figure 81 in the data sheet. You are trying to use the “auto channel sequence with reset”. To do this you should clock through all 32 clocks, and raise chip select. During the next frame, you will get the sampled results for the first channel in the “auto-channel sequence”. If left in the default mode all the channels will be scanned.
    2. I don’t see the full 32 bit frame, nor do I see the chip select raised before the next frame. The next frame is when you will get the data for the samples from the first channel. I think you are looking at this frame, but should actually be looking at the next frame.
    3. Look at figures 81 and 82 for guidance. At the end of the 32 bit AUTO_RST command, you will need to raise chip select. The next frame (lower chip select and clock 32 times) is where you will get the data. Note that SDI is held low for this frame. Also, SDI will be held low for subsequent frames to continue the auto-channel sequence.
    4. You should look at the data with an oscilloscope. I’m not sure what utility you are using to display the waveforms, but I suspect that it comes directly from the microcontroller. This will not let us see if there is timing or data corruption issues. A digitizing scope will show the wave shape and actual data on the different SPI pins. I highly suggest that you connect to a digitizing scope to debug your issue.

    I hope this helps, let me know what you find.
  • Dear Art,
    Thank you for your response. I did not capture the whole waveform but 32 clocks are used to capture the data. We have spotted the problem in that the MISO/MOSI connection were mistakenly swapped. It has been fixed now and the ADS8688 can be communicated without problem :)
    Best regards,
    Khoi.