前段时间有一个设计,涉及到8路I2C子设备的数据存储。由于子设备地址相同且不能更改,于是选择了TCA9548的芯片。进行通道切换。上周PCB打样回来了,这周开始调试。在调试的时候碰到若干问题。
1、地址设置IO A0/A1/A2 三个地址设置端口能不能用单片机的IO口来进行控制,还是说一定要接VCC或者GND?(前期硬件设计的时候,A0-A3直接接的单片机IO口)
2、有没有详细的TCA9548A芯片的配置步奏。谢谢。
Kailyn Chen:
1、地址设置IO A0/A1/A2 三个地址设置端口能不能用单片机的IO口来进行控制,还是说一定要接VCC或者GND?
A: IO控制 可以的,A0~A2一共8种不同的逻辑电平选择,从而决定了8个不同的I2C地址。
Kailyn Chen:
2、有没有详细的TCA9548A芯片的配置步奏。谢谢。
A; 可结合着芯片数据手册,参考下这款芯片的EVM user's guide:
http://www.ti.com/lit/ug/slvua73/slvua73.pdf
DuLiang Guo:
回复 Kailyn Chen:
谢谢,调试中。
DuLiang Guo:
回复 DuLiang Guo:
调试了一天,数据手册都看了好几遍,调试成功了。其实A0-A2只是TCA9548A的地址,并不是实现IIC通道选通的地址。请大家详细看数据手册。
在写TCA9548的地址后,再写入通道选择地址。
官方电路设置A0A1A2到GND,并不是只能选中通道0,而是设置TCA9548A的地址为000,二通选择地址用IIC写入,(0x10 0x20等等)
IIC的底层就不发图给大家了,配置步骤是这样的,我的A0A1A2都是高电平,所以地址为0XEE,写入第二个数据才是通道选择。
串口打印4路IIC数据结果。终于出数据了。希望以后用TCA9548的工程师能够有个参考。