Why is BCM2711 I2C SoC register programming in my C program not inline with I2C standard
Budget: ₹1,500 – ₹12,500 INR
I have a C program running on Raspberry Pi 400.
It reads and writes to I2C EEPROM using BCM2711 register programming.
In MainDriver.c, these are the lines that don't make sense although they work:
BSC1_FIFO = 0x00; // Value of Hi Addr
BSC1_FIFO = 0x43; // Should be "data byte" to write
BSC1_FIFO = 0x42; // Should be value of Low Addr
I want to write 'B' at EEPROM location 0x0043. So, in-line with i2cWriteByteData() as well as SMBus protocol Write byte/word (section 7 - Bus Protocols), I organized FIFO as I've shown (Hi Addr, Data Byte, Low Addr). But with this command I get that 'C' is written as location 0x0042 instead.
Why is that?
It reads and writes to I2C EEPROM using BCM2711 register programming.
In MainDriver.c, these are the lines that don't make sense although they work:
BSC1_FIFO = 0x00; // Value of Hi Addr
BSC1_FIFO = 0x43; // Should be "data byte" to write
BSC1_FIFO = 0x42; // Should be value of Low Addr
I want to write 'B' at EEPROM location 0x0043. So, in-line with i2cWriteByteData() as well as SMBus protocol Write byte/word (section 7 - Bus Protocols), I organized FIFO as I've shown (Hi Addr, Data Byte, Low Addr). But with this command I get that 'C' is written as location 0x0042 instead.
Why is that?