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.

ADS1292: Writing to and reading from ADS1292 Registers

Part Number: ADS1292

Hi All,

I would like to write to an ADS1292 register and read what is written. The read back byte, however,  is not what I write. Executing the following lines,  I get 0xD9 instead of the written byte.

The writeRgister function takes in register address, byte to be sent and an integer (number of bytes to be sent). The initiate SPI  function following the main code shows the master clock frequency and spi clock polarity and phase I am using. I will appreciate your feedback.

Thanks,

Hamid

  writeRegister(config2Address,0xA0, 1);    // config2Address = 0x02, config2content = 0xA0
  delay(5);
  regContent = readRegister(config2Address,1);

void initiateSPI(){
    SPI.beginTransaction(SPISettings(fclk, MSBFIRST, SPI_MODE1));   // fcls = 512k , SPI_MODE1: CPOL = 0, CPHA = 1
    SPI.begin();
    //SPI.setClockDivider(SPI_CLOCK_DIV16);  

}

  • Hi Hamid,

    Thanks for your post!

    More than likely there is an issue with the power-up sequence. Please see the BIOFAQ in my signature for further assistance. 

  • Alex,

    Thank you for your response. The power as you pointed out seems to be the problem.I am powering up the device with the following voltages.

    Checking the power pins,  VCAP1 = 0.16 V and VCAP2 = 2.32 V , so they clearly don't satisfy (b) and (c) in the direction you posted on "how to verify my device is functional."  Shall I conclude that my device is damaged at this point?

    AVDD = 3.3 V

    DVDD = 1.8 V

  • Hi Hamid,

    I am happy to help. One last thing to verify before declaring that the device is damaged, are the power supplies ramping up correctly as shown in the POWER-UP SEQUENCING section of the DS? 

  • Hi Alex,

    Thank you again for that question. Let’s double check the numbers. Per DC got to wait t(por) seconds which is at least 2**12 t(mod) before issuing a RESET pulse. The default values of f(clk) = 512 kHz and f(mod) = fclk/4, so the min tpor is 32 ms.

    I am adding my power supply rise time (400 ms) to tpor, so 432 ms before issuing reset pulse.

    The reset pulse min width = tmod so we make the pulse   last 5*tmod = 0.039 ms

    Finally delay 18*t(clk) = 0.035 ms before using the device.

    Please let me know if these numbers are reasonable.

    Regards,

    Hamid

  • Hi Hamid,

    The math checks out - you may want to try adding additional delay before issuing the reset pulse since it is a minimum. Try waiting 1s. 

    If that doesn't help, you may want to consider swapping the device out to double check that there wasn't a handling issue that damaged the device.