ittechbay 发表于 2013-2-23 12:11

请教个I2C总线的基本问题

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的访问机制
页: [1]
查看完整版本: 请教个I2C总线的基本问题