普中开源电子分享网

 找回密码
 立即注册
搜索
查看: 5868|回复: 2

IIC

 关闭 [复制链接]

139

主题

382

帖子

1531

积分

金牌会员

Rank: 6Rank: 6

积分
1531
发表于 2015-9-9 11:12:11 | 显示全部楼层 |阅读模式
1.IIC总线空闲的时候,SDA和SCL都为高电平,所以硬件电路中一般在IIC两根总线上各接一个电阻后再接VCC

时序图:



总线中的时序需要满足,比如SCL中提到的T_low,T_high。IIC总线速度在400KHZ以下,如果不给这个时间的话就可能超过400KHz了,也可以通过调整这几个时间去调整IIC通信的速度。
        SDA一般只有在SCL位低电平的时候才能变化,因为起始,停止信号是在SCL为高的时候SDA发生变化,为了区别,所以一般在写入/读出数据时只能在SCL为低时SDA发生变化。这点在编程的时候要特备注意。
       3.在用IIC总线向AT24C02写入一字节或读取一字节数据时需要知道什么时候在SDA总线上写入一个位或者什么时候从SDA总线上去读取一个位,有资料说是在SCL的上升沿才能将数据写入AT24C02中,在SCL的下降沿才能从 AT24C02 中读出数据。那就是在写入数据时就是要先改变SDA的值再去制造一个SCL的上升沿,需要在SCL的下降沿后从SDA总线上去读取数据。先后顺序必须把握好。
       4.重点想说的就是应答信号和非应答信号。在这块我吃过很多亏。
            应答信号分为主机应答 和从机应答 ,这两者有着很大的区别。主机应答是在主机从从机中读取数据时每次读取完一个字节的数据后主机给从机的一个应答信号,表示主机已收到数据了。而从机应答是指主机给从机发送数据时从机给主机的应答,给一个应答就代表从机已经收到了数据,为主机接下来的工作做个判断。主机在核查从机的应答信号的时候,必须先将SDA总线拉高,释放总线。
            非应答信号是主机给从机的,当读取完一字节数据以后,主机不再去读取数据就给从机一个非应答信号,接着一个停止信号,直接给停止信号也是可以结束此次读操作,但是会对后面的操作带来影响。所以还是不套图省事,养成好的习惯,非应答信号在需要的时候必须给。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

1

主题

3

帖子

17

积分

新手上路

Rank: 1

积分
17
发表于 2016-2-11 19:33:17 | 显示全部楼层
谢谢分享                       
回复 支持 反对

使用道具 举报

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

本版积分规则

关闭

站长推荐上一条 /1 下一条

Archiver|手机版|小黑屋|普中开源电子分享网 粤ICP备16123577号-2

GMT+8, 2024-5-10 23:36 , Processed in 0.084559 second(s), 31 queries .

Powered by 论坛搭建 X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表