蓝天-彭 发表于 2014-9-25 11:22:27

I2C基础

一 I2C设计概念,I2C协议。
对于cubieboard来说:
SCL:时钟线,时钟由CPU(主端)提供
SDA:数据线,可以是输入或输出。

问: I2C总线可以连接很多设备,cpu如何进行区分?
设备地址:唯一性。一般都芯片厂家定义。由芯片手册和硬件原理图共同决定。
http://www.alldatasheet.com/

EEPROM:AT24C04
1010000 = 0x50
一般最后一位为读写位
读操作:0x50 << 1 | 1    10100001
写操作:0x50 << 1 | 1    10100000

LM77:10010A1A0


START信号
STOP信号
ACK信号,反馈信号。应答信号为低电平时,
规定为有效应答位


二 芯片手册看时序。
读写操作要根据芯片手册来进行。

数据操作流程一定要看芯片手册细节:
以AT24C04为例子:
随机写一个数据到某一个地址:
1CPU发射起始信号
2. CPU发送设备地址 + 写位(0)
3 CPU接收到ACK
4 CPU发送要写的芯片上的地址。
5 CPU接收到 ACK
6 CPU 发送数据
7 CPU接受ACK
8 CPU发送STOP信号

随机读:
1CPU发射起始信号
2. CPU发送设备地址 + 写位(0)
3 CPU接收到ACK
4 CPU发送要写的芯片上的地址。
5 CPU接收到 ACK
6 CPU发射起始信号
7CPU发送设备地址 + 读写位(1)
7 NO   ACK
8 CPU发送STOP信号



                                                                  
      

firmit 发表于 2014-9-25 12:12:45

谢谢分享:):)
页: [1]
查看完整版本: I2C基础