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.

ADS8910B: SPI issues due to part erroneously entering source synchronous mode

Part Number: ADS8910B
We're having some issues with the SPI interface on our ADS8910B ADC. Our board uses a TI MSP342E401Y MCU as the host controller for the ADC. We have a legacy SPI port hooked up to the SDI pin of the ADS8910B to write to the setup registers and put the device in quad-SPI mode. We then have a separate quad-SPI port on the MCU hooked up to the SDO lines of the ADS8910B to read data out.
Sometimes the part gets in a state where the data is not lining up with the clock. After some debugging I discovered that this is due to the RVS pin on the ADS8910B outputting a clock, and the data lines being synced to that internal ADC clock, rather than the SCLK pin being driven by the MCU. 
According to the ADS8910B datasheet, the RVS pin will output a clock only in source synchronous mode, which is enabled by setting bits [1:0] of SDO_CNTL to 11. 
image.png
Part of our initialization routine is to set this register, so it seems that somehow this register is being corrupted or those bits are somehow being set in another way. Once we go into quad-SPI mode it does not seem that we have any way of writing to the ADS8910B other than through the SDI line, which we hold low after writing the initial registers to set quad-SPI mode. 
Any ideas on what could be going on here? On one of our boards this happens intermittently, and on another it seems to happen every time we cycle power. 
  • Hello Michael,

    This could either be a timing issue (not meeting a setup or hold time) during the WRITE command to the SDO_CNTL register, or it could be a signal integrity problem.

    If possible, please capture the WRITE command SPI frame with /CS, SCLK, and SDI, to confirm a valid command with proper timing is met.

    If this is a signal integrity issue, many times this can be fixed by adding a resistor in series with the SPI lines. SCLK is the most critical, but /CS and SDI can sometimes be susceptible as well. If possible, try adding a 50ohm series resistor to these lines. If this is the cause, it should help reduce the intermittent failures or completely eliminate them.

    One other possibility is excessive noise on the power pins. This could be due to the bypass capacitor placed too far away from the ADC, or not enough capacitance. 1uF ceramic bypass caps should be placed directly next to the DVDD, DECAP, and RVDD pins similar to Figure 119 in the datasheet. Other customers have seen random issues like this where the cap was either not installed or damaged.

    Regards,
    Keith N.
    Precision ADC Applications
  • Hi Michael,

    It has been a few weeks since your initial post and I assume you have been able to get this working. I am going to close this thread out. Please feel free to create a new post if you have additional questions.

    Regards,
    Keith
  • Hi Keith, yes we figured this out. We did not have the SDI line connected so firmware was not reading the correct values of the registers from the ADC. Thank you for your help.