We are using an LTC2943 to monitor the charging of a lithium battery. If we read from certain pairs of registers too often, or back-to-back, the device returns a value of 0x0411. In particular, at least the following register pairs exhibit this behaviour:
Charge Threshold High (0x04, 0x05)
Voltage (0x08, 0x09)
Current Threshold High (0x10, 0x11)
Temperature (0x14, 0x15)
For example, if I read the Accumulated Charge registers (0x02, 0x03), then immediately read the Voltage registers (0x08, 0x09), the voltage register returns 0x0411. The same happens for the other values listed above.
If we read a single byte per I2C transaction, but read the same address twice in quick succession, we read the correct value first, followed by a value of 0x04 for the following addresses:
0x04, 0x08, 0x10, 0x14