ST意法半导体
直播中

杨平

7年用户 1572经验值
私信 关注
[问答]

使用I2C多路复用器TCA9548A,为什么无法从输出端口获得任何输出?

我正在使用连接到 Adafruit TCA9548A 1:8 多路复用器板的 Nucleo32L031 板。我的电路板设置正确,Vcc = 3.3,GND,SCA 和 SCL 引脚双重检查。我有一个 Sparkfun TMP102 温度传感器板连接到 TCA9548A 的端口 0。
我将 mux 通道设置为:
HAL_StatusTypeDef ret;
uint16_t TCA9548A_ADDR = (0x70 << 1); //默认地址为0x70
uint8_t current_buf[3];
channel_buf[0] = 0;
ret = HAL_I2C_Master_Transmit(&hi2c1, TCA9548A_ADDR, channel_buf, 1, 15000); // 将 TCA9548A 输出通道设置为端口 0
ret = OK 这里
然后我尝试与温度传感器 TMP102 通信
uint16_t SEN_13314_ADDR = (0x48 << 1); // 默认地址是 0x48
uint8_t temp_buf[3];
ret = HAL_I2C_Master_Receive(&hi2c1, SEN_13314_ADDR, temp_buf, 2, 5000);
ret != OK 这里
我检查了所有的引体向上都是正确的。如果我将 TMP102 I2C 线直接连接到 Nucleo 的 I2C 线,我可以读取温度。我只是不能使用多路复用器。
有人成功使用过TCA9548A芯片吗?有任何想法吗?









回帖(1)

凌云志

2023-2-2 15:34:56
更好地阅读数据表,0 = 禁用所有通道
使用 1 2 4 8 ... 并且所有 8 条总线都需要自己的上拉
举报

更多回帖

发帖
×
20
完善资料,
赚取积分