打印

I2C控制ZLG7290延时问题

[复制链接]
2231|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
jiyiche|  楼主 | 2009-4-3 12:48 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
因为datasheet上写传输率在20k~32k之间,因此我采用写EEPROM的程序,只是改变其中的延时程序而已。
原来EEPROM中的延时程序是:
   _nop_();_nop_();_nop_();_nop()_;
我将其改为:
   for(i=0;i<=39;i++)
         _nop_();//1us*40=40us,25kHZ


为什么zlg7290有时有ack有时没,而同一个I2C总线上的EEPROM 24c02就一直可以有ack信号。
换过芯片,应该不是芯片问题。
估计是延时有问题,麻烦各位大侠看看为什么这样延时不行?谢谢了

相关帖子

沙发
hotpower| | 2009-4-3 12:50 | 只看该作者

晕~~~搞这么长延时干什么~~~

使用特权

评论回复
板凳
lpf336| | 2009-4-3 13:12 | 只看该作者

我怎么就没看到20k的下限?

使用特权

评论回复
地板
jiyiche|  楼主 | 2009-4-3 13:17 | 只看该作者

延时太长也不行吗?

延时太长了吗?那大概要循环几次?

使用特权

评论回复
5
电脑圆圆| | 2009-4-3 16:23 | 只看该作者

这个时间什么算的

for(i=0;i<=39;i++)
         _nop_();//1us*40=40us,25kHZ

使用特权

评论回复
6
jiyiche|  楼主 | 2009-4-3 18:09 | 只看该作者

一句_NOP_()是1us吗?

一句_NOP_()1us的话,40句_NOP_()就40us吧。是这样吗?

使用特权

评论回复
7
jiyiche|  楼主 | 2009-4-4 00:06 | 只看该作者

高手帮帮忙

使用特权

评论回复
8
电脑圆圆| | 2009-4-5 20:52 | 只看该作者

照你这么说

i++和判断i<=39也需要几us,所以这段延迟至少是40us的3倍以上

使用特权

评论回复
9
jiyiche|  楼主 | 2009-4-5 21:27 | 只看该作者

对哦

呵呵,那如果要延时40us要怎么写呢?

使用特权

评论回复
10
zusen| | 2009-4-5 22:02 | 只看该作者

问老周那例程

使用特权

评论回复
11
大漠孤烟| | 2009-4-5 22:12 | 只看该作者

很多芯片是达不到他们标称的速率

以前用过一片LED8位驱动的,SPI接口,它就是快不了,快了干脆不干活,叫你拿它没办法,换料呗

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

176

主题

484

帖子

0

粉丝