738|4

307

帖子

0

资源

一粒金砂(中级)

关于存储器AT45DB041的使用 [复制链接]

代码就不贴了,大致描述下问题,代码是别人写的:

目的是向存储器中的某一块写入数据,他的操作流程是,命令0x53(将主存储器中的数据转移至缓冲区)------命令0x84(向缓冲区写入数据)------命令0x88(将缓冲区的数据转存如主存储器)----命令0x60(将主存储器中的数据与缓冲区中的数据比较)。现在的问题是,不太明白0x53命令的作用,请用过的朋友们帮忙解答下,这个命令主要是做什么用的?

此帖出自stm32/stm8论坛

回复

238

帖子

0

资源

一粒金砂(高级)

本帖最后由 foxpro2005 于 2020-8-21 21:50 编辑

哈哈,早期写过这个的驱动代码,自认算得上比较完善的

0x53 : 就是把FLASH存储器主存页的数据,读取到FLASH内部缓存区1中

他的那个代码操作流程是:  (读主存页到缓存)-- 修改(修改缓存中的数据)-- (将缓存中的数据再回写到主存页)-- 校验(比较主存页中的数据与缓冲区中的数据是否一致)

 

 

点评

ena
嗯,是这个流程。但不知道为什么需要先将主存储区的数据读到缓冲区呢,直接往缓冲区里写不就行了吗  详情 回复 发表于 2020-8-22 08:12

回复

307

帖子

0

资源

一粒金砂(中级)

foxpro2005 发表于 2020-8-21 21:44 哈哈,早期写过这个的驱动代码,自认算得上比较完善的 0x53 : 就是把FLASH存储器主存页的数据,读取到F ...

嗯,是这个流程。但不知道为什么需要先将主存储区的数据读到缓冲区呢,直接往缓冲区里写不就行了吗


回复

238

帖子

0

资源

一粒金砂(高级)

FLASH是要擦除过后的,才能将新数据写进去!!!

AT45DB041是有直接通过缓冲区写入数据到主存页的命令(带自擦除的或不带自擦除的),写的区域是擦除过的,可以直接写;但如果之前是写过数据的要先擦除再写数据,擦除前为了保护该页中其它区域的数据,所以需要先将这一页的数据读出来到缓存区中,然后新数据写入到缓存区中,再然后擦除该主存页,最后再把缓存区中的数据回到主存页中。

 

还是先好好了解一下FLASH存储器的原理吧

 

 

点评

ena
嗯,大致明白了。也就是每次写的时候都是按页进行写,为了避免已经写入的部分被擦除,就先读到缓冲区里,在缓冲区里对页进行重新编程后,再往主存储器里写。但这样最好一次写入的数据较多,不用重复擦除了  详情 回复 发表于 2020-8-22 14:27

回复

307

帖子

0

资源

一粒金砂(中级)

foxpro2005 发表于 2020-8-22 09:40 FLASH是要擦除过后的,才能将新数据写进去!!! AT45DB041是有直接通过缓冲区写入数据到主存页的命令( ...

嗯,大致明白了。也就是每次写的时候都是按页进行写,为了避免已经写入的部分被擦除,就先读到缓冲区里,在缓冲区里对页进行重新编程后,再往主存储器里写。但这样最好一次写入的数据较多,不用重复擦除了


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

关闭
站长推荐上一条 1/6 下一条

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区知春路23号集成电路设计园量子银座1305 电话:(010)82350740 邮编:100191

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2020 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表