Skip to content

ESP32-S2 I2C does not honor repeated-start (no stop) in API? #4729

Closed
@ladyada

Description

@ladyada

hey @me-no-dev i verified someone trying an ESP32-S2 with an lc709203f and i am pretty sure that the issue is that when we ask for no-stop in uint8_t TwoWire::endTransmission(bool sendStop) its sending a stop anyways.

This is the correct I2C transaction to read the ID code (on avr chipset)
image
we write 0x11 register command to i2c device 0xB, don't stop, then read 3 bytes of data

if we run the same code on ESP32-S2 I get:
image
(there's a delay due to serial printf)
with wrong data 0xFF

if we go back to avr and turn ON stop (which is incorrect), we get the same resulting trace:
image
same wrong data

this could be the root cause for
#4589
#4561
#4375
#4403

those are also repeated-start devices. not all i2c devices require repeated start

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions