TCA9539 IO扩展芯片

1 TCA9539 IO扩展芯片简介

1.1 IO扩展芯片的作用

  • 当主控制器MCU的IO接口不够用,需要扩展出更多的IO接口,就需要用到扩展IO芯片。IO扩展芯片的选择也比较多,但原理、使用方法基本都一样。本文介绍2款IO扩展芯片:TCA6408-Q1和TCA9539-Q1, 两款芯片的原理的使用方法可以说完全相同,TCA6408芯片拥有8个IO扩展口,TCA9539芯片拥有16个IO扩展口,可以说是TCA6408的升级版。弄懂TCA9539芯片后,自然也就掌握了TCA6408芯片的使用方法,对其它TCA系列芯片的使用,也大致相同,因此本文介绍TCA9539的使用方法。

1.2 TCA9539-Q1 简介

  • TCA9539-Q1是一款24引脚器件,支持I2C总线(或SMBus协议),提供16位通用并行输入和输出(I /O)扩展,工作电源电压(VCC )范围为1.65V至3.6V,并且支持100kHz(I2C标准模式)和400kHz(I2C快速模式)两种时钟频率。
  • TCA9539-Q1通信I2C地址可以通过硬件引脚A0和A1配置,最多允许四个TCA9539-Q1器件位于同一I2C总线上。
  • 当端口状态发生变化时,TCA9539-Q1可在 INT 引脚上生成中断,告知主控MCU芯片端口发生了改变。
  • 可通过电源循环供电以生成上电复位,从而复位到默认状态;此外,TCA9539-Q1还具有一个硬件 RESET 引脚,可用于将器件复位为默认状态。

2 TCA9539 原理图介绍

2.1 TCA9539 原理图

  • 如下图所示,为TCA9539芯片的原理图:
    原理图

2.2 TCA9539管脚说明

  • 各个管脚介绍如下表:
PINI/O描述
INTO中断引脚
A1/A0I硬件I2C地址输入引脚
RESETI硬件 RESET 引脚
VCC-电源输入引脚
GND-电源地引脚
SCLII2C时钟线
SDAII2C数据线
P00 - P07I/OIO扩展管脚
P10 - P17I/OIO扩展管脚

2.3 TCA9539管脚详细描述

  1. 16个IO扩展管脚,由IO方向选择寄存器、输入端口寄存器、输出端口寄存器和极性反转(active-high或active-low)操作寄存器共8个8位寄存器控制。在上电时,I/O初始默认配置为输入,系统可以通过写入IO方向选择寄存器值来控制I/O管脚的输入或输出。
  2. 当配置为输入时,通过读取输入端口寄存器值,获取输入状态,因此输入端口寄存器可读不可写,没有默认值。读取的极性可以用极性反转寄存器进行反转。
  3. INT管脚可以连接到一个主控制器MCU的中断输入,当管脚配置成输入时,输入的状态与相应的输入端口寄存器状态不同时,开漏中断(INT)输出被激活,用于通知主控MCU输入状态已经改变,即发送一个中断信号,通知主控制器MCU输入状态发生了改变,主控MCU通过读取寄存器的值,即可判断具体那个端口发生了变化。
  4. 当配置为输出时,通过配置输出寄存器的值,控制输出管脚的拉高或者拉低。
  5. 在超时或其他不正确操作的情况下,主控制器MCU可以通过RESET输入重置芯片。开机复位后,寄存器置于默认状态并初始化I2C-SMBus状态机,在不断电的情况下通过RESET输入,可以达到重置初始化效果。
  6. 两个硬件引脚(A0和A1)用于编程和改变固定的I2C地址,并允许最多4个设备共享同一个I2C总线或SMBus。

3 TCA9539 寄存器介绍

3.1 I2C地址寄存器

地址
地址表
上图为IO扩展芯片的I2C访问地址寄存器,高5位为默认值无法更改,最后1位为执行的操作(读或写),1:读操作,0:写操作。另外2位通过硬件连接Vcc或GND来控制,如上表所示,连接Vcc表示输入为H,连接GND表示输入为L。因此该芯片的I2C地址共有4个,也就是为什么同一路I2C最多可以允许4个设备。

3.2 控制寄存器和命令字节

控制寄存器
命令表

  • 在成功确认地址字节之后,总线主机发送上表所示的命令字节,即访问寄存器的地址,该命令字节存储在TCA9539-Q1的控制寄存器中,如上图所示,前5位位默认值,后3位可选,命令字节只在写传输期间发送。当一个命令字节被发送成功后,被寻址的寄存器可以继续被访问。
  • 上表中POWER-UP DEFAULT展示了各寄存器的默认初始值,输入端口寄存器无初始值。

3.3 IO方向选择寄存器

