Understanding I2C Bus Isolation
Pull-ups, bus topology, and crossing an isolation barrier — generic background, no product ordering codes.
Document version · revised
Hardware pinout and factory options: /products/I2S-001/guide · All learn topics
1. I2C pull-ups — one set on the bus
SDA and SCL are open-drain: both lines need pull-up resistors to the I/O supply. In typical MCU + codec setups the pull-ups sit on the master side (I2C controller side) — not because the standard forbids them elsewhere, but because that is where boards usually provide them.
Do not enable a second set on the slave: parallel pull-ups change rise times and can violate timing limits.
2. I2C through galvanic isolation
When the MCU and codec sit on opposite sides of an isolation barrier, SDA and SCL can cross through a dedicated I2C isolator IC. The same pull-up rule applies: provide pull-ups on one domain — usually the master / controller side — not duplicated on both.
Isolated I2C transceivers support common speeds up to Fast Mode Plus (1 Mbit/s) on many parts. Clock stretching behavior depends on the exact isolator — some parts pass stretch and others do not. On I2S-001 (D = 1), the fitted isolator supports clock stretching; the isolated side is the weaker bus side and the noisy side is the stronger side where the master and pull-ups typically live. See the User's Guide for jumpers and wiring.
3. I2C alongside I2S
Codec control over I2C is separate from I2S audio clocks and data. Count I2C as two additional wires (SDA + SCL) when planning how many signals must cross isolation — independent of how many I2S lines you need.
For Turul I2S-001 pin numbers, jumpers, and factory options, use the I2S-001 User's Guide.