各位高手,请教我的F4模拟IIC读取eeprom为啥总是0xff?

2019-07-20 19:23发布

     之前做板子测试,用原子哥的例程,淘宝上天猫买的eeprom芯片AT24C128,可以正常写入和读取,程序也是原封不动用原子哥的程序。     然后再制版,买了一批e络盟上的atml AT24C128芯片,芯片上的刻字为ATMLH342 2DCM 8,查了ATML的Datasheet,也没问题,确实是ATML AT24C128,芯片因为是公司采购的,也肯定是正规e络盟的产品,正片。还是用原子的的程序,读写,只是芯片由原来天猫买的换成了e络盟的片子了,封装也一模一样,结果奇怪了,不知道是不能写入还是不能读取,在u8 AT24CXX_Check(void)中,无论读写哪个地址,写入数据,读出来都是0xff。而且不仅仅是一片的问题,e络盟上买的那几十片全都是这个问题。但是换成淘宝的片子又正常了,这个是什么情况啊??求点解..



友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
8条回答
shuaigew88
2019-07-21 17:30
软件模拟IIC时建议用GPIOx_ODR寄存器来至位和清除IO,如果单独用复位与至位寄存器来设置IO时特别是在IO状态切换时总线会出现干扰脉冲,非常短的脉冲但是会影响某些品牌的EEPROM不能正常工作,在以前的工作中就因为这个问题困扰了我很久,最后用逻辑分析仪抓捕总线时序时发现总线上出现很短的一个脉冲信号。

一周热门 更多>