2 releases
0.1.1 | Mar 13, 2023 |
---|---|
0.1.0 | Feb 24, 2023 |
#1399 in Embedded development
18KB
388 lines
I2C-Multiplexer
An I2C Multiplexer library that supports the PCA9546 and TCA9546A chips
Usage
The sensor is initialized
use i2c_multiplexer::prelude::*;
fn main() -> Result<()> {
// Disable all ports and only enable port 0
Multiplexer::new(i2c).with_ports_disabled()?.set_port(0, true)?;
}
Changing Address
use i2c_multiplexer::prelude::*;
fn main() -> Result<()> {
// Manually set the address
Multiplexer::new(i2c).with_address(0x72);
// Or set it according to the selected hardware pins
// This uses A0 which means the address is 0x71
Multiplexer::new(i2c).with_address_pins(true, false, false);
}
Setting multiple ports
use i2c_multiplexer::prelude::*;
fn main() -> Result<()> {
// Manually set the ports 0,2 to enabled and 1,3 to disabled
Multiplexer::new(i2c).with_ports([true, false, true, false])?;
}
Dependencies
~2–2.7MB
~56K SLoC