#i2c-bus #multiplexer #embedded-hal #gpio #no-alloc #tca9548

no-std tca9548-eh

An embedded-hal focused driver for the TCA9548 I2C multiplexer

1 unstable release

0.1.0 Jul 15, 2024

#1482 in Embedded development

40 downloads per month

MIT/Apache

8KB
119 lines

An embedded-hal focused driver for the TCA9548 I2C multiplexer.

This crate allows you to use the multiplexed I2C busses on the TCA9548 as if they were separate I2C busses.

Portable Atomic

This crate uses portable-atomic to provide platform-agnostic atomic operations. This is necessary to implement the internal shared i2c bus. You may need to enable certain features of portable-atomic to get this crate to compile on platforms that don't natively support atomic operations.

Usage

// 0x70 is used here, the actual address will vary
// depending on the configuration of the ADDR
// pins on the chip.
let mut multiplexer = Tca9548::new(i2c, 0x70).unwrap();

// This borrows the multiplexer, so the multiplexer
// cannot be dropped before it's busses.
let tca9548_eh::Busses {
    bus0,
    bus1,
    ..
} = multiplexer.split();

bus0.write(0x38, &[0x00]).unwrap();

Dependencies

~1MB
~21K SLoC