请教个I2C总线的基本问题
I2C主设备端与从设备端通信方式是,主端先发生从端的地址,然后发送数据。我看到好多从设备芯片(比如RTC芯片ISL12026,温度检测芯片LM75等)内部有几个寄存器,我对主设备怎么访问从设备的特定寄存器感到疑惑。
看了看RTC和LM75的手册,又看了看uboot代码,我感觉是主端想访问某个从设备的某个特定寄存器时,先发送从设备地址+寄存器号,(这个寄存器是在数据部分) 寄存器是跟着从设备地址后面的,数据是跟着寄存器后面的,有些芯片可能不说是寄存器,而说是命令,其实差不多的,为了避免飞利浦追究 楼上说的不对吧,可能是我理解错了,
我看了下RTC的芯片手册(ISL1208),终于弄明白了。
主设备在访问RTC某个寄存器时,在第一次通信过程中的数据部分传输送寄存器号,在随后的通信过程中,数据部分传输寄存器内容
比如主设备读RTC的通信过程是是:S + rtc地址 + W + RTC寄存器地址 + SR + rtc地址 + 接收前面指定的RTC寄存器内容 好像还有种通信方式,也就是最常用的,就是random方式,访问寄存器前不用指定寄存器地址,直接访问,默认从第0个寄存器开始访问 楼主自己把问题解决了?赞一个。天助自助者! 建议看看I2C简明协议掌握I2C协议数据的传输 I2C 总线协议并没有规定访问从机寄存器的具体方法.
所以, 应该看具体从机芯片的资料, 来确定如何访问. 只能说楼主理解了ISL1208的访问机制
页:
[1]