IO

  • 寄存器Configuration Port 0(寄存器地址:0x06)和Configuration Port 1(寄存器地址:0x07)分别控制I0管脚P00-P07和P10-P17的方向,置1则为输入端口,置0为输出端口,默认为输入端口。
  • 当端口为输入时,输出端口寄存器将不起作用;同样端口为输出时,输入端口寄存器和极性反转寄存器不起作用。

3.4 输入端口寄存器

输入

  • 当IO方向选择寄存器写1时,对应IO端口为高阻态输入管脚,此时通过读取输入端口寄存器的数值,判断输入信号的状态。
  • 输入端口寄存器读取的极性高低值,与极性反转寄存器的配置的值有关,当极性反转寄存器端口写1,则进行极性反转,输入为高电平,读取的为0;当极性反转寄存器端口写0,极性不会反转,输入为高电平,读取值为1,输入低电平,读取为0。
  • 当端口输入信号发生变化后,通过INT管脚向主控制器MCU发送一个中断信号,告诉端口输入有变化了,此时读取端口的值和原来读取的值进行比较,则知道那个端口输入发生了变化。

3.5 输出端口寄存器

在这里插入图片描述

  • 当端口配置为输出时,端口寄存器的1或0则表示对应管脚的拉高或者拉低操作。
  • 输出端口寄存器的默认值为1,即拉高状态。

3.6 极性反转寄存器

在这里插入图片描述

  • 极性反转寄存器控制输入端口读取的值是否是输入极性的真实值,当极性反转寄存器端口写1,则将输入的极性进行反转。
  • 极性反转寄存器默认值为1,即进行极性反转。

4 I2C通信过程

4.1 写操作

读取
I2C通信的写操作步骤如上图所示:

  • 首先主设备发送准备信号start,I2C上的所有从设备做好接收准备
  • 接着主设备发出访问的从设备地址,发送1字节数据,前7位为访问地址,最后一位是将要进行操作,写操作该位为0。
  • 被访问的从设备收到呼叫消息后,发出ACK应答,从设备接收到应答后,接着发出1字节数据,告知要写入的寄存器地址。
  • 从设备收到寄存器地址后,同样做出ACK应答,主设备接收到应答后,发送要写入的数据,写入完成后从设备发出应答。
  • 最后主设备发送通信结束信号STOP,通信结束。

4.2 读操作

写
I2C通信的读操作步骤如上图所示:

  • 首先主设备发送准备信号start,I2C上的所有从设备做好接收准备
  • 接着主设备发出访问的从设备地址,发送1字节数据,此时任然发送的写操作。
  • 被访问的从设备收到呼叫消息后,发出ACK应答,从设备接收到应答后,接着发出1字节数据,告知要操作的寄存器地址。
  • 从设备收到寄存器地址后,同样做出ACK应答,主设备接收到应答后,重新发出准备信号start,然后重新发送访问从设备地址,此时最后一位的操作位为1,表示读操作。
  • 被访问的从设备收到消息后,发出ACK应答,主设备读取从设备寄存器中的1字节数据。
  • 读取完成后,发送NACK应答消息,最后主设备发送通信结束信号STOP,通信结束。

备注:

  1. ACK应答和NACK应答即SDK数据线的高低状态,ACK : SDA = Low,NACK : SDA = High。

感谢阅读 若有错误 敬请见谅 !!!


  • 15
    点赞
  • 112
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
IIC(Inter-Integrated Circuit)是一种串行通信协议,也被称为I2C(Inter-Integrated Circuit)。它是一种用于在集成电路之间进行通信的简单且高效的方式。IIC接口可以用于连接各种外部设备,包括IO扩展芯片。 在你提供的引用中,你选择了TI公司的TCA9535芯片作为IO扩展芯片,通过IIC接口来扩展16路IO接口。这个芯片可以通过IIC总线连接多个芯片,从而扩展更多的IO接口。 关于你提到的中断引脚一直输出低电平的问题,可能有以下几个原因: 1. 芯片选择错误:确保你使用的是TI公司的TCA9535芯片,而不是PCA9535芯片。这两个芯片虽然型号相似,但是在上电时有不同的问题。 2. 芯片损坏:检查芯片是否损坏或者连接是否正确。可以尝试更换芯片或者重新连接芯片来解决问题。 3. 电路设计问题:检查电路设计是否正确,包括电阻、电容等元件的数值和连接方式。确保电路设计符合TCA9535芯片的要求。 如果你怀疑买到了假芯片,可以通过以下方式来验证芯片的真伪: 1. 购买正品芯片:确保从可靠的渠道购买芯片,避免购买假冒伪劣产品。 2. 验证芯片标识:检查芯片上的标识是否与TI公司的TCA9535芯片一致,包括型号、批次号等信息。 3. 验证芯片功能:通过连接芯片并进行测试,验证芯片的功能是否符合TCA9535芯片的规格。 希望以上信息对你有帮助。如果你还有其他问题,请随时提问。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

园长QwQ

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值