I'm trying to read an EEPROM with the SC18IS600 device.
It was suggest by NXP support to append an additional byte that represent the EEPROM address to a regular BYTE command to perform this.
When I send the following SPI MOSI to the SC18IS600 for a RByte command
RByteCMD - NByte - I2CAddr - EEPROM_addr
0x01 - 0x01 - 0xA1 - 0x01
The SC18IS600, SDA output is as follow:
Start-bit 10100001 Ack 111111111 Stop-bit
The second SDA return byte from SC18IS600 is all High, which is not what I wrote into EEPROM Address 0x01.
The SDA stream never contains the EEPROM address 0x01.
What I noticed is that the SDA output the first Byte with a value = 0xA1 therefore this is the I2C protocol for a Current Address Read command and not a Random Address Read command. The SC18IS600 need to output a 0xA0 instead and I don't believe a command 0x01 would generate that.
The RByte command 0x01 doesn't work for this, please let us know what is the correct command sequence for a Random Address Read command.
The correct SDA sequence should be
Start-bit I2C_Addr R/W=0 ACK Byte_Addr ACK Start-bit I2C_Addr R/W=1 Data_out NACK