MT25QU128 (flash) 简介

MT25QU128在开发板复位时,应该复位。复位时,66h和99h应该单独片选,即:片选,发送66h,取消片选,片选,发送99h,取消片选。

注意电压为1.8V。

每个具体型号的MT25Q设备的引脚有所不同,有的没有RESET或HOLD引脚,如下所示:

signal description
引脚名类型功能描述 
S#输入        片选:将S#驱动为高电平时,除非正在进行内部编程,擦除或写状态寄存器周期,否则器件将进入待机模式。 所有其他输入引脚均被忽略,输出引脚为三态。 但是,在具有专用RESET#引脚的引脚配置的器件上,即使S#为高电平,RESET#输入引脚仍保持活动状态。
        将S#驱动为低电平会启用设备,使其处于活动模式。
        上电后,在开始任何命令之前,需要在S#上提供一个下降沿。
 
C输入        时钟:提供串行接口的时序。 命令输入在时钟的上升沿锁存。 在STR命令或协议中,当数据在时钟的下降沿输出时,地址和数据输入在时钟的上升沿锁存。 在DTR命令或协议中,地址和数据输入在时钟的两个边沿上锁存,数据在时钟的两个边沿上输出。 
RESET#输入        RESET#:将RESET#驱动为低电平时,器件复位并且输出为三态。 如果在进行内部写,编程或擦除操作时,将RESET#驱动为低电平,则数据可能会丢失。 可以使用非易失性配置寄存器的位4或增强型易失性配置寄存器的位4禁用RESET#功能。
       RESET#共享DQ3引脚的引脚配置,在QIO-SPI模式下禁用RESET#功能。
 
HOLD#输入       保持:暂停与设备的串行通信,而无需取消选择或重置设备。 输出为三态,数据输入被忽略。 可以使用非易失性配置寄存器的位4或增强型易失性配置寄存器的位4禁用HOLD#功能。
       HOLD#共享DQ3引脚的引脚配置,在QIO-SPI模式下或启用DTR操作时,将禁用HOLD#功能。
 
W#输入       写保护:与状态寄存器的启用/禁用位一起冻结状态寄存器。 当状态寄存器的使能/禁用位设置为1W#信号被驱动为LOW时,状态寄存器的非易失性位将变为只读状态,并且将不执行WRITE STATUS REGISTER操作。 在具有QOFR和QIOFR指令的扩展SPI协议以及QIO-SPI协议中,此引脚功能是作为DQ2功能的输入/输出该信号没有内部上拉,即使不使用W#/ DQ2功能,也不能悬空并且必须被驱动。 
DQ[3:0]输入/输出串行I / O:双向DQ信号传输地址,数据和命令信息。
在扩展I / O协议(XIO-SPI)中使用旧版(x1)SPI命令时,DQ0是输入,DQ1是输出。 不使用DQ [3:2]。
在XIO-SPI中使用双命令或在DIO-SPI中使用时,DQ [1:0]是I / O。 不使用DQ [3:2]。
在XIO-SPI中使用四线指令或在QIO-SPI中使用时,DQ [3:0]是I / O。
 
Vcc电源正极 
Vss电源接地 
DNU-Do not use 
NC-No connect 
RFU-Reserved for future use 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


状态寄存器

      可以分别使用READ STATUS REGISTER或WRITE STATUS REGISTER命令读取或写入状态寄存器位。 当状态寄存器启用/禁用位(位7)设置为1且W#被驱动为LOW时,状态寄存器的非易失性位变为只读状态,并且将不执行WRITE STATUS REGISTER操作。 退出此硬件保护模式的唯一方法是将W#驱动为高电平。

名称设置功能描述注释
7Status register write enable/disable

0 = Enabled(默认)

1 = Disabled

非易失性控制位:与W#一起使用,以启用或禁用对状态寄存器的写入。 
5Top/bottom

0 = Top(默认)

1 = Bottom

非易失性控制位:确定由块保护位定义的受保护存储区是从存储阵列的顶部还是底部开始。 
6,4:2BP[3:0]查看保护区域表非易失性控制位:定义要进行软件保护的存储器,以防止PROGRAM或ERASE操作。 当一个或多个块保护位设置为1时,将保护指定的存储区免受PROGRAM和ERASE操作的影响。仅当所有位= 0时才执行BULK ERASE命令。
1Write enable latch

