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.

ADS7924: ADS7924 I2C register read/write

Part Number: ADS7924

I do feel a bit stupid as I fail to write/read the registers of the ADS7924.

What I do:

1. check whether the ADS7924 is present by simply writing the address and checking whether it is acknowledged - which works.

2. resetting the ADS7924 by writing zero to register 16

3. set device in awake mode by writing 0x80 to register 0x00

4. check whether awake mode is set by reading register 0x00

Unfortunately I do get 0x00 instead of 0x80. And I cannot get any other register values including the analog readings.

What could be my problem?

Best regards

René

  • Hi Rene,

    Can you confirm that you are seeing the acknowledge bit? If possible, can you capture the digital lines (both for write and read) using an oscilloscope and share it?
  • Dear Evan,

    thanky for your help,

    I already tried to add the trace but failed to do in the way described.

    I'll try again with that response.

    If it fails maybe there is a Mail address where I can send it to?

    Or is there another way instead of dropping the files (tried gif, bmp, zip) into the editor?

    Thank you very much

    Best regards

    René

    ADS7924.zip

  • Hi Rene,

    After issuing the device reset, you say that you want to write 0x80 to register 0x00 (to bring the device into awake mode). However based on the images that you sent, it appears that you are writing 0x80 to register 0x80 which is not a valid register. Can you please:

    - Update the 6th byte (from the image sent) so that it writes 00h?
  • Dear Evan,

    have already tried that but I did again:

    Also register read mwith 0x00:

    Unfortunately also doesn't work.

    The reason for using 0x80 when writing to register zero is that I initially wanted to write more than one register - and therefore set the "INC" bit which is the MSB one of the address byte (see figure 30 in datasheet page 23) to 1.

    Again I checked all other I2C devices on the board: all of them having other addresses and working properly (it's a redesign and only the ADS7924 is new on I2C, so all the "old" ones are already programmed and tested.

    Thank you very much for your help

    Best regards

    René

  • Hi Rene,

    Thanks for your patience.

    I've been looking through the register map for the device and think there may be an error with your software resent command. In Figure 56 of the datasheet there is a note stating that issuing 10101010 (0xAA) to the register will reset the device (as opposed to all zeros). There is also an option to read the device ID, which is worth also trying.

    That said, can you please try the following test:

    1) Read the device ID (register 16), before resetting the device
    2) Reset the device by programming 0xAA to register 16
    3) Read the device ID again
    4) Program register 0 with 0x80 to put it into awake mode as you were previously trying
  • Dear Evan,

    thank you very much for your help.

    Unfortunately I can't try at the moment as the pads of my only prototype have been damaged when trying to exchange the device the second time.

    Will get new (machine made) ones in January.

    I will tell you the results.

    Best regards

    René

  • Hi Rene,

    Sounds like a plan, I will keep an eye out for the results early next year.

    In the meantime, I am going to close this thread and highlight my previous response. No need to take action from your side, and when you have tested the new boards you can reopen this thread by simply replying to this message. Until then, I wish you happy holidays!