打印

I2C器件的读取问题

[复制链接]
1114|9
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
waiter|  楼主 | 2016-8-3 08:22 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
最近项目遇到一个问题,涉及I2C EEPROM的读操作。
有两个产品,一个Rohm的芯片,一个24LC256,它们在读操作时存在一点差异:先看LC256的说明:


再看Rohm的说明:

在Rohm的说明中,明确说明最后一个字节之后,STOP之前,必须给器件发一个SCL周期的高电平。
但是在LC256中,英语说的是“The master will not acknowledge the transfer, but does generate a Stop condition and the 24XX256 discontinues transmission ”,然后图中给的“NO ACK”,但是又给了一个“高电平”的示意?
这里应该是理解为不用这个ACK时钟周期,直接发STOP? 还是需要这个ACK时钟周期,但是需要给器件发SDA高电平,也就是NACK?  (这个“No ACK”,难道就是NACK?)

我是菜鸟,哪位用过的大虾,给指导指导?
现在的问题是,以前我的设计都是针对LC256的时序的,也就是最后一个字节接收后,HOST这端直接就发了STOP。
但是这种方式,在读Rohm芯片时,就时好时坏。谢谢!!

相关帖子

沙发
玄德| | 2016-8-3 09:35 | 只看该作者

ACK,是指接收并识别对方发送的ACK信号(低电平);
No ACK,是根本不理会对方,强行发送高电平。

使用特权

评论回复
评论
waiter 2016-8-4 15:31 回复TA
嗯,谢谢! 
板凳
aozima| | 2016-8-3 10:37 | 只看该作者
反正都最后一个字节,是否ACK无所谓了。

使用特权

评论回复
地板
玄德| | 2016-8-3 10:55 | 只看该作者
aozima 发表于 2016-8-3 10:37
反正都最后一个字节,是否ACK无所谓了。


不能这么说。

使用特权

评论回复
5
waiter|  楼主 | 2016-8-4 15:37 | 只看该作者
感谢两位。这两天在定位这个问题,现在定位到了。问题出在Read时,“START-0xA0-地址字节-字节字节”之后,有个RE-START,RE-START之前的SCL低电平脉冲宽度太小,只有160ns。因为是用FPGA控制的,所以逐次增加这个地方的间隔,增加到 220ns时,就都没有任何问题了。 仔细看了一下几家芯片的手册,对SCL的低电平宽度都有要求,有些器件要求4.7us,所以160ns实在太小。各家芯片内部的裕量不同,所以同一个设计在Rohm芯片上就不行;在24LC256上就OK。
因为我们用的电压是3.3V,所以24LC256没有问题,根据我的分析,如果用2.5V以下,估计LC256也会有问题。
同时这个实验也说明,在读的最后一个字节,之后直接发STOP也是可以的,至少目前验证的两家芯片都没有问题。
但是Xuander说得对,还是应该按照手册规定的来。所以我们的设计加上NACK了,然后再发STOP结束读操作。

使用特权

评论回复
6
waiter|  楼主 | 2016-8-5 11:29 | 只看该作者
本帖最后由 waiter 于 2016-8-5 16:19 编辑

自己再补充一点,后来进行过一系列定位,发现如下问题:
1,如果把最后一个字节发送结束后,修改为发送NACK,而不是直接发STOP,那么在依然存在SCL较窄低脉冲的错误情况下,从Rohm的芯片读整个芯片,同样会读不出来数据,但是这个读操作,会把从起始地址开始的第一个page擦除(或者说是写入了全F)
2,但是第一个字节发送结束后,直接发送STOP(然后再有一个SCL的上升沿),这种情况下,即使存在SCL较窄低脉冲,虽然读Rohm芯片读不出来数据,但是不会改写芯片内容。

使用特权

评论回复
7
玄德| | 2016-8-5 11:40 | 只看该作者

字节。。。直接?

使用特权

评论回复
8
waiter|  楼主 | 2016-8-5 16:20 | 只看该作者
玄德 发表于 2016-8-5 11:40
字节。。。直接?

sorry,笔误,改过来了。

使用特权

评论回复
9
waiter|  楼主 | 2016-8-5 16:58 | 只看该作者
上个图说明这个测试结果吧,怪怪的....
https://bbs.21ic.com/forum.php?mod=attachment&aid=NzA3OTg4fDJmYzUzNTdiN2E0ZTRiZmU1ZTRjYmNiNDFlNDYyNTMyfDE3MzI2NjU1NDk%3D&request=yes&_f=.png

final_stop_orNACK_effect.png (147.07 KB )

final_stop_orNACK_effect.png

使用特权

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

本版积分规则

24

主题

187

帖子

2

粉丝