打印

请教个I2C总线的基本问题

[复制链接]
1217|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个寄存器开始访问

使用特权

评论回复
5
dirtwillfly| | 2013-2-23 21:37 | 只看该作者
楼主自己把问题解决了?赞一个。天助自助者!

使用特权

评论回复
6
njp-1@qq.com| | 2013-2-24 10:46 | 只看该作者
建议看看I2C简明协议  掌握I2C协议数据的传输

使用特权

评论回复
7
airwill| | 2013-2-24 14:41 | 只看该作者
I2C 总线协议并没有规定访问从机寄存器的具体方法.
所以, 应该看具体从机芯片的资料, 来确定如何访问.

使用特权

评论回复
8
jlass| | 2013-2-25 10:21 | 只看该作者
只能说楼主理解了ISL1208的访问机制

使用特权

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

本版积分规则

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

296

主题

635

帖子

3

粉丝