贴一个I2C的流程图给新手们

[复制链接]
3924|9
 楼主| aceice 发表于 2008-10-26 21:15 | 显示全部楼层 |阅读模式
最近学习匠人的帖子,感触很多~不过我这个也是照着已经写好的补的流程图。以前很少画流程图的,基本上都是在脑海里勾勒,最多是大范围功能上画个草图,还希望高手们指点一下。<br />部分截图<br /><img src="https://bbs.21ic.com/upfiles/img/200712/20071211212426167.jpg"><br />全版本下载地址<br /><a href="https://bbs.21ic.com/upfiles/img/200712/2007121121226806.pdf" target=_blank>https://bbs.21ic.com/upfiles/img/200712/2007121121226806.pdf</a><br />-----------------------------------------------------------<br />响应921的号召,补充一些东西。<br />补充截图<br /><img src="https://bbs.21ic.com/upfiles/img/200712/20071212104721959.jpg"><br />PDF下载<br /><a href="https://bbs.21ic.com/upfiles/img/200712/20071212104636931.pdf" target=_blank>https://bbs.21ic.com/upfiles/img/200712/20071212104636931.pdf</a><br />
iC921 发表于 2008-10-27 01:07 | 显示全部楼层

支持楼的学习精神

“帖”应该为“贴”<br /><br />改正并增加一点心得就可以发裤子了,呵呵~
 楼主| aceice 发表于 2008-10-27 09:23 | 显示全部楼层

啥心得?其实I2C这个东西在21IC上炒了很久了,基本属于冷饭

等会我把一些要点做个图,做个补充吧,为了裤子~穷人啊!
一从陶令 发表于 2008-10-27 12:22 | 显示全部楼层

这种I2C流图是I2C调试中出现问题的最主要原因

这种I2C流图是实际设计中出现问题的最主要原因!抱歉我说的比较实在,原因如下:<br />I2C是直接控制硬件的接口,它必须充分地考虑到不同I2C元件的时序关系,比如:setup/hold/bus&nbsp;free时间等等。在一个8位的单片机上运行,可能程序没有任何问题;但如果移植到POWERPC,或者其它高速CPU上运行,这些时序关系可不一定能满足。<br /><br />举个例子:很多I2C器件要求连续两次访问之间间隔(bus&nbsp;free&nbsp;time)不小于4.7uS,请问当32位的CPU高速运行时,谁来保证这个参数?<br /><br />再举个例子:在采样SDA上的NO-ACK时,由于上拉电阻和负载电容的充放电延迟,导致程序中采样时间(从释放SDA到读入SDA值地时间间隔)必须大于RC常数这个量级,否则导致误采样,请问对不同速度的CPU又该如何保证?<br /><br />结论:驱动级的软件设计应充分理解硬件结构,否则很可能出大问题,即使简单如I2C也是如此!仅供参考
 楼主| aceice 发表于 2008-10-27 12:31 | 显示全部楼层

呵呵,谢谢楼上指正

流程图不等同于最后的程序,实际的程序肯定是有很多细节的,包括延时,包括数据线采样等。只是很少做流程图,所以这一些都省略掉了。只列举出基本的时序。<br />抛砖引玉,还请更多高手指点
iC921 发表于 2008-10-27 19:19 | 显示全部楼层

所谓心得不是什么太高的要求

比如你看明白了什么,原来不明白什么现在明白了,如何理解的,讲出来就是了。
程序匠人 发表于 2008-10-29 08:54 | 显示全部楼层

这种串行通讯类的内容,最好的表现形式就是时序图

而不是流程图
 楼主| aceice 发表于 2008-10-29 12:29 | 显示全部楼层

有些小细节的东西,PDF上有时候都是小字在下面标注

每次都会被这种东西害个半死
acqua_23 发表于 2008-10-31 15:24 | 显示全部楼层

学习了

感性的理解一下&nbsp;<br />
您需要登录后才可以回帖 登录 | 注册

本版积分规则

374

主题

2182

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部