I2C芯片(24c01)将全部地址都检查一次的方法,求教

来源:百度知道 编辑:UC知道 时间:2024/07/07 16:35:38
请教:I2C芯片全部地址都检查一次的方法,全部写0x55,再读全部数据,检查是不是都是0x55,来判断I2C芯片是否出错。
要求:要求全部操作时间不能太长(最多1秒钟);

对芯片资料看了又看了,好像是有个功能的,不过就是搞不懂,希望能赐教了啊,提供的方案可行的话,再加100分,谢谢。分数不多,交个朋友吧。
谢谢kaloshan,不过代码中忽略了读写I2C芯片的指令,也忽略了读写的时间。请再次帮忙看看哦。

谢谢szy1_119:用你方式能在1s内完成所有操作,I2C是一个一个bit读写的,并且都要有规定的时间的。由于产品的要求比较高,所以还是需要这么进行测试的。

不知道你用的是哪家的eeprom,因为这读写规则完全由芯片本身功能定,我没使用过这种带有类似初始化功能的芯片。

我看了下Microchip的,所提供的最大写入量是页写入,也即在发送一字节数据后不会发停止条件,会一直发送数据发完一页后停止。这样可以提高速度。
Microchip的1k容量芯片页大小是16字节那么也就是有64页。
因此在写时你可以以页的方式写,从0地址开始分页,0到63页,每页16字节数据,循环64次。
在读时,Microchip的芯片支持连续读,就是给个地址可以一直读到尾,那么你可以给首地址然后一直等到读出1k数据,结束。

1秒中软件可以执行上万条指令.
如果硬件不支持,就软件做吧.
char *p;
unsigned char result;
p = i2cadress;

for(i=0;i<len;i++)
{
p[i] = 0x55;
}
for(i=0;i<len;i++)
{
result = p[i];
if (result != 0x55)
{
return 0;
}

}