Hello all,
I'm trying to read an I2C device with a slightly peculiar documented behavior, in that on a read, after transmitting START and I2CADDR, it will begin immediately transmitting data (multiple bytes) to the I2C controller. Since the I2C code in the FTC SDK abstracts I2C behavior behind register IDs, I had a few questions:
1) Is a read performed by a bunch of single-register reads, or one long read that reads a bunch of bytes until a NACK (or end of read buffer) and then sends a STOP condition?
2) If the former, is there any workaround to make it perform the latter?
3) If the device ignores the register ID and begins driving the wire directly, would the correct resolution be to read register ID FF (so that the SDA line does not get pulled down by the CDIM), given that I'm OK with dropping the first byte?
Thanks!
I'm trying to read an I2C device with a slightly peculiar documented behavior, in that on a read, after transmitting START and I2CADDR, it will begin immediately transmitting data (multiple bytes) to the I2C controller. Since the I2C code in the FTC SDK abstracts I2C behavior behind register IDs, I had a few questions:
1) Is a read performed by a bunch of single-register reads, or one long read that reads a bunch of bytes until a NACK (or end of read buffer) and then sends a STOP condition?
2) If the former, is there any workaround to make it perform the latter?
3) If the device ignores the register ID and begins driving the wire directly, would the correct resolution be to read register ID FF (so that the SDA line does not get pulled down by the CDIM), given that I'm OK with dropping the first byte?
Thanks!
Comment