0 = Clear(默认)

1 = Set

易失性控制位:器件始终在上电时清除该位,以防止意外的写,编程或擦除操作。 要启用这些操作,必须首先执行WRITE ENABLE操作以将该位置1。 
0Write in propress

0 = Ready(默认)

1 = Busy

易失性状态位:指示是否为以下之一
命令周期正在进行中:
写状态寄存器
写非易失性配置寄存器
程序
擦除
状态寄存器的位0与标志状态寄存器的位7相反。

 

 

 

 

 

 

 

 

 

 

 


标记状态寄存器

       使用READ FLAG STATUS REGISTER命令读取标志状态寄存器位。 所有位都是易失性的,上电时复位为零。
       状态位由内部控制器自动设置和重置。 错误位必须通过CLEAR STATUS REGISTER命令清除。

名称设置功能描述注释
7Program or erase controller

0 = Busy

1 = Ready

状态位:指示是否为以下之一
命令周期正在进行中:WRITE STATUS 寄存器,写入非易失性配置寄存器,写或擦除
 
6Erase suspend

0 = Clear

1 = Suspend

状态位:指示是否已暂停或将要暂停ERASE操作。 
5Erase

0 = Clear

1 = Failure or protection error

错误位:指示ERASE操作是成功还是失败。 
4Program

0 = Clear

1 = Failure or protection error

错误位:指示写操作是成功还是失败。 它还指示CRC检查是成功还是失败。 
3Reserved

0

保留 
2Program suspend

0 = Clear

1 = Suspend

状态位:指示是否已暂停或即将暂停PROGRAM操作。 
1Protection

0 = Clear

1 = Failure or protection error

错误位:指示ERASE或PROGRAM操作是否已尝试修改受保护的阵列扇区,或者PROGRAM操作是否已尝试访问锁定的OTP空间。 
0Reserved0保留 

 

 

 

 

 

 

 

 

 

 

 

 


内部配置寄存器

        内存配置由内部配置寄存器设置,用户无法直接访问该内部配置寄存器。
       用户可以使用“写入非易失性配置寄存器”在开机时更改默认配置。 非易失性配置寄存器中的信息在上电期间或复位后会覆盖内部配置寄存器。
       用户可以在操作过程中通过使用WRITE VOLATILE CONFIGURATION REGISTER或WRITE ENHANCED VOLATILE CONFIGURATION REGISTER命令来更改配置。 WRITE命令完成后,来自易失性配置寄存器的信息会立即覆盖内部配置寄存器。


非易失性配置寄存器

     分别使用“读取非易失性配置寄存器”和“写入非易失性配置寄存器”命令读取和写入该寄存器。 在上电期间或复位后执行寄存器值的下载刷新,覆盖确定设备行为的内部配置寄存器设置。

名称设置功能描述注释
15:12Number of dummy clock cycles

0000 = 等同于1111

0001 = 1

.

.

1110 = 14

1111 = Default

设置所有FAST READ命令之后的虚拟时钟周期数(有关默认设置值,请参见命令集表)。1.必须根据时钟频率设置周期数,时钟频率随FAST READ命令的类型而变化(请参阅支持的时钟频率表)。 虚假时钟周期不足以达到工作频率会导致存储器读取错误的数据。
11:9XIP mode at power-on reset

000 = XIP: Fast read

001 = XIP: Dual output fast read

010 = XIP: Dual I/O fast read

011 = XIP: Quad output fast read

100 = XIP: Quad I/O fast read

101 = Reserved

110 = Reserved

111 = Disabled(Default)

使设备在上电复位后立即以选定的XIP模式运行。 
8:6Output driver strength

000 = Reserved

001 = 90 Ohms

010 = Reserved

011 = 45 Ohms

100 = Reserved

101 = 20 Ohms

110 = Reserved

111 = 30 Ohms(Default)

优化VCC / 2输出电压下的阻抗。 
5Double transfer rate protocol

0 = Enabled

1 = Disabled(Default)

将DTR协议设置为当前协议。 启用后,所有
命令将在DTR中起作用。
 
4Reset/hold

0 = Enabled

1 = Disabled(Default)

启用或禁用DQ3引脚上的HOLD#或RESET#。 
3Quad I/O protocol

