CubieBoard博客-HomeCubieTech公司网站

cubie.cc CubieBoard中文论坛

 找回密码
 立即注册
搜索
热搜: unable
查看: 3415|回复: 1

I2C基础

[复制链接]

113

主题

1

好友

1万

积分

版主

Rank: 7Rank: 7Rank: 7

贡献
2467
金钱
5721
威望
2467
买家信用
卖家信用
积分
13584
发表于 2014-9-25 11:22:27 |显示全部楼层
一 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发射起始信号
7  CPU发送设备地址 + 读写位(1)
7 NO   ACK
8 CPU发送STOP信号



                                                                    
        
回复

使用道具 举报

0

主题

0

好友

219

积分

中级会员

Rank: 3Rank: 3

贡献
48
金钱
70
威望
48
买家信用
卖家信用
积分
219
发表于 2014-9-25 12:12:45 |显示全部楼层
谢谢分享
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

QQ|Archiver|手机版|邮件群发|cubie.cc---深刻的嵌入式技术和应用讨论中文社区 ( 粤ICP备13051116号-1  

GMT+8, 2019-10-24 00:14 , Processed in 0.020330 second(s), 6 queries , Apc On.

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc. | Style by Coxxs

回顶部