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.
I am trying to change the config register to change the mux configuration and start a one-shot conversion. Below I show the trace of my communication with the device.
You can see from the traces and the decoding that I am setting the MSByte of the configuration register to 0b11000101 and not changing the LSByte. So Packet 1-2 is setting address pointer register to the config register and reading from it. Packet 3-5 is performing sending MSB and LSB back to the slave, but first the MSB is logic OR with 0b11000101 to set the mux and start a oneshot conversion. The changed MSB and unchanged LSB and then written back to the config register on the slave.Then packet 6-7 is reading back the config register from the slave. Then when I try to read from the configuration register (packets 6-7) the MSB is the same as before I wrote to it, so my change did nothing. What am I doing wrong here? Why can't I overwrite the register?
Tom,
First of all, thanks for putting up the logic analyzer figures in your post. Adding this really helps debug communications.
I think the problem is in the setup in the write to the device. Check out Figure 16 on page 19 of the ADS1015 datasheet. The write sequence for the device address write + pointer + 2 data bytes.
Right now, you have address write + pointer + address write + data byte 1 + address write + data byte 2. Also it looks like you have a stop by master between each pair of byte communications. In the end, I don't think you've written anything to the device.
Redo your write similar to Figure 16 and check the results. If this doesn't work, post another shot from the logic analyzer and we can discuss it again.
Joseph Wu