各位大神请教一下,为什么从eeprom中读取的数全是255

各位大神请教一下,为什么从eeprom中读取的数全是255

此问题已被解答
All Replies
  • 秀才53分

    新的芯片选择的是24AA1025,写入的数据是一组随机数,读出的数据却发生了变化,全部都是255或者是65535。之前在24c01上面可以正常读写,为什么在新的芯片上就不可以呢?GPIO引脚检查了没问题,时钟信号经过PLL倍频为200Mhz。power、voltage、current数组是准备往eeprom里面写的数,读出来存到power1、voltage1、current1里面。

  • 榜眼21511分

    您使用的哪个芯片?

    是跑的TI的例程吗?

  • 秀才53分

    之前在教育板上用的是24C01芯片,程序是自己在TI例程基础上修改的,可以正常读写eeprom里面的数据;现在换成课题组中的控制板,用的eeprom芯片是24AA1025,写入的是是个随机数组,读出的却全部都是255或者65535,和写入的不相符,怀疑是不是没有正常写入。下面的程贴的是主程序和I2C.C的源文件,麻烦大神帮忙看下,谢谢!1325.Desktop.rar

  • 秀才925分

    没有办法太多的帮你,但是建议先用逻辑分析仪或者示波器先看看IIC是否正常(有应答信号)。再检查写入数据的通信过程是否正确等内容。

  • 状元38006分

    如果以前EEPROM被正确读写过  读出全FF 那就说明芯片从来没有被写入过

    如果使用过 那就是目前代码只能擦出 没能写入 

    最大的可能是你的时序有问题  EEPROM没有任何响应

    TI的忠诚粉丝!

  • 秀才53分

    谢谢提醒,问题找到了,正如你所说的,就是时序的问题。因为24C01芯片的容量比较小,只需要写入一个八位数据即可确定地址,地址后面紧跟着是数据;而24AA1025芯片容量较大,需要两个八位数据来确定地址,之后再接上数据。我从24C01芯片跟换为24AA0125芯片后,还是按一个八位数据来确定地址,自然也就无法正常读取数据了。

  • 状元38006分

    感谢分享

    TI的忠诚粉丝!