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.

ADS8689: Cannot change input range

Part Number: ADS8689


Hi,

I am struggling a bit with the ADS8689 A/D converter. I get a readout that makes sense with the default range setting. Attempting to switch to range mode 0x0B (1.25 × Vref) doesn't change the readout.

Will someone please confirm (or disconfirm) that the SPI command needed to switch the range selector to 0x0B, while keeping the internal reference enabled, is the following set of bytes?

[0xD0]  [0x14]  [0x00]  [0x0B]  (in that order).

As I understand the datasheet, this means:

  • [0xD0]  Write 16-bit word
  • [0x14]  Range select register
  • [0x00]  Data byte for 8-bit register 0x15 (reserved)
  • [0x0B]  Data byte for range select register

Any help will be greatly appreciated.

  • Problem seems to be solved. Apparently, the device was alsleep or something, and didn't care about the first command, which was the range select command.

    The first SPI frame is now a NOP, and then the range is nicely set afterwards.

  • Hi Erik,

    Thank you for your post.

    Can you confirm that the range has changed as expected and is working properly? Since you are only trying to write to bits [7:0], it seems that the most appropriate command would've been the third WRITE option in table 7-5: 11010_10_<9-bit address>_<16-bit data>. The _10_ changes this command such that only the LS byte is written at the specified address (14h). Notice that above Table 7-16, there are addresses for each byte in the 32-bit register.

    Just suggesting this in case it helps with other register read/write transactions.

    Regards,

    Ryan

  • Hi Ryan,

    Yes, the range changed as it should. For some reason (which I will not chase), the device wouldn't react to the first SPI frame I sent. Now it works, so I won't modify it further.

    True, I could use the single byte command, but it will make no difference in this paticular register.

    A totally different thing: The whole SPI chapter in the datasheet could use a serious rewrite. Over the years, I have written firmware for numerous different SPI devices. I think it is safe to say that I have never been this confused before while reading how to use an SPI device. Just a few simple straight-to-the-point drawings could probably have prevented a lot of frustrations and forum posts.

    Regards,

    Erik