I have a question about manual mode on the ADS7138 -- I'm finding the device doesn't work exactly like the datasheet describes.
For manual mode:
It says you should send a Start command, 7-bit slave address, the R bit, and then you'll get an ACK and then the clock stretching will begin.
On my device, I send the Start, ADDR, R bit, get the ACK, and then the device immediately spits out the last conversion. After I receive the conversion results, then it initiates a clock stretching period.
I would expect that after the Start/ADDR/R/Ack the device would hold SCL low until the conversion is complete, then spit out the 2 byte result. The result I'm getting seems correct based on external measurements of the voltage applied at the input of the A/D converter. (The device ADDR in the above screenshot is 0x17)
I'm thinking adjusting the code to read 4 bytes and see what it does -- if it waits for 2 more bytes before stopping the communication. But is this expected operation of the device?
Also, it seems the I2C Controller I'm using does not deliver an ACK at the end of receiving the 2 bytes. I'm not sure why - also not sure if that is related to the issue I'm seeing.