一、测试环境
1.芯片:GD32F10x
2.EEPROM:BL24CM1A
3.SCL引脚:推完输出(硬件没上拉)
4.SDA引脚:浮空输入(硬件没上拉)
二、功能
1.使用IO模拟的方式,实现读写EEPROM;
三、问题描述
1.很久没有调试IIC(模拟),程序移植完成之后,进行校验时(固定地址读写数据),读到的数据一直时0.
四、排查
1.使用示波器查看,波形没有突变,高低电平时间大于EEPROM芯片数据手册提供的“最低高低电平保持时间”;
2.使用示波器查看,所有波形对应正确,在读的阶段,波形确实是低电平;
----结论:程序没有解析错误。
3.更换EEPROM硬件,示波器查看,波形没有变化;
------结论:EEPROM硬件正常。
五、确认问题
1.最终查看硬件原理图,同时配合PCB板,发现SCL、SDA引脚的上拉电阻没焊接;⊙﹏⊙∥
2.添加上拉电阻后,问题解决
六、额外:SDA配置为上拉输入
1.测试,在SCL、SDA引脚的上拉电阻不焊接,SDA配置为上拉输入时,同样可以读写正确;
2.但是通过示波器查看,读取数据时的SDA电平最高只有2.3v左右(没有拉到最高3.3v);为防止产生的风险,通过上拉来提高高电平;
六、代码
GD32_IIC(IO)_EEPROM.rar-其它文档类资源-CSDN下载