当前位置: 首页 > article >正文

TCA9555芯片手册解读(6)

接前一篇文章:TCA9555芯片手册解读(5)

 

4dd96f1d14274e7b9eafdc4b968fdd19.png

二、详述

7. 上电复位

当电源(从0V)施加到VCC时,内部通电复位将TCA9555保持在复位状态,直到VCC达到VPOR。此时,重启条件被释放,TCA9555寄存器和I2C/SMBus状态机初始化为默认状态。之后,VCC必须降低到0.2V以下,然后回到工作电压进行上电—复位循环。

8. 中断(/INT)输出

在输入模式下,端口输入的任何上升沿或下降沿都会产生中断。经过时间tiv后,信号/INT有效。

当端口上的数据改变为原始设置时,可以重置中断电路。数据从产生中断的端口或在一个停止事件中被读取。

在读取模式下,重置发生在SCL信号下降沿后的确认(ACK)位或不确认(NACK)位。由于在该脉冲期间重置中断,在ACK或NACK时钟脉冲期间发生的中断可能会丢失(或非常短)。复位后I/O的每次变化都会被检测到,并作为/INT传输。

从另一设备读取或向另一设备写入不会影响中断电路,配置为输出的引脚也不会导致中断。

将I/O从输出更改为输入可能会导致错误中断,如果引脚的状态与输入端口寄存器的内容不匹配。因为每个8位端口都是独立读取的,所以端口0引起的中断不会被端口1的读取清除,反之亦然。

/INT具有开漏结构,需要一个上拉电阻器连接到VCC。

9. 总线传输

数据通过写和读命令在主设备和TCA9555之间交换。

(1)写

写时序如下图所示:

8b265a8e4c0e488eaf108c8d6feede13.png

1)通过发送设备地址并将最低有效位设置为逻辑0(设备地址见图4),数据被传输到TCA9555;

2)命令字节在地址之后发送,并确定哪个寄存器接收命令字节后面的数据(TCA9555中的8个寄存器被配置为4个寄存器对。这4对分别是输入端口、输出端口、极性反转端口和配置端口);

3)在将数据发送到一个寄存器后,下一个数据字节被发送到该对中的另一个寄存器(见图6和图7)。例如,如果第一个字节被发送到输出端口(register 3),则下一个字节被存储在输出端口0(register 2);

4)在一次写入传输中发送的数据字节数没有限制。这样,每个8位寄存器都可以独立于其它寄存器进行更新。

(2)读

读时序如下图所示:

94f1a69c07ea487fb5d05ee46e86d0db.png

56568c2d4a4f4ae1bdc46176476c5deb.png

9bc8cc8bea2443e8af0a2896813ed981.png

1)总线主控器首先必须发送TCA9555的地址,其中最低有效位设置为逻辑0(设备地址见图4);

2)命令字节位于地址之后,用于确定访问哪个寄存器;

3)发送重新启动(restart)信号;

4)再次发送设备地址。但这次,最低有效位被设置为逻辑1;

5)然后,TCA9555发送由命令字节定义的寄存器中的数据(见图8至图10);

6)重新启动时,命令字节定义的寄存器值与重新启动时访问的寄存器匹配。例如,如果命令字节在重新启动之前引用输入端口1,并且在读取输入端口0时重新启动,则存储的命令字节将更改为引用输入端口0,原始命令字节已被遗忘。如果随后重新启动,则首先读取输入端口0。数据在ACK时钟脉冲的上升沿被时钟记录到寄存器中。在读取第一个字节之后,可以读取其它字节,但是
数据现在反映了该对中另一个寄存器中的信息。例如,如果读取了输入端口1,则下一个读取的字节是输入端口0。

数据在ACK时钟脉冲的上升沿被时钟记录到寄存器中。在一次读取传输中接收到的数据字节数没有限制,但当接收到最后一个字节时,总线主控器不得确认数据。

 

 


http://www.kler.cn/a/444037.html

相关文章:

  • Hadoop yarn安装
  • leetcode-128.最长连续序列-day14
  • MFC/C++学习系列之简单记录13
  • 常用的缓存技术都有哪些
  • 在Java虚拟机(JVM)中,方法可以分为虚方法和非虚方法。
  • LLaMA-Factory 单卡3080*2 deepspeed zero3 微调Qwen2.5-7B-Instruct
  • 2024年12月陪玩系统-仿东郊到家约玩系统是一种新兴的线上预约线下社交、陪伴系统分享-优雅草央千澈-附带搭建教程
  • upload-labs(1-19关)通关攻略
  • Vue零基础教程|从前端框架到GIS开发系列课程(六)组合式API
  • string
  • 【Web前端】Web API:构建Web应用核心
  • 6UCPCI板卡设计方案:8-基于双TMS320C6678 + XC7K420T的6U CPCI Express高速数据处理平台
  • docker拉取rabbitmq镜像安装延迟队列插件
  • 初学stm32 --- 系统时钟配置
  • 从零搭建CBAM、SENet、STN、transformer、mobile_vit、simple_vit、vit模型(Pytorch代码示例)
  • 多种机器学习模型预测房价
  • 力扣--LCR 129.字母迷宫
  • Go怎么做性能优化工具篇之pprof
  • C# 文件系统I/O操作--File类与FileInfo类
  • 【Tomcat】第三站:注解
  • 两款轻量级数据库SQLite 和 TinyDB,简单!实用!
  • thinkphp5验证码captcha无法显示
  • 字符串类算法
  • Connection lease request time out 问题分析
  • 基于java的CRM客户关系管理系统的设计与实现
  • 计算机必背单词——云计算和虚拟化