0 = Enabled

1 = Disabled(Default)

启用或禁用四路I / O命令输入(4-4-4模式)。当第2位和第3位都设置为0时,设备将以四方I / O协议运行。
2Dual I/O protocol

0 = Enabled

1 = Disabled(Default)

启用或禁用双重I / O命令输入(2-2-2模式)。 
1Reserved1保留 
0Reserved1保留 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


易失性配置寄存器

          该寄存器分别由READ VOLATILE CONFIGURATION REGISTER和WRITE VOLATILE CONFIGURATION REGISTER命令读取和写入。 在这些命令之后执行寄存器下载刷新,覆盖确定设备存储器行为的内部配置寄存器设置。

名称设置功能描述注释
7:4Number of dummy clock cycles

0000 = 等同于1111

0001 = 1

.

.

1110 = 14

1111 = Default

设置所有FAST READ命令之后的虚拟时钟周期数(有关默认设置值,请参见命令集表)。必须根据时钟频率设置足够的周期数,并且时钟频率必须足够,这取决于FAST READ命令的类型,如“支持的时钟频率”表中所示。 虚假时钟周期数不足以达到工作频率会导致存储器读取错误的数据。
3XIP

0 = Enabled

1 = Disabled(Default)

使能或禁止XIP。 
2Reserved0固定为0 
1:0Wrap00 = 16字节边界对齐16字节换行:从命令代码后发出的3字节地址开始,输出数据在对齐的16字节边界内换行。请参见换行期间的字节顺序表。
01 = 32字节边界对齐32字节换行:从命令代码后发出的3字节地址开始,输出数据在对齐的32字节边界内换行。
10 = 64字节边界对齐64字节换行:从命令代码后发出的3字节地址开始,输出数据在对齐的64字节边界内换行。
11 = 连续的(默认)连续对整个数组的地址进行排序。

 

 

 

 

 

 

 

 

 

 

 

注意:

1.数值是通过特性保证的,并非在生产中经过100%的测试。
2.当在STR模式下将时钟频率设置为高于133 MHz,在双传输速率模式下将时钟频率设置为高于66 MHz时,调整数据模式(TDP)功能为应用程序提供了用于调整主机端数据锁存点的数据模式(DTR)。 有关更多详细信息,请参阅TN-25-07:针对MT25Q和MT25T器件的调整数据模式。

注意:

1.数值是通过特性保证的,并非在生产中经过100%的测试。
2.调整数据模式(TDP)功能为应用程序提供了数据模式,用于在STR模式下将时钟频率设置为高于133 MHz且在双传输速率(DTR)中将时钟频率设置为高于66 MHz时,在主机端调整数据锁存点。 模式。 有关更多详细信息,请参阅TN-25-07:针对MT25Q和MT25T器件的调整数据模式。


增强的易失性配置寄存器

       分别使用READ ENHANCED VOLATILE CONFIGURATION REGISTER和WRITE ENHANCED VOLATILE CONFIGURATION REGISTER命令读取和写入该寄存器。 在这些命令之后执行寄存器下载,覆盖确定设备存储器行为的内部配置寄存器设置。

名称设置功能说明注释
7Quad I/O protocol

0 = Enabled

1 = Disabled(Default)

启用或禁用四路I / O命令输入(4-4-4模式)。当第6位和第7位都设置为0时,设备将以四方I / O协议运行。 当第6位或第7位设置为0时,设备分别在双I / O或四I / O中运行。 设置该位后,设备会在“写入增强的挥发量配置注册”命令后立即进入所选协议。 下次上电或重置后,设备将返回默认协议。 另外,救援序列或其他WRITE ENHANCED VOLATILE CONFIGURATION REGISTER命令将使设备返回默认协议。
6Dual I/O protocol

0 = Enabled

1 = Disabled(Default)

启用或禁用二路I / O命令输入(2-2-2模式)。 
5Double transfer rate protocol

0 = Enabled

1 = Disabled(Default, single transfer rate)

将DTR协议设置为当前协议。 一旦启用,所有命令将在DTR中起作用。 
4Reset/hold

0 = Enabled

1 = Disabled(Default)

启用或禁用DQ3引脚上的HOLD#或RESET#。
(仅在指定的零件号上可用。)
 
