[学习笔记]

I2C的地址模式

[复制链接]
4799|4
手机看帖
扫描二维码
随时随地手机跟帖
wangjj19950516|  楼主 | 2021-6-10 17:13 | 显示全部楼层 |阅读模式
本帖最后由 wangjj19950516 于 2021-6-10 17:17 编辑

最近在学习I2C通信,发现有好几种地址模式,这里将学习到的分享给大家,还望指正。
I2C一般常用的有7位地址,8位地址,和10位地址,除此之外AC780X系列的芯片还支持7位范围地址,这个见的比较少,也不知道其他的芯片有没有这个范围地址功能。下面一一说明下这些不同的地址模式

一、7位地址模式
       在7位寻址过程中,从机地址在启动信号后的第一个字节开始传输。改字节的高7位为从机地址,最低位为读写位。
下图是从机地址为0X2C,总线上发送起始信号后,为7bit地址010 1100,最后一位为低电平,为主机写。从机接收到后会回一个应答位ACK。
dso_22.jpg

二、8位地址模式
      有些厂商提供的从机地址为“包含了读写位的8bit地址”。其实也是7bit地址加读写位组成8bit。
例如提供的写地址为0X92(1001 0010),读地址为0X93(1001 0011),其实去掉最后一位读写位之后,从机地址为0x49.

三、10位地址模式
     10位地址模式下,在发送10bit地址时,第一个字节是一个特殊的保留,来指示当前传输的是10bit地址。
第一个字节由固定序列(11110)+高2bit地址+R/W读写位组成,第二个字节为低8位地址
如下图,主机发送的10bit地址为0X156,在总线上第一个字节为(1111 0010),其中红色的为固定序列,蓝色的为读写位,绿色的才是高2位的地址
第二个字节为0X56,即为低8位地址。
dso_24.jpg

四、范围地址
     AC7801中有个从机范围地址,即接收到的地址在设定的范围内都可以被匹配成功。
捕获.JPG WeChat Image_20210610170013.png
上图中两个寄存器设定的地址范围,I2C_ADDR0寄存器的AD[6:0]即为正常从机地址;I2C_ADDR1中RMEN为从机的范围地址使能位,RAD[6:0]为范围地址的值。
当从机接收到的地址大于AD[6:0]并且小于等于RAD[6:0]的值时,会地址匹配成功
例如,当从机的AD[6:0]=0X20,RAD[6:0]=0X3F时。主机向地址为0X2C的从机发送数据,该从机会地址匹配成功并接收数据;如果主机向地址为0X20的从机发送数据,该从机就不能地址匹配成功。

使用特权

评论回复

相关帖子

yangxiaor520| | 2021-6-10 21:16 | 显示全部楼层
和你用得IIC设备有关系

使用特权

评论回复
chenqianqian| | 2021-6-11 08:03 | 显示全部楼层
不同厂家的片子都不一样

使用特权

评论回复
不同厂家的地址是不一样的。

使用特权

评论回复
kiwis66| | 2021-6-11 12:30 | 显示全部楼层
你说的是芯片手册上那个地址吧

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

24

主题

86

帖子

2

粉丝