51uwb.cn

 找回密码
 立即注册
查看: 5298|回复: 0
打印 上一主题 下一主题

AT24C16 一个小Bug 记录

[复制链接]

22

主题

55

帖子

848

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
848
跳转到指定楼层
楼主
发表于 2019-1-27 21:23:01 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
在板子上预留了AT24CXX 芯片接口,但是目前没有用到,也没有焊接芯片。

最近打算将其用起来,在里面存点东西,但是调试起来总是遇到问题。
1 HW IIC方法,OLED用的就是HW IIC,想通过简单修改地址方式读写AT24CXX芯片,发现失败,度娘说STM32 HW IIC 不是很好用,自己也没有时间去深入学习STM32 IIC知识。

2 SW IIC方法,这个很早之前就用51玩过,找出一份代码调试,毕竟只需要控制两个GPIO就可以了。

但是遇到问题:有些数据可以对,有些不对。很是诡异,在IIC 函数里面加打印,发现连着第二次写的时候,芯片没有应答。

于是拿出单片机调试神器:逻辑分析仪(20多块那种廉价产品),抓波形

从波形上看到第二次确实芯片没有应答(绿色表示一整次Start,红色stop),而且显示第一次写完stop到第二次start只有不到1ms,这个时间。。。
查数据手册发现最少需要5ms

在调用程序中增加两次写之间的延时,结果正常了。
之前51 估计太慢了,忘记了这么重要的一个延时函数。

附件是简单读写IIC 的库函数,可供参考,后期实现page 读写
at24c16.rar (1.67 KB, 下载次数: 2, 售价: 10 金钱)




回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

bphero Inc.  

GMT+8, 2024-11-22 21:21 , Processed in 0.021782 second(s), 8 queries , File On.

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc. Template By 【未来科技】【 www.wekei.cn 】

快速回复 返回顶部 返回列表