网站首页
IC库存
IC展台
电子资讯
技术资料
PDF文档
我的博客
IC72论坛
ic72 logo
资料首页最新产品 技术参数 电路图 设计应用 解决方案 代理商查询 IC替换 IC厂商 电子辞典
关键字: 技术文章 PDF资料 IC价格 电路图 代理商查询 IC替换 IC厂商 电子辞典

I2C读写教训经验分享

我是一个月之前才开始接触到I2C协议,由于以前以前没有用过,在项目中曾倍受折磨,从而浪费了不少宝贵的时间。我当时主要是因为对I2C读写确认信号的认识存在很大的误区,现在把自己的经验教训写出来与大家讨论。在次我只发表对I2C确认信号的看法,至于它的一整套时序就不多罗嗦了。

1) MASTER向SLAVE发送数据:
MASTER没向SLAVE端发送8位数据后,就会将SDA置1,等待SLAVE端的确认;SLAVE端如果正确接受到数据,就会自动将SDA置0。我们程序员所能做的只能是检测确认信号,即每发送完8位数据后就检测一次SDA的状态,如果是0,则让程序继续往下执行,如果是1则强迫MASTER将刚才的8位数据再发送一遍;当然,如果SDA一直是1,也就是SLAVE一直未能正确接受到数据,我们也不能一直让MASTER反复发送,要做TIMEOUT处理,以防系统死机!

2) MASTER从SLAVE读取数据:
MASTER从SLAVE端读取数据,情况与发送数据有所区别,在读到最后8位数据时,要将SDA置1,也就是做UNACK动作,让系统知道读取数据到此结束;这个置1动作由程序员来做,而不是MASTER本身,因为数据读到哪里结束,只有我们程序员知道!

3) 说明:MASTER 指主控制端,在一般系统中就是我们常说的单片机了;SLAVE是指具备I2C协议的专用IC,比如ATMEL的24系列(24C16、14C32等)和PHILPS的SAA711X系列(VIDEO DECODER)。

热门搜索:2838283 TLP1008TEL TLP74RB LED24-C4 01M1001JF 2866352 SUPER6OMNI B 4SPDX 01C1001JF BT05-F250H-03 N060-002 LED12-C2 TLP606B 01B5001JF TLP712B PS4816 TLP725 2839224 UL24RA-15 2838322 8300SB2-LF TLM615SA 2838319 2839376 2920120
COPYRIGHT:(1998-2010) IC72 达普IC芯片交易网
客户服务:service@IC72.com 库存上载:IC72@IC72.com
(北京)联系方式: 在线QQ咨询:点击这里给我发消息 联系电话:010-82614113 传真:010-82614123
京ICP备06008810号-21 京公网安备 11010802032910 号 企业资质