基于 MT28EW的FLASH控制原理

基于 MT28EW的FLASH控制原理

本设计是基于MT28EW_QLLP_01G_ABA_0SIT-1287008的控制器,主要实现对flash的读写擦除控制,模式为×16。(此文档只是做一个记录,方便以后查看,写的不会太详细,详细设计还是自行查看官网文档,不懂再私下询问。)

1.FLASH控制原理及命令

对flash的操作分为byte模式及word模式,也就是×8及×16两种模式。此文档对×16模式进行简单操作,×8模式时序与×16并无差别只是相关命令及引脚有所改变。在实际测试中,可先使用镁光公司提供的仿真模块进行测试,完成之后再上板测试,仿真模块不会用就私下问我吧。

1.1 flash擦除命令

此款flash只有块擦除(128k)及全部擦除(1G),一般也只会使用块擦除。本次测试对0x1000000处进行擦除。
擦除命令序列如下:

在这里插入图片描述
时序如下:
在这里插入图片描述
结果如下:
开始擦除
在这里插入图片描述
擦除完成
在这里插入图片描述

1.2 flash读写命令

写命令序列如下:
write
write2

读命令序列如下:
在这里插入图片描述

发送命令序列至flash,即可对flash进行写操作,由于flash的操作实际是通过缓冲区,故数据的读写均需要
满足flash的缓冲区大小。此款芯片的flash缓冲区分别有32,64,128,256,512,几种模式,故每次操作的数据大小均需在此范围之类,可根据实际情况进行选择。

程序测试首先对0x1000000处进行写数据操作,写输入数据为0xaaaa,写完512个字节后,回读写入的数据进行校验。唯一需要注意的是命令中的3个BAd需要完全一样,在官方文档中有具体说明,如果不一样,可能仿真能成功但上板不一定能成功。(flash的硬件写原理是把’1’变成’0’,即你能写入“0000”,但绝对不能写入“ffff”,只能通过擦除命令,将flash清空,不要通过写命令进行无用操作。)

写时序如下:
在这里插入图片描述
写测试结果如下,可见在flash的相应位置读出的数据为写入数据。
在这里插入图片描述
基本常用的也就这三种命令,如果需要使用其他的命令,只需要按当前时序,更改命令即可。另外需要注意的就是官网文档给的一个时钟周期最小为60ns。

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值