原创 I2C简解

2010-10-30 13:19 1456 8 8 分类: 通信

(转移原来的博客文章,这篇来自2010年07月20日)



简单来讲,I2C是一根数据线一根时钟线的半双工串行通信协议,(可以再加一根片选线),I2C设备的SCL和SDA输入线默认被上拉电阻拉到H
开启通信:SCL=H时SDA给一个下降沿(说明startbit=0),即开始通信
结束通信:SCL=H时SDA给一个上升沿,(说明stopbit=1),即结束通信
通信中只在SCL=L时SDA可以有变化,从机在SCL上升沿时读入数据


从机每读到8bit数据在第九个CLK的上升沿将SDA拉低,维持一个CLK,作为应答信号表示一个字节接收完毕。


主机对从机的选择:发送7bit地址+1bitR/W,地址对应从机会在第九CLK给应答信号,并开始按指定的R/W,执行接下来的任务(写命令或数据,读数据或状态)


对DAC5571来说,只允许两个同时连在总线上,7位地址为100110A 加1bitR/W=0,(注意左移出即先出MSB),两个DAC5571的A要分别为0和1,这个是DAC5571上的A0脚接VCC还是GND决定的。另外处了100110A 这个地址,5571还应答一个共同的地址1001000,用来同时对多机通信

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
EE直播间
更多
我要评论
0
8
关闭 站长推荐上一条 /3 下一条