OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 9552|回复: 16

M24C02替换AT24C02应用中程序不兼容的问题解决方案

[复制链接]

3

主题

62

帖子

0

精华

高级会员

Rank: 4

积分
960
金钱
960
注册时间
2019-7-8
在线时间
145 小时
发表于 2019-8-3 11:25:30 | 显示全部楼层 |阅读模式
第一次发帖,希望能帮助到别人。也希望原子哥能在demo中进行更新;
我们在一款产品中用到AT24C02,但是停产了,考虑到后期供货的问题,便决定将其替换为M24C02。在更换芯片后,用正点原子的例程去操作,后来发现总是写入失败。在网上找了很久,都没有明确的说明,只是说时序有问题,具体哪里的时序也没有细说。于是我就仔细对照原子的代码与M24C02的时序图,后来发现在stop信号那段代码
与原子哥的代码有出入,详细说明以及解决方法在截图中说明:
AC.png

M24C02停止信号说明

M24C02停止信号说明

Tchdh时间要求

Tchdh时间要求

代码部分修改建议

代码部分修改建议
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

3

主题

62

帖子

0

精华

高级会员

Rank: 4

积分
960
金钱
960
注册时间
2019-7-8
在线时间
145 小时
 楼主| 发表于 2019-8-3 11:30:39 | 显示全部楼层
按照截图中代码部分修改就可以正常读写M24C02
回复 支持 1 反对 0

使用道具 举报

0

主题

2

帖子

0

精华

初级会员

Rank: 2

积分
85
金钱
85
注册时间
2019-1-2
在线时间
17 小时
发表于 2019-9-9 19:08:38 | 显示全部楼层
遇到了同样的问题,修改后成功的解决了,感谢
回复 支持 反对

使用道具 举报

3

主题

62

帖子

0

精华

高级会员

Rank: 4

积分
960
金钱
960
注册时间
2019-7-8
在线时间
145 小时
 楼主| 发表于 2019-10-23 16:21:37 | 显示全部楼层
LiY123123 发表于 2019-9-9 19:08
遇到了同样的问题,修改后成功的解决了,感谢

哈哈,解决了就好
回复 支持 反对

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
6
金钱
6
注册时间
2019-9-12
在线时间
1 小时
发表于 2019-11-5 10:08:34 | 显示全部楼层
DHMrwang 发表于 2019-8-3 11:30
按照截图中代码部分修改就可以正常读写M24C02

你好,请问你就在AT24C02的例子中只改了iic的STOP吗
回复 支持 反对

使用道具 举报

3

主题

62

帖子

0

精华

高级会员

Rank: 4

积分
960
金钱
960
注册时间
2019-7-8
在线时间
145 小时
 楼主| 发表于 2019-11-28 21:50:19 | 显示全部楼层
曾传伟 发表于 2019-11-5 10:08
你好,请问你就在AT24C02的例子中只改了iic的STOP吗

是的,只要更改停止信号就行了
回复 支持 反对

使用道具 举报

41

主题

226

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
480
金钱
480
注册时间
2017-7-29
在线时间
233 小时
发表于 2020-5-21 14:27:57 | 显示全部楼层
同样是M24C64,发现check直接不得,按照楼主的方法改动后就可以了,但是有两个比较有意思的,不是很明白第一是,check我改成
u8 AT24CXX_Check(void)
{
        u8 temp;
        temp=AT24CXX_ReadOneByte(8191);//±üÃaÿ′οa»ú¶¼D′AT24CXX                          
        if(temp==0X55)return 0;                  
        else//ÅÅ3yμúò»′Î3õê¼»ˉμÄÇé¿ö
        {
                AT24CXX_WriteOneByte(8191,0X55);
            temp=AT24CXX_ReadOneByte(8191);          
                if(temp==0X55)
                        return 0;
        }
        return 1;                                                                                          
}

