TCA9548A iic地址扩展器件 树莓派JAVA版教程

TCA9458A是德州仪器的iic数据选择器,TCA9548A 器件配有八个可通过 I2C 总线控制的双向转换开关,所以具有8个i2c扩展接口,TCA9548A本身就是一个I2C元器件,通过编程可以在8个不同地址之间切换。

TCA9548A

  1. 使用场景

    当你想用很多个相同IIC芯片的时候,发现他们不能片选,也就是说他们的IIC芯片是死的,你做白日梦也改不了的,这个时候怎么办呢,你可能会想到我的主控芯片有2到3个IIC接口,我可以一个接口用一个,但是有时候有很多的话我们就得使用TCA9548这种扩展芯片了。

  2. 树莓派的使用方法。

    1. 连接

      IIC设备<==>TCA9548<==>树莓派

      IIC设备和TCA9548都接上电源

    2. 规定

      TCA9548片选初始地址为0x70(A0,A1,A2全部接地),最大地址为0x77(A0,A1,A2全部上拉)

      我使用的是树莓派IICBUS1

      我使用的IIC设备地址为0x48

    3. 代码

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

原理图

原文地址:https://www.cnblogs.com/kawayidamiao/p/13843775.html