3Reserved1  
2:0Output driver strength

000 = Reserved

001 = 90 Ohms

010 = Reserved

011 = 45 Ohms

100 = Reserved

101 = 20 Ohms

110 = Reserved

111 = 30 Ohms(Default)

优化VCC / 2输出电压下的阻抗。 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


安全寄存器

       安全寄存器使用非易失性和易失性寄存器及位设置(如下所示)在多个级别上启用扇区和密码保护。 适用的寄存器表如下。

注释:

1.扇区保护寄存器。 该16位非易失性寄存器包括两个有效位[2:1],以启用扇区和密码保护。
2.全局冻结位。 该易失性位保护所有非易失性锁定位中的设置。
3.非易失性锁定位。 每个非易失性位对应于单个存储器扇区并为其提供非易失性保护,该存储器扇区保持锁定(启用保护),直到将其相应的位清除为1为止。
4.易失的锁定位。 每个易失性位对应于单个存储器扇区并为其提供易失性保护,该存储器暂时锁定(在设备复位或掉电时会清除保护)。
5.第一个和最后一个扇区将在4KB的子扇区级别上具有易失性保护。 这些扇区中的每个4KB子扇区都可以通过易失性锁定位设置分别锁定。 非易失性保护的粒度保持在扇区级别。

部门保护安全寄存器

名称设置功能描述注释
15:3Reserved1 = Default- 
2Password protection lock

0 = Enabled

1 = Disabled(Default)

非易失性位:设置为1时,禁用密码保护。 设置为0时,密码保护会永久启用;无法检索或重置64位密码。1,2
1Sector protection lock

0 = Enabled, without password protection

1 = Enabled, with password protection(Default)

非易失性位:设置为1时,可以将非易失性锁定位设置为锁定/解锁其相应的存储扇区; 可以将位2设置为0,以永久启用密码保护。
当设置为0时,可以将非易失性锁定位设置为锁定/解锁其相应的存储扇区; 位2必须保持设置为1,永久禁用密码保护。
1,3,4
0Reserved1 = Default- 

 

 

 

 

 

 

 

 

 

注释:

1.位2和1是用户可配置的,可以一次编程,并且互斥,因为它们中只有一个可以设置为0。建议在第一次对该设备编程时将其中一个设置为0。
2.必须对此位设置为0之前对64位密码进行编程和验证,因为在设置该位后,不允许更改密码,从而提供了免受恶意软件攻击的保护。当此位设置为0时,需要64位密码才能将全局冻结位从0重置为1。此外,如果密码不正确或丢失,则不能再设置全局冻结位,并且非易失性锁定位无法更改。 (请参阅“扇区和密码保护”图和“全局冻结位定义”表)。
3.无论该位设置为1还是0,它都可以编程或擦除非易失性锁定位(提供存储器扇区保护)。必须预先设置密码保护位,因为设置该位将永久启用密码保护(位2 = 0)或永久禁用密码保护(位1 = 0)。
4.默认情况下,设备出厂时所有扇区均处于解锁状态。扇区被锁定,解锁,读取或锁定,如非易失性和易失性锁定位表和易失性锁定位寄存器位定义表中所述。


全局冻结位

名称设置功能描述
7:1Reserved00
0Global freeze bit

0 = Enabled

1 = Disabled(Default)

        Volatile bit:当设置为1时,所有的非易失锁定位都可以设置为开启或关闭对应内存扇区的锁定。

        当设置为0时,非易失锁定位将被保护,不受PROGRAM或ERASE命令的影响。在非易失性锁定位被置1之前,不应该将该位设置为0。

 

 

 

 

 

 

注释:

READ GLOBAL FREEZE BIT命令用来开启读取该位。当密码保护启用时,该位在设备上电或重置时被锁定。没有密码不能修改。输入密码后,UNLOCK password命令将该位重置为1,启用编程或擦除非易失锁定位。

当位被改变后,WRITE GLOBAL FREEZE BIT命令将该位设置为0,保护非易失锁定位不受PROGRAM或ERASE操作的影响。


Nonvolatile and Volatile Sector Lock Bits Security
 

