Open
Description
This issue manifests in the following situation:
- You have an EEPROM device that is larger than 256 bytes, but does not use 16-bit addressing (so the upper three bits of the read address are sent through the I2C address byte)
- You try to read across a page boundary (e.g. read addresses 0-511, or address 255-256)
In order to do this type of read, the current I2C transaction needs to be ended, and a new one needs to be started for the desired page. Strangely, the program() method has logic to do this, but the read() method does not. This means that doing a read that crosses page boundaries will just end up looping back to the start of the first page instead of returning correct data.