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.

ADS1256: ADS1256 not responding

Part Number: ADS1256

Hi,

ADS1256 is not responding. i have set my SPI clock to 4.5MHz and mode1. I tried to read all the registers one at a time using two byte command and my dout is sometimes 00 and ff. my connection are as follows

cs is held low during the read function.

VrefN = GND

VrefP = 2.5V

PDWN/SYNC = 3.3V

RESET = 3.3V

AVdd = 5V

DRDY is connected to a gpio

  • Hi Roobini!

    I'm sorry to hear that you are having trouble with the ADS1256. Can you grab a screen capture from an oscilloscope or logic analyzer that shows your RREG command sequence? Please include /CS, SCLK, DIN and DOUT.

  • Hi,

    Sorry for the delay. I have attached the screenshots of sclk vs din, sclk vs dout, sclk vs cs. Awaiting your response

    Roobini.

  • Hi Roobini,

    Thank you for sending over some oscilloscope screenshots!

    From the screenshots it looks like there is a lot of ringing on the SPI signals. It is quite possible that this could be interfering with the ADC communication. Do you have the ability to add some series resistors (or shunt capacitors) to these signal traces to help slow down the fast digital edges and hopefully remove the ringing?

     

    Also may I ask what your ADC master clock frequency is?
    According to the ADS1256 datasheet, the master clock rate should be between 0.1 and 10 MHz (7.68 MHz nominal to get the specified data rates). Also, note that the SCLK frequency must not exceed 1/4 of the master clock frequency. For example, if the master clock frequency is 7.68 MHz, then the SCLK frequency should be no more than 7.68 MHz / 4 = 1.92 MHz. The 4.5 MHz SCLK is a bit fast, so please try reducing the frequency of this clock as well.

  •  Hi,

    Ringing issue resolved.

    SPI is connected to 36MHz APB bus. At present SPI clock is 0.5MHz.

    Device is responding yet my Dout sequence received for the first time differ from the rest of the cycles.

    Obtained sequence is as above

    Awaiting your response

  • Hi Roobini,

    Indeed, it looks like you are getting multiple junk bytes before seeing the valid register data. You should be getting the register data in the 3rd DOUT byte, as shown in figure 34 of the datasheet:

    I don't have enough information to be able to determine what the actual problem is, but here are some likely causes:

    1. Make sure to send the "SDATAC" before reading or writing to registers on the ADS1256. If the device is in RDATAC mode it will ignore these commands. After power-up, I generally recommend sending the "RESET" and "SDATAC" commands first, and then proceeding to configure the registers through register writes.

    2. Your MCU's SPI buffer may have old data left over from previous SPI transactions. Therefore, try clearing out this buffer (usually by reading it until there is no more data left) before sending the RREG command. I'm not sure what this command lloks like for your MCU, but using the TI Simple Link library, I usually include the following statement before sending data...
          /* Remove any residual or old data from the receive FIFO */
          uint32_t junk;
          while (SSIDataGetNonBlocking(SSI3_BASE, &junk));
      
          /* SSI TX & RX */
          uint8_t dataRx;
          MAP_SSIDataPut(SSI3_BASE, dataTx);
          MAP_SSIDataGet(SSI3_BASE, &dataRx);
       
    3. Double check on the t3 (time between /CS low and the first rising edge of SCLK) and t6 (time between command byte and register data byte, as shown above) timing requirements.  If there is not a sufficient delay in these places you may read invalid data.

    4. Also double check that your SPI peripheral is configured to operate in SPI mode 1 (SCLK is active low and data is sampled on the falling edge of SCLK). Reference: https://www.totalphase.com/support/articles/200349236#modes