I2C关于读写控制位

*1、I2C协议简介*
2、空闲开始/应答/结束信号
2.1空闲
I2C总线总线的SDA和SCL两条信号线同时处于高电平时,规定为总线的空闲状态。此时各个器件的输出级场效应管均处在截止状态,即释放总线,由两条信号线各自的上拉电阻把电平拉高。
2.2 开始和结束
开始信号:SCL为高电平时,SDA由高电平向低电平跳变,开始传送数据。
结束信号:SCL为高电平时,SDA由低电平向高电平跳变,结束传送数据。

2.3 应答
发送方在发送完8bit数据后,在第9个时钟期间释放数据线,等待接收方的应答信号。接收方此时应给出应答(ACK)或非应答信号(NAK),SCL被拉低表示为应答信号,SCL置高为NAK信号。注意应答信号由接收方发出(可能为主,也可能为从,主从和发送接收不要混淆)。接收器在第9个时钟脉冲之前的低电平期间将SDA线拉低,并且确保在该时钟的高电平期间为稳定的低电平。 如果接收器是主控器,则在它收到最后一个字节后,发送一个NACK信号,以通知被控发送器结束数据发送,并释放SDA线,以便主控接收器发送一个停止信号P。

3、I2C读写
不论是读还是写,都是由主设备发起和结束的。也就是由主设备产生开始和结束条件。I2C设备地址为8bit,其中最低位为读写位,0为写,1为读。实际地址位为7bit。
3.1 写过程
可以总结为以下过程:
1、发送起始位
2、发送设备地址信息(写)
4、发送寄存器信息
5、发送数据信息
6、发送停止位
上述过程省略了等待应答,每发送一个字节数据都会等待应答。

这里写图片描述
3.2 读过程
读过程相对来讲会复杂一些,需要先写(写要读的寄存器)再读。并且读的时候由主设备发送ACK
1、发送起始位
2、发送设备地址信息(写)
4、发送要读的寄存器信息
5、重新开始,restart
6、发送设备地址信息(读)
7、读取数据
8、接收完毕,发送NAK
9、发送停止信号

这里写图片描述

读过程的小结
读过程可以理解先发送一个地址,这个地址不能是只能是地址,最后一位空着,为0。即相当于写。是相当于写地址。但是可以理解它为纯地址,切记最低位不能是1.即地址不能是读地址。
然后再发送读地址进行读。

  • 10
    点赞
  • 41
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
TC397是一款微控制器,它支持I2C(Inter-Integrated Circuit)总线通信协议,可以进行异步的I2C操作。 在TC397上配置I2C异步操作需要以下步骤: 1.配置I2C控制器:首先,我们需要确定I2C控制器的工作模式和时钟频率。可以使用TC397的寄存器来配置这些参数。例如,可以设置I2C控制器在主模式下工作,并且选择适当的时钟频率。 2.设置I2C总线地址:在进行I2C通信之前,我们需要将设备的地址发送给I2C总线。这个地址用来识别我们要的设备。可以使用TC397的寄存器来设置I2C总线地址。 3.发送起始位和设备地址:通过控制I2C总线的SCL(时钟)和SDA(数据)线,将起始位和设备地址发送给目标设备。起始位表示一次新的通信开始,设备地址用来指示我们要的设备。 4.发送数据:在确定了通信的起始位和设备地址后,可以通过I2C总线将要发送的数据传输给目标设备。可以使用TC397的寄存器来加载要发送的数据。 5.接收数据:在发送完数据后,目标设备可能会响应并发送一些数据回来。可以使用TC397的寄存器来接收来自目标设备的数据。 6.结束通信:当所有的数据传输完成后,可以通过控制I2C总线的SCL和SDA线发送停止位,表示本次通信结束。 通过以上这些步骤,就可以在TC397上成功配置和进行I2C异步操作。注意,具体的配置步骤和使用方式可能会因芯片型号和软件环境而有所不同。因此,在实际应用中,需要参考TC397的技术手册和软件开发工具来正确配置和使用I2C异步功能。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值