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.

ADS8681: Cannot change range select register

Genius 9880 points
Part Number: ADS8681
Other Parts Discussed in Thread: ADS8699


Customer cannot change the range select register. Below is the details.

I am trying to change the range select register of the ADS8681IPW, however it never changes from the default range. I am trying to set the range to 1.25 * Vref but the range never changes from +/- 3 * Vref (default). The command that I am sending is 0b11011000001010000000000000001011. The data sheet has conflicting information on page 42, it says the LSB of the register address is ignored, but in the footnote it says to add a 0b at the MSB location to get the 9-bit address. So, do I add a zero at the LSB or MSB of the 8-bit address to make it a 9-bit address? Am I sending the right command to change the range select register? I am attaching an image of the discrepancy in the data sheet (see underlined section vs boxed section)

Thank you in advance.



  • Hello, this is my question that I submitted. I figured out the issue with the addresses. I just needed to read a little slower haha. However, I am still unable to update the range select register. I am still wondering whether I am sending the correct code to change the range select register to be 1.25*Vref.

  • Hi Maynard, Edward,

    I apologized for the late response. Your command is incorrect.

    To fit the 8-bit real register address into a 9-bit address, a "0" should be added to the MSB of 9-bit address. The correct command for you is 0b1101100_0_00010100_0000000000001011. 

     "LSB of the register address is ignored" means that the command of 0b1101100_0_00010100_0000000000001011 is treated as the command of 0b1101100_0_00010101_0000000000001011 by the ADC for selecting 1.25xVref range in RANGE_SEL_REG register.

    Please see the command example under the Table 7-5 on page 42.



  • Understood! I have tried that command too with no luck. Perhaps my IC is damaged or soaked up moisture before I mounted it on a PCB. What are the signs that I need to bake the device?

  • Hi Edward,

    There are few signals you can check.

    1. By default, the interference voltage reference is enabled after the device is powered up, so you can check if the voltage on REFIO and REFCAP pins is  approximate 4.096V. 

    2. Send a high pulse to CONVST/CS which will initiate a conversion, then you can check the RVS signal which is an output from the ADC. Check the timing and description in the query:  ADS8699: RVS pin level doesn't go high from low after /RST transition from L to H. Make sure SPI Mode 0 (default mode CPHA=0, CPOL=0) is configured on your processor. ADS8699 is the18-bit version of ADS8681.

    Note that sending a reset signal to /RST is a good practice after the device is powered up and before doing any experiments or conversion.

    Best regards,


  • Hi Edward,

    I have not received further information for longer 30 days, this thread will be closed. You can start a new post if you still have troubles.