请教个I2C总线的基本问题

[复制链接]
2010|7
 楼主| ittechbay 发表于 2013-2-23 12:11 | 显示全部楼层 |阅读模式
I2C主设备端与从设备端通信方式是,主端先发生从端的地址,然后发送数据。
我看到好多从设备芯片(比如RTC芯片ISL12026,温度检测芯片LM75等)内部有几个寄存器,我对主设备怎么访问从设备的特定寄存器感到疑惑。
看了看RTC和LM75的手册,又看了看uboot代码,我感觉是主端想访问某个从设备的某个特定寄存器时,先发送从设备地址+寄存器号,(这个寄存器是在数据部分)
飞鹰嵌入式 发表于 2013-2-23 15:14 | 显示全部楼层
寄存器是跟着从设备地址后面的,数据是跟着寄存器后面的,有些芯片可能不说是寄存器,而说是命令,其实差不多的,为了避免飞利浦追究
 楼主| ittechbay 发表于 2013-2-23 21:05 | 显示全部楼层
楼上说的不对吧,可能是我理解错了,
我看了下RTC的芯片手册(ISL1208),终于弄明白了。
主设备在访问RTC某个寄存器时,在第一次通信过程中的数据部分传输送寄存器号,在随后的通信过程中,数据部分传输寄存器内容
比如主设备读RTC的通信过程是是:S + rtc地址 + W + RTC寄存器地址 + SR + rtc地址 + 接收前面指定的RTC寄存器内容
 楼主| ittechbay 发表于 2013-2-23 21:17 | 显示全部楼层
好像还有种通信方式,也就是最常用的,就是random方式,访问寄存器前不用指定寄存器地址,直接访问,默认从第0个寄存器开始访问
dirtwillfly 发表于 2013-2-23 21:37 | 显示全部楼层
楼主自己把问题解决了?赞一个。天助自助者!
njp-1@qq.com 发表于 2013-2-24 10:46 | 显示全部楼层
建议看看I2C简明协议  掌握I2C协议数据的传输
airwill 发表于 2013-2-24 14:41 | 显示全部楼层
I2C 总线协议并没有规定访问从机寄存器的具体方法.
所以, 应该看具体从机芯片的资料, 来确定如何访问.
jlass 发表于 2013-2-25 10:21 | 显示全部楼层
只能说楼主理解了ISL1208的访问机制
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:明天进步一点点

296

主题

635

帖子

3

粉丝
快速回复 在线客服 返回列表 返回顶部