基于 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。

### 关于 MT28EW01G 指令集的详细资料 MT28EW01G 是一款由 Macronix 生产的串行 NOR Flash 存储器。这类存储器件主要用于保存固件或其他非易失性数据,在嵌入式系统中非常常见。 #### 1. 基本特性 该型号支持 SPI (Serial Peripheral Interface) 协议,允许主机通过简单的四线接口(CS, SCK, MOSI MISO)与其通信。其容量为 1 Gb (128 MB),采用 3V 或 1.8V 的工作电压范围[^4]。 #### 2. 主要命令集合 对于此类设备而言,“指令集”实际上是指一系列预定义的操作码及其对应的参数格式,用于执行读取、写入其他管理功能: - **读操作** - **页编程** - 页面程序 (`0x02`) - **扇区擦除** - 扇区擦除 (`0x20`, `0xD7`, `0x52`), 分别对应不同的大小位置 - **芯片擦除** - 整片擦除 (`0xC7`)[^4] 这些命令通常按照特定顺序发送给目标设备来完成所需的任务。例如,为了向闪存中写入新数据,先要解锁保护机制并发出擦除命令清除旧的数据;之后再利用编程命令将新的二进制流送入指定地址空间内。 #### 3. 配置寄存器与状态报告 除了基本的读/写控制外,还存在一些特殊的配置选项可以通过设置内部寄存器实现,比如改变默认的工作模式或是查询当前的状态信息。这包括但不限于: - 状态寄存器读取 (`0x05`) - 自动地址增量使能(`0xB5`) - 解锁序列验证等安全措施[^4] 值得注意的是,具体的实施细节可能会因制造商的不同而有所差异,因此建议查阅最新的官方文档获取最准确的技术规格说明。 ```python # Python 示例代码展示如何初始化SPI连接并与MT28EW01G交互 import spidev spi = spidev.SpiDev() spi.open(0, 0) spi.max_speed_hz = 5000000 def send_command(command_byte): spi.xfer([command_byte]) send_command(0x05) # 发送状态寄存器读取命令作为例子 ```
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值