An embedded-hal focused driver for the TCA9548 I2C multiplexer.
Find a file
2024-07-15 17:25:39 +12:00
src Upload initial version 2024-07-15 17:25:39 +12:00
.gitignore Upload initial version 2024-07-15 17:25:39 +12:00
Cargo.lock Upload initial version 2024-07-15 17:25:39 +12:00
Cargo.toml Upload initial version 2024-07-15 17:25:39 +12:00
LICENSE-APACHE Upload initial version 2024-07-15 17:25:39 +12:00
LICENSE-MIT Upload initial version 2024-07-15 17:25:39 +12:00
README.md Upload initial version 2024-07-15 17:25:39 +12:00

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();