This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] TCA9548A:多路复用器通道选择问题

Guru**** 2540720 points
Other Parts Discussed in Thread: TPS65400, TCA9548A

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/interface-group/interface/f/interface-forum/892374/tca9548a-mux-channel-selection-issue

器件型号:TCA9548A
主题中讨论的其他器件:TPS65400

尊敬的 Francis / Max:

我正在尝试建立 i2c 通信 b/w FTDI 和 tps65400。 我面临的问题与之前提到的问题相同、即我可以选择 tca9548a 的特定多路复用器通道、但由于 SCX 不切换、因此无法访问从器件。  

此处提供了粗 python 代码(如果建议配置序列、这将很有帮助)

从 i2c 导入*
从 pyftdi.i2c 导入*
导入时间

I2C = I2cController()

I2C.configure ('FTDI://FTDI:2232h/1'、时钟拉伸=错误)### FTDI://FTDI:2232:FT2Y4V6J/1


结果= i2c.POLL (地址= 0x70、写入=错误、放松=真)
打印(结果)
从器件= i2c.get_port (0x70)
打印(从机)

定时休眠(0.00001)
打印(slave.frequency)
打印(slave.address)

SLAVE_2 = i2c.get_port (0x69)#基于数据表中使用的电阻器值和提到的地址
打印(从机_2)
打印(slave_2.address)

Slave.write (out=b'\x80'、ele=False、start=True)#通道4多路复用器-->这可以读回

Slave_2.write_to (regaddr=0x00、out =b'\x00'、elax = False、start = True) #page 0 slave2 tps65400不会返回

注:

绕过多路复用器、我能够与 tps65400通信。

FTDI、i2x 多路复用器位于一个板上。 tps65400位于单独的电路板中。

绕过这里的多路复用器代码

从 i2c 导入*
从 pyftdi.i2c 导入*
导入时间
编号
I2C = I2cController()

I2C.configure ('FTDI://FTDI:2232h/1'、时钟拉伸=错误)### FTDI://FTDI:2232:FT2Y4V6J/1

#获取 I2C 从设备的端口
I IN 范围(20)的#:

结果= i2c.POLL (地址= 0x69、写入=错误、放松=真)
打印(结果)
根据数据表中使用的电阻器值和提到的地址、从器件= i2c.get_port (0x69)#
打印(从机)

# slave.write (out = b'\x11'、Relax = True、start = True)

slave.write_to (regaddr=0x10、out = b'\x00'、elax = True、start = True)#disable write_protect

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    大家好、Manikandan、

    我们主要处理这些器件的模拟支持(而非代码级支持)。

    "我可以选择 tca9548a 的特定多路复用器通道、但由于 SCX 不切换、因此无法访问从器件。 "

    您提到 SCX 没有切换。 您是否有与 TCA9548A 的主 SDA/SCL 引脚进行主 I2C 通信的范围? 我想看看通信是否正确。

    您是否有可供我们查看的原理图?

    谢谢、

    -Bobby