Nonvolatile and Volatile Lock Bits
位详情非易失锁定位易失锁定位
描述内存的每个扇区有一个对应的非易失锁定位内存的每个扇区有一个对应的volatile锁位;这是在Volatile锁位寄存器表中描述的扇区写锁位。
功能当设置为0时,锁住并保护其对应的内存扇区不受PROGRAM或ERASE操作的影响。因为这个位是不易失的,所以扇区保持锁定状态,启用保护,直到该位被清除为1。当设置为1时,锁住并保护其对应的内存扇区不受PROGRAM或ERASE操作的影响。因为这个位是不稳定的,所以保护是暂时的。当设备复位或下电时,扇区解锁,保护关闭。
设置

1 = 禁止锁

0 = 使能锁

0 = 禁止锁

1 = 使能锁

使能保护该位通过WRITE NONVOLATILE LOCK BITS命令设置为0,表示启用对指定锁定扇区的保护。扇区锁定位的编程需要典型的字节编程时序。该位由WRITE VOLATILE LOCK BITS命令设置为1,表示启用对指定锁定扇区的保护。
禁止保护所有位被ERASE NONVOLATILE LOCK bits命令清除为1,同时解锁和禁用所有扇区的保护。清除所有扇区锁定位需要典型的扇区清除时间。在复位或下电时,所有位设置为0,解锁和禁用所有扇区的保护。
对该位位由read NONVOLATILE LOCK Bits命令读取。位由read VOLATILE LOCK Bits命令读取

 

 

 

 

 

 

 

 

 

 

Volatile Lock Bit Security Register
        一个易失性锁位寄存器与内存的每个扇区相关联。使用WRITE VOLATILE LOCK BITS命令使扇区被锁定、解锁或锁定,该命令只在扇区锁定(第1位)设置为0时执行。每个寄存器都可以用read VOLATILE LOCK BITS命令读取。这个寄存器是兼容的,并提供相同的锁定能力,作为锁寄存器在Micron N25Q SPI NOR家族。

Volatile Lock Bit Register
名称设置功能描述
7:2Reserved00
1Sector lock down

0 = 禁止锁(默认)

1 = 使能锁

易失性位:设备总是将该位设置为0,以便扇区锁定和扇区写锁定位可以设置为1。当这个位设置为1时,这两个不稳定的锁定位都不能被写入,直到下一个电源周期,硬件或软件重置。
0Sector write lock

0 = 禁止写锁(默认)

1 = 使能写锁

易失性位:设备总是将此位设置为0,以便执行此扇区中的PROGRAM和ERASE操作并修改扇区内容。当这个位设置为1时,这个扇区中的PROGRAM和ERASE操作不会被执行。

 

 

 

 

 

 

 

感觉bit1就是控制bit0的,很鸡肋(bit0可以自己使能或禁止写锁)。

 

  • 5
    点赞
  • 54
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
U-Boot是一种开源的引导加载程序,通常用于嵌入式系统启动时加载操作系统。MT25QU是一种串行闪存芯片型号,常用于嵌入式系统中的存储介质。驱动是指用于控制和管理硬件设备的软件模块。 要在U-Boot中实现MT25QU驱动,首先需要了解MT25QU芯片的规格和通信协议。MT25QU芯片采用SPI接口进行通信,因此需要在U-Boot中配置相应的SPI控制器,并设置正确的时钟速度、数据传输模式和接口引脚。 然后,在U-Boot的源码中添加MT25QU的驱动代码。该驱动代码主要包含对MT25QU芯片的初始化、读写操作和擦除操作等。初始化部分需要设置芯片的工作模式、写保护状态和块大小等参数。读写操作则需要通过SPI接口进行数据传输,读取或写入相应的数据。擦除操作通常是以块或扇区为单位进行的。 驱动代码还需要处理错误处理和异常情况。例如,当MT25QU芯片返回错误码或出现通信故障时,驱动代码应该根据情况进行相应的处理,例如打印错误信息或进行重试操作。 最后,将编写好的驱动代码编译为U-Boot的可执行程序,并烧录到嵌入式系统的存储介质中。在系统启动时,U-Boot程序将加载并执行MT25QU的驱动代码,从而实现对MT25QU芯片的控制和管理。 总的来说,编写MT25QU驱动需要了解该芯片的规格和通信协议,并在U-Boot中添加相应的驱动代码。通过驱动代码,能够控制和管理MT25QU芯片,实现对其存储介质的读写和擦除操作。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值