此时必须按楼主改动的办法才可通过,才能正常读数。
但是如果是把8191改成8190,是可以正常通过该Check,但是长字符串读数时是会出错的。
第二是,我找到AT24C的datasheet,在datasheet上面,stop的时序其实和M24C也是差不多的,按照我的理解,AT24C的stop信号也应该按照楼主的方法拉高才可以吧?而且我尝试了一下,确实改动后也是可以正常读数,这就很奇怪了,难道AT24C对此要求不严格?还是说我对时序理解不到位?
QQ截图20200521114221.png
回复 支持 反对

使用道具 举报

3

主题

62

帖子

0

精华

高级会员

Rank: 4

积分
960
金钱
960
注册时间
2019-7-8
在线时间
145 小时
 楼主| 发表于 2020-5-21 14:37:00 | 显示全部楼层
142zjb 发表于 2020-5-21 14:27
同样是M24C64,发现check直接不得,按照楼主的方法改动后就可以了,但是有两个比较有意思的,不是很明白第 ...

M24C64的停止信号有特殊要求,区别在于tCHDL
回复 支持 反对

使用道具 举报

41

主题

226

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
480
金钱
480
注册时间
2017-7-29
在线时间
233 小时
发表于 2020-5-21 15:36:09 | 显示全部楼层
DHMrwang 发表于 2020-5-21 14:37
M24C64的停止信号有特殊要求,区别在于tCHDL

其实我是想找到AT24C关于这部分的时序图,对比一下。没找到完全一样的,但是看上图我找到的,我是觉得时序是一样的
回复 支持 反对

使用道具 举报

3

主题

62

帖子

0

精华

高级会员

Rank: 4

积分
960
金钱
960
注册时间
2019-7-8
在线时间
145 小时
 楼主| 发表于 2020-5-22 12:06:34 | 显示全部楼层
142zjb 发表于 2020-5-21 15:36
其实我是想找到AT24C关于这部分的时序图,对比一下。没找到完全一样的,但是看上图我找到的,我是觉得时 ...

不要觉得,很明显AT的就没有时间要求
回复 支持 反对

使用道具 举报

15

主题

338

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1232
金钱
1232
注册时间
2016-3-16
在线时间
271 小时
发表于 2020-6-5 08:33:55 | 显示全部楼层
同样的问题,按照楼主的方法改完之后就正常了。
回复 支持 反对

使用道具 举报

26

主题

108

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1826
金钱
1826
注册时间
2015-12-18
在线时间
209 小时
发表于 2020-6-19 15:33:28 | 显示全部楼层
我也是遇到了,现在解决了,无限感激
想学STM32,我想宝刀未老吧
回复 支持 反对

使用道具 举报

29

主题

162

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1243
金钱
1243
注册时间
2018-4-25
在线时间
185 小时
发表于 2020-7-16 09:39:58 | 显示全部楼层
就我没解决嘛 求个例程
回复 支持 反对

使用道具 举报

0

主题

98

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
343
金钱
343
注册时间
2018-3-20
在线时间
74 小时
发表于 2022-5-4 17:16:08 | 显示全部楼层
感谢大佬的分享
回复 支持 反对

使用道具 举报

25

主题

115

帖子

0

精华

高级会员

Rank: 4

积分
936
金钱
936
注册时间
2018-11-9
在线时间
145 小时
发表于 2022-7-21 09:03:10 | 显示全部楼层
真是神一样的大佬,我折腾了半天,迟迟找不到问题所在,没想到大佬改一个地方就可以了
回复 支持 反对

使用道具 举报

163

主题

1223

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
1461
金钱
1461
注册时间
2014-5-21
在线时间
339 小时
发表于 2023-9-18 14:06:54 | 显示全部楼层
成功解决,以为ST的M24C02兼容的呢(lll¬ω¬)
回复 支持 反对

使用道具 举报

0

主题

5

帖子

0

精华

新手上路

积分
23
金钱
23
注册时间
2023-1-23
在线时间
4 小时
发表于 2024-1-18 14:22:24 | 显示全部楼层
感谢大佬!
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-22 21:26

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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