Page 1 of 1

i2c New Driver

Posted: Tue Nov 19, 2024 7:27 am
by arunbm123
hi,

I am using new Drivers in v5.3 i2c Master and Slave Drivers.
Both Master and Slave are Esp32

I send from Master for Example, 1 byte 0x55

At the Slave I get 2 times 0x55 0x55
or Even Some times I get four Times 0x55 0x55 0x55 0x55

Any Idea Why is it so ?

Thanks

Re: i2c New Driver

Posted: Sat Nov 23, 2024 5:06 pm
by ESPBoards
Could be do to several things...

1. Glitches on I2C bus: Check pull-up resistors and try reducing bus speed (e.g., to 100kHz).
2. Master retransmissions: Ensure the master sends data only once and handles acknowledgments correctly.
3. Slave buffer issues: Clear the slave buffer after reading data.
4. Repeated slave interrupts: Ensure the slave ISR isn’t triggered multiple times per transmission.

Without the code, cannot tell you more unfortunatelly.

Re: i2c New Driver

Posted: Wed Apr 23, 2025 7:55 am
by eriksl
This is to be expected. The master, not the slave determines when a transaction is finished (by sending a NAK). As long as the master doesn't send a NAK, the client has to supply "some" data, it cannot flag an exception. In most cases, when the client has no more data to send, it just keeps repeating the last byte.

If you want the client to be able to inform the master how many bytes can be read, the client must the inform the master explicitly, e.g. send the amount of bytes available as the first byte or make a register/command available to the master to fetch that information separately.