TCA9458A是德州仪器的iic数据选择器,TCA9548A 器件配有八个可通过 I2C 总线控制的双向转换开关,所以具有8个i2c扩展接口,TCA9548A本身就是一个I2C元器件,通过编程可以在8个不同地址之间切换。
TCA9548A
-
使用场景
当你想用很多个相同IIC芯片的时候,发现他们不能片选,也就是说他们的IIC芯片是死的,你做白日梦也改不了的,这个时候怎么办呢,你可能会想到我的主控芯片有2到3个IIC接口,我可以一个接口用一个,但是有时候有很多的话我们就得使用TCA9548这种扩展芯片了。
-
树莓派的使用方法。
-
连接
IIC设备<==>TCA9548<==>树莓派
IIC设备和TCA9548都接上电源
-
规定
TCA9548片选初始地址为0x70(A0,A1,A2全部接地),最大地址为0x77(A0,A1,A2全部上拉)
我使用的是树莓派IICBUS1
我使用的IIC设备地址为0x48
-
代码
-
https://www.bilibili.com/read/cv4766571B站文章
请关注我的B站账号https://space.bilibili.com/309103931分享更多PHP姿势
import java.io.IOException;
import com.pi4j.io.i2c.I2CBus;
import com.pi4j.io.i2c.I2CDevice;
import com.pi4j.io.i2c.I2CFactory;
import com.pi4j.io.i2c.I2CFactory.UnsupportedBusNumberException;
public class TCA9548ADemo {
public static void main(String[] args) throws UnsupportedBusNumberException, IOException {
I2CBus i2c = I2CFactory.getInstance(I2CBus.BUS_1);
I2CDevice tca = i2c.getDevice((byte)0x70);
tca.write((byte) (1<<1));//选择tca9548A的SD1,SC1
I2CDevice device = i2c.getDevice((byte)0x48);//此时的0x48就是SD1,SC1
int data = device.read(0x90);
System.out.println(data);
}
}
原理图