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多通道I2C选择芯片的2个问题

Other Parts Discussed in Thread: TCA9548A

前段时间有一个设计,涉及到8路I2C子设备的数据存储。由于子设备地址相同且不能更改,于是选择了TCA9548的芯片。进行通道切换。上周PCB打样回来了,这周开始调试。在调试的时候碰到若干问题。

1、地址设置IO   A0/A1/A2 三个地址设置端口能不能用单片机的IO口来进行控制,还是说一定要接VCC或者GND?(前期硬件设计的时候,A0-A3直接接的单片机IO口)

2、有没有详细的TCA9548A芯片的配置步奏。谢谢。

  • 1、地址设置IO   A0/A1/A2 三个地址设置端口能不能用单片机的IO口来进行控制,还是说一定要接VCC或者GND?

    A: IO控制 可以的,A0~A2一共8种不同的逻辑电平选择,从而决定了8个不同的I2C地址。

  • 2、有没有详细的TCA9548A芯片的配置步奏。谢谢。

    A;  可结合着芯片数据手册,参考下这款芯片的EVM user's guide:

    http://www.ti.com/lit/ug/slvua73/slvua73.pdf

  • 谢谢,调试中。

  • 调试了一天,数据手册都看了好几遍,调试成功了。其实A0-A2只是TCA9548A的地址,并不是实现IIC通道选通的地址。请大家详细看数据手册。

    在写TCA9548的地址后,再写入通道选择地址。

    官方电路设置A0A1A2到GND,并不是只能选中通道0,而是设置TCA9548A的地址为000,二通选择地址用IIC写入,(0x10 0x20等等)

    IIC的底层就不发图给大家了,配置步骤是这样的,我的A0A1A2都是高电平,所以地址为0XEE,写入第二个数据才是通道选择。

    串口打印4路IIC数据结果。终于出数据了。希望以后用TCA9548的工程师能够有个参考。

  • IIC_Start();//iic扩展芯片的时序

    IIC_Send_Byte(0XE0);

    IIC_Wait_Ack();

    IIC_Send_Byte(ox01);//通道0

    IIC_Wait_Ack();

    IIC_Stop();

    delay_ms(10);

    IIC_Start();//iic芯片的时序

    IIC_Send_Byte(0X58);

    IIC_Wait_Ack();

    IIC_Send_Byte(0x00);

    IIC_Wait_Ack();

    IIC_Send_Byte(DataToWrite);

    IIC_Wait_Ack();

    IIC_Stop();

    delay_ms(10);
    大神,你好,我的驱动没成功,您帮忙看看呗,有啥问题??