1 unstable release
0.1.0 | Jul 15, 2024 |
---|
#1610 in Embedded development
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