SSD_FLASH添加使用参考
声明:
- 本兼容性列表(下称「本列表」)中所列之器件,已经过SigmaStar测试确认可与SigmaStar芯片(下称「SigmaStar 芯片」)兼容,但SigmaStar之测试系针对器件厂商或客户所提供的器件样品进行,前述兼容性确认仅适用于该等样品。
- 贵客户可依据自身需求自行采购本列表中的任一器件使用。但贵客户应了解,本列表所示器件并非SigmaStar所设计及生产,SigmaStar所为之前述兼容性测试无法取代贵客户所应进行的正规生产验证。因此,贵客户于采购使用该等器件前,应自行进行完整之产品验证。
- 贵客户应了解SigmaStar对于本列表所示器件不提供任何明示或默示的担保(包括但不限于对该等器件之设计、制造、质量、效能、可商用性、合目的性的担保),SigmaStar对于贵客户使用本列表器件所生之任何争议概不负责。
REVISION HISTORY¶
Revision No. | Description |
Date |
---|---|---|
1.0 | 10/07/2023 |
1. SNI编辑工具的使用¶
打开SNI:需1.0.9版本及其以上
新增Flash:
删除Flash:
2. Nand Flash数据结构说明¶
2.1. 基本数据结构¶
Flash的基本属性设定界面如下图所示:
图中的参数及对应的描述如下表所示:(点击返回配置示例)
参数 | 描述 |
---|---|
ID Bytes Count | FLASH ID 对应的字节数 |
ID Byte | FLASH ID 用于识别Flash(ps:read ID command:0x9F) |
Spare Size | oob区域的长度 |
Page Size | 页长度,单次写入的最大字节数 |
Page Count | 一个block包含几个page |
Block Count | 一颗Flash包含几个block |
Sector Size | Flash ECC用来计算ecc校验码的单位长度 |
Plane Count | 2 plane flash需要配置为1,否则为0 |
Plane Count | 部分Flash存在多plane设计,读写时序与单plane的会略有差异,不填写时默认为0 |
RIU Read | 用于选择是DMA数据传输还是RIU数据传输,DMA数据传输更快,0:DMA,1:RIU |
Max Freq | 选择时钟频率,调试时建议54M,实际应用请根据flash规格书来确认 |
Uboot PBA | Uboot分区起始block id,无特殊功能需求无需填写,默认值0 |
BL0 PBA | IPL分区起始位置 |
BL1 PBA | IPL备份分区的起始位置 |
BAKCNT | IPL分区以及备份分区拥有的备份数量 |
Write Protect Offset | 写保护table所在分区对应的page id,根据是否开启该功能进行填写,未开启请写0 |
Vendor Name | Flash厂商名称 |
Part Number | Flash型号名称(必填) |
2.2. 特殊数据结构¶
2.2.1. Flag数据结构(点击返回配置说明)¶
Flash的特殊属性设定界面如下图所示:
图中的参数及对应的描述如下表所示:
参数 | 描述 |
---|---|
BIT9 | 特殊的flash需要对OIP(寄存器buzy bit)进行两次判断,请与厂商确认勾选 |
BIT8 | 2 plane特殊flash勾选,请查询数据手册,或者直接与厂商确认 |
BIT7 | 易失性寄存器,flash的寄存器值会因为reset cmd或者掉电复原时勾选 |
BIT6 | MULTI_DIES,根据Flash规格书填写 |
BIT5 | NEED_QE,Flash在进行quad read,quad write时,需要设置QE bit |
BIT4 | ECC_RESERVER(预留) |
BIT3 | ECC_RESERVED_NONE_CORRECTED,当ECC_S1 | ECC_S0为2b’11时,如果表示不可纠正,则勾选 |
BIT2 | EXT_ECC,未使用 |
BIT1 | ALL_LOCK,原本表示会在初始化阶段将Flash unlock,目前无论是否勾选都会执行unlock,无效bit |
BIT0 | OTP_AVAIL,未使用 |
MaxWaitTime | Flash完成某个动作的最大等待时长,单位us,建议10*(Block erase time) |
2.3. 寄存器数据结构¶
Flash的寄存器设置界面如下图所示:
图中的参数及对应的描述如下表所示:
参数 | 描述 |
---|---|
EccEnabled | ECC enable,使能后ecc功能开启,用于数据校验及修复 |
OtpLock | 锁定OTP区域,锁定后,OTP区域只读,未使用OTP区域无需填写 |
OtpEnabled | OTP enable,使能后,可访问flash otp区域数据 |
DieConfig | Die Code,切换die,(多die结构的flash才需要填写) |
Complement | 写保护相关,用于写保护区域的补余 |
TopBottom | 写保护相关,用于选择写保护开始地址:upper还是lower |
Blocks | 写保护相关,用于选定写保护区域 |
SRP0 | 寄存器保护(未使用) |
SRP1 | 寄存器保护(未使用) |
QeStatus | QE bit相关信息,使能QE,用于quad read、quad write |
2.4. 数据操作数据结构¶
Flash的数据访问相关设置界面如下图所示:
图中的参数及对应的描述如下表所示:
参数 | 描述 |
---|---|
Read | 读数据命令配置,用于修改single read、dual read、quad read |
Program | 写数据命令配置,用于修改single write、quad write |
Random | 写数据命令配置,(与Program相比,Random不会将cache的值重置) |
CrMode | Cr mode命令配置,内容较多,不在此处展开,详见:Cr mode配置 |
所有的Parameter的组成都是一样的,如下图所示:
Parameter各字段的含义如下表所示:
参数 | 描述 |
---|---|
Command | 操作的命令(图中的0x6b即为读操作的命令) |
Address | 操作的地址,如读写不需要设置地址,读写寄存器命令需要设置地址 |
Address Bytes | 地址长度 |
Dummy | Dummy Cycle数,时序上要求设置的dummy Cycle数 |
Data bytes | 寄存器数据长度,读写寄存器时,需要读出或写入的数据长度 |
Value | 寄存器数据内容,通常要填写对应功能位在寄存器的位置Mask |
因为所有的命令数据结构都是共用的,所以有些字段并不是该命令必须的。如读写的命令,只需要设置命令和dummy count,其他的不需要设置。而读写寄存器的命令则需要设置命令、命令地址、命令地址长度、数据掩码(mask),具体可以参考Flash数据手册灵活调整。接下来已一个实例来具体讲解如何新增一个Flash的支持。
3. NAND常规配置说明¶
接下来以XT26G02E为例,讲解如何从数据手册中查找参数并录入到SNI中。
3.1 添加型号¶
点击“add”按钮,输入Flash型号,点击“OK”新增空白的配置,操作步骤如图3-1所示:
图3-1:添加Flash型号
3.2 基本参数配置说明¶
如图3-2所示,XT26G02E的ID为0x2C 0x24两个字节:
图3-2:XT26G02E ID
在ID Byte Count栏位中填入2,ID Bytes栏位中填入 0x2C 0x24,如图3-3所示:
图3-3:NAND参数配置
如图3-4和图3-5所示,XT26G02E的页大小(Page Size)为2048字节,每一个块(Block)包含64个页(Page),每一页除2048字节有效数据外,还包含128字节空数据区域(Spare Size)。Plane数目为2,总的块数量为2048个。
图3-4:Error Management Details
图3-5:Array Organization
对应修改SNI,如图3-6:
图3-6:SNI修改
图3-6中,RIU Read为是否使用RIU模式,设置为零为RIU模式,设置为一为DMA模式,Max Freq为Flash时钟运行频率,根据需求设置。
其他配置请查看对应的数据结构说明。
3.3 特殊设定配置说明¶
3.3.1. Flag配置(点击转跳数据结构说明)¶
双击图3-7蓝色区域会弹出图3-8的配置界面:
图3-7:双击蓝色区域
图3-8:弹出配置界面
BIT9:如图3-9所示,flash进行数据读写时OIP会被置1,只有OIP置0时才能进行下一次操作,部分flash需要判断OIP的值连续两次为0时才可以进行下一步操作,该特性需要与厂商确认,才能勾选该bit。
图3-9:Feature Settings
BIT8:如图3-5所示,对应的flash区分奇偶block时,需要勾选该bit。
BIT7:volatile用于表示状态寄存器(status register)中QE(Quad Enable)位是否为非易失性(non-valatile),如果勾上则为易失性(volatile)的,易失性的状态寄存器QE位的值在系统重新上下电后,数据会丢失,需要重新设置。非易失性的状态寄存器QE位的值在系统重新上下电后还会保留原先设置的值,但非易失性的寄存性有寿命限制,如果频繁写非易失性的状态寄存器会造成状态寄存器失效。如图3-9中,该型号的Flash不需要设置QE位,所以该位置不需要勾选。
BIT6:MULTI_DIES 代表该型号的Flash是否为多DIE的设计,通过数据手册的描述,未找到关于多DIE的描述,所以该位置不勾选。
BIT5:NEED_QE 代表该型号的Flash在使能四线模式时,是否需要设置QE位,如图3-9中的信息可以知道该型号的Flash不需要设置QE位。
图3-10:ECC Status Register Bit Descriptions
BIT4:ECC_RESERVED_CORRECTED 表示如果ECC状态寄存器11表示ECC Corrected则需要勾选。
BIT3:ECC_RESERVED_NONE_CORRECTED 表示如果ECC状态寄存器11表示ECC Not Corrected则需要勾选。
BIT2:EXT_ECC 保留字段。
BIT1:ALL_LOCK 表示芯片默认是否为锁定状态,如果勾选的话,驱动会自动解锁,建议默认勾选。
BIT0:OTP_AVAIL 保留字段。
3.3.2. MaxWaitTime配置说明¶
图3-11:maxWaitTime参数配置
图3-12:PROGRAM/READ/ERASE Characteristics
图3-11中maxWaitTime表示读写擦最大的等待超时时间,如果在最大的超时时间内没检查到成功的标志,则会退出当前的操作。一般取最大超时时间的10倍,如果查询到成功后会马上返回,所以加大超时时间在正常使用的情况下不会增加启动时间。如图3-12中,最大的超时时间为10ms,工具的时间单位为us,则设置为100000。
3.4. 寄存器操作配置说明¶
通过图3-13可以知道该型号的Flash获取状态寄存器的命令为0x0F,因为当前所用的众多Flash的读寄存器的命令都是一样的,所以命令栏可以不填,也可以填。
图3-13:GET FEATURES(0Fh) Timing
寄存器的对应地址及各位代表的意思如图3-14所示:
图3-14:Feature Address Settings and Data Bits
如图3-14可以知道ECC Enable位在地址为0xB0的寄存器的Bit 4,则address填0xB0;地址的长度如图3-13为1字节,则addressBytes填0x01;无dummy时钟,则dummy栏位填0x00;寄存器的数据长度为1字节,则dataBytes栏位填0x01;Bit4对应的掩码(Mask)为0x10,则value栏位填0x10,command默认填0即可。如图3-15所示:
图3-15:eccEnabled参数配置
部分flash寄存器还存在OTP相关的配置,otpLock与otpEnabled所在的寄存器地址为0xB0,对应的mask分别为0x80与0x40,addressBytes均为0x01,command与dummy均默认为0。如图3-16和图3-17所示:(详细说明点击转跳)
图3-16:Configuration Register / Status Register-2 (Address Bxh)
图3-17:OTP参数配置
3.5. 2 die flash配置说明¶
图3-18:die参数配置
图3-19:Software Die Select Instruction
图3-20:W25M02GV Device Configuration
如图3-20所示,部分flash是由两个size较小的flash组成,该类flash称为2 die flash。dieSize需要根据两个较小flash其中一个的size/page size得到。DieCode 的相关配置需要根据图3-19所示配置,command需要填写0xC2,address填写0x01,addressBytes填写为0x01,dummy填写为0x00,dataBytes填写为0x01,value无需填写,由代码控制。
3.6 Block Status配置说明¶
图3-21:Protection Register Bit
图3-22:complement参数配置
如图3-21与图3-22所示,有些flash的0xA0寄存器存在CMP bit,该bit功能用于flash的write protect,如果存在该bit则需要配置,否则会影响数据写入flash。如图3-21所示,对应图3-22的配置为:command:0x0(无需配置),address:0xa0,addressBytes:0x01,dummy:0x0(无需配置),dataBytes:0x01,value:0x02。
图3-23:Protection Register / Status Register-1 (Address Axh)
图3-24:topBottom参数配置
如图3-23与图3-24所示,有些flash的0xA0寄存器存在TB bit,该bit功能也用于flash的write protect,如果存在该bit则需要配置,否则会影响数据写入flash。如图3-23所示,对应图3-24的配置为:command:0x0(无需配置),address:0xa0,addressBytes:0x01,dummy:0x0(无需配置),dataBytes:0x01,value:0x04。
图3-25:blocks参数配置
如图3-25所示,flash的0xA0寄存器存在默认值(上下电的初始值),这些值需要与厂商确认,blocks数据结构配置0xa0的默认值用于flash write protect,配置信息参考:command:0x0(无需配置),address:0xa0,addressBytes:0x01,dummy:0x0(无需配置),dataBytes:0x01,value:(请与厂商确认)。
图3-26:srp参数配置
如图3-26所示,上述配置无需填写,与特殊功能有关,如果有相关需求RD会帮忙填写。
3.7 extSni配置说明¶
图3-27:extSni参数配置
该数据结构需要开启相关功能时配置,无特殊功能添加请保持默认值为0,请rd配置。
3.8 数据操作配置¶
3.8.1. 单线模式读取¶
图3-28:READ FROM CACHE (03h or 0Bh) Timing
由flash规格书所示,可以得到以下信息:
-
读时序为:0x03(command) + 2byte address(addressBytes) + 8 Dummy Cycles(dummy) + data
-
读时序为:0x0B + 2byte address + 8 Dummy Cycles + data
图3-29:0x03读时序参数配置
图3-30:0x0B读时序参数配置
3.8.2. 两线模式读取¶
图3-31:READ FROM CACHE x2
图3-32:READ FROM CACHE Dual I/O
由flash规格书所示,可以得到以下信息:
-
读时序为:0x3B + 2byte address + 8 Dummy Cycles + data
-
读时序为:0xBB + 2byte address + 4 Dummy Cycles + data
图3-33:0x3B读时序参数配置
图3-34:0xBB读时序参数配置
3.8.3. 四线模式读取¶
图3-35:READ FROM CACHE x4
图3-36:READ FROM CACHE Quad I/O
由flash规格书所示,可以得到以下信息:
-
读时序为:0x6B + 2byte address + 8 Dummy Cycles + data
-
读时序为:0xEB + 2byte address + 4 Dummy Cycles + data
图3-37:0x6B读时序参数配置
图3-38:0xEB读时序参数配置
3.8.4. 单线模式写入¶
图3-39:PROGRAM LOAD RANDOM DATA (84h) Timing
由flash规格书所示,可以得到以下信息:
-
PROGRAM写时序为:0x02 + 2byte address + data
-
RANDOM写时序为:0x84 + 2byte address + data
图3-40:0x02 & 0x84写时序参数配置
3.8.5. 四线模式写入¶
图3-41:PROGRAM LOAD x4 (32h) Timing
由flash规格书所示,可以得到以下信息:
-
PROGRAM写时序为:0x32 + 2byte address + data
-
RANDOM写时序为:0x34 + 2byte address + data
图3-42:0x32 & 0x34写时序参数配置
4. Continuous Read配置说明¶
Continuous Read mode support:(目前主要支持的两种类型,without BUFF mode和BUFF mode)
Without BUFF mode:
图4-1:Continuous Read Mode Without BUFF
Note:flow已经在driver中实现,只需在Sni中配置BUF bit,及read cache command
以W25N01GVxxIG为例:
图4-2:Configuration Register / Status Register-2 (Address Bxh)
四线读取:
图4-3:Fast Read Quad I/O Instruction (Continuous Read Mode, BUF=0)
由flash规格书所示,可以得到以下信息:
-
BUF bit(address :0xB0 Mask:0x08)
-
RANDOM写时序为:0xEB + 2byte address + 8 Dummy Cycles + data
Note: 因driver仍采用command + address + dummy+ data的方式(此处address以2byte计算)
图4-4:crMode参数配置
BUFF mode:
图4-5:Continuous Read Mode With BUFF
参数 | 描述 |
---|---|
NextPage Parameters | 读取下一个page使用的command |
LastPage Parameters | 读取最后一个page使用的command |
CheckBusy Parameters | 读取下一个page或读取最后一个page时需要check busy时填写 |
参数 | 位域 | 描述 |
---|---|---|
BLOCK_WITH_LAST | BIT4 | Continuous read不能超过一个block时,则勾选 |
END_WITH_REST | BIT3 | 结束continuous read时,需要执行reset时,则勾选 |
BUSY_AFTER_NEXT | BIT2 | 读取下一个page需要check busy时则勾选且CheckBusy Parameters要填 |
BUSY_AFTER_READ | BIT1 | 读取最后一个page需要check busy时则勾选且CheckBusy Parameters要填 |
NEXT_STATUS | BIT0 | 读取下一个page需要check busy时则勾选(此处check的是OIP) |
以GD5F1GQ4UEYIH为例:
由flash规格书所示,可以得到以下信息:
-
Next Page command:0x31
-
Last Page command:0x3F
-
读取下一个page时需要:check OIP
-
Continuous read不能超过一个block
5. Check ECC配置说明¶
图5-1:Check ECC参数配置
表5-1:eccConfig参数说明
参数 | 描述 |
---|---|
eccEn | 是否使用ecc check自定义 |
eccType | 勾选一些ecc相关的特殊设定,参考表5-2 |
eccStatusMask | Ecc有效状态位 |
eccNotCorrectStatus | 表示无法纠正错误的ecc状态值 |
eccReserved | 当eccType勾选RESERVED_NONE_CORRECTED时,也表示无法纠正错误的ecc状态值 |
BitflipThreshold | 设定一个已纠正bit数的阈值,用于bbm,未使用bbm可忽略 |
表5-2:Bit参数说明
参数 | 位域 | 描述 |
---|---|---|
RESERVED_NONE_CORRECTED | BIT7 | 当ecc状态值中有两种状态表示ecc error时,则勾选 |
ENABLE_UBI_BBM | BIT6 | 启用UBI_BBM,则勾选(UBI BBM的作用是发现可纠正数据时,会将数据重写到其它数据块上,防止数据损坏,若有使用,请根据使用的flash采用bit flip机制或threshold机制的一种,防止频繁的数据重写) |
SOCECC | BIT2 | 驱动使用,无需勾选 |
BITFLIP | BIT1 | 选用bit flip机制,则勾选 |
THRESHOLD | BIT0 | 选用threshold机制,则勾选 |
图5-2:纠正流程
图5-3:Threshold机制纠正流程
图5-4:Bit flip机制纠正流程
以GD5F1GQ4xExxH举例:
图5-5:Features Settings
图5-6:ECC Error Bits Descriptions
由flash规格书所示,可以得到以下信息:
-
ECCS1 ECCS0用于表示ecc status,ECCSE1 ECCSE0用于表示具体发生了几个bit flip
-
适用bit flip机制
图5-7:GD5F1GQ4xExxH ECC参数配置
以TC58CVG0S3HxAIx为例:
图5-8:Feature Table
图5-9:Feature Table - C0h Address Description
图5-10:Bit Flip Count Detection Setting (BFD)
由flash规格书所示,可以得到以下信息:
-
ECCS1 ECCS0用于表示ecc status
-
当ECCS1 ECCS0的值等与0x30时,代表bit flip超过了设定的阈值
-
BFD3~0用于设定阈值
图5-11:TC58CVG0S3HxAIx ECC参数配置
6. Readid配置说明¶
图6-1:Readid参数配置
图6-2:Read JEDEC ID Instruction
部分flash读取ID的时序与上图不同,不需要8个dummy,出现该问题时需要填写该数据结构,否则无需填写,填写示例:command:0x9f,address:0x0,addressBytes:0x0,dummy:0x0,dataBytes:0x0,value:0x0。
7. InitSet配置说明¶
图7-1:InitSet参数配置
部分flash对于寄存器的数据接入可能需要两次写入,举个例子,DS厂商的一款flash在对0xa0寄存器进行操作时,需要先向0xa0寄存器写入0x02,之后方可对0xa0寄存进行数据写入。该特性需要与厂商确认,确实如上述情况,则可以请rd帮忙填写相关的数据,此外该数据结构还可以用于其他与flash寄存器配置相关的操作,在没有特殊要求的情况下不需要填写。
8. OTP operation配置说明¶
图8-1:otp参数配置
图8-2:otpConfig参数配置
表8-1:otp参数说明
参数 | 描述 |
---|---|
otpEn | 是否使用otp功能 |
Factory | 设定factory区域的起始位置和长度,因为nand flash的otp是以page为单位,因此start、length的单位为pageID * page size |
User | 设定user区域的起始位置和长度,因为nand flash的otp是以page为单位,因此start、length的单位为pageID * page size |
Otpread | Read otp operation |
Otpprogram | Program otp operation |
Otplock | 锁定otp区域,一经锁定,otp区域无法再进行编辑 |
Otpenable | 使能otp模式,任何otp相关操作,都需要将flash工作模式切换为otp模式 |
以W25N01GVxxIG/IT为例:
图8-3:Configuration Register / Status Register-2 (Volatile Writable)
图8-4:Accessing Unique ID / Parameter / OTP Pages (OTP-E=1)
图8-5:Read Operations & Program and OTP Lock Operations
由flash规格书所示,可以得到以下信息:
-
OTP_E、OTP_L bit所在寄存器位置
-
Factory为page01,user为page2B
-
Otp read program操作同正常读写一致,不支持continue read
图8-6:W25N01GVxxIG/IT otp参数配置
图8-7:W25N01GVxxIG/IT otp参数配置
9. Nor Flash数据结构说明 (适用SSD210/212/222X/9211X)¶
9.1 基本数据结构¶
图9-1:SPINOR参数配置
表9-1:SPINOR参数说明
参数 | 描述 |
---|---|
FLASH ID | 作用于识别flash(如read ID command:0x9F) |
Max Clk | 选择CLK speed,调试时建议54M,实际应用请根据flash规格书来确认 |
Page Byte Count | 页长度,单次写入的最大字节数 |
Sector Byte Count | Sector erase的字节数 |
Block Byte Count | Block erase的字节数(如command:0xD8) |
Capacity | Flash 总大小 |
Max Wait Time | flash完成某个动作的最大等待时长,单位us,建议10*(Block erase time) |
ExtSni | 特殊功能开启,默认值请填写0 |
9.2 高级数据结构¶
软件的高级属性设置界面如图9-2所示:
图9-2:高级属性设置界面
读取相关的属性的含义如表9-2所示:
表9-2:读取属性说明
参数 | 描述 |
---|---|
Complement paramers | 用于写保护的模式选择 |
TopBottom paramers | 用于写保护选择顶端模式还是底端模式 |
Blocks paramers | 写保护的参数,具体参考数据手册写保护章节 |
SRP0 paramers | 寄存器保护(预留) |
SRP1 paramers | 寄存器保护(预留) |
rQuadEnable paramers | 使能四线模式 |
写入相关的属性的含义如表9-3所示:
表9-3:写入属性说明
参数 | 描述 |
---|---|
Complement paramers | 用于写保护的模式选择 |
TopBottom paramers | 用于写保护选择顶端模式还是底端模式 |
Blocks paramers | 写保护的参数,具体参考数据手册写保护章节 |
SRP0 paramers | 寄存器保护(预留) |
SRP1 paramers | 寄存器保护(预留) |
rQuadEnable paramers | 使能四线模式 |
注意: 有填写rQuadEnable or wQuadEnable需将needQE设置为0x01
参数 | 描述 |
---|---|
ReadData paramers | 读数据相关的设置 |
Program paramers | 写数据相关的设置 |
所有的Parameter的组成都是一样的,如图9-3所示:
图9-3:参数组成
Parameter各字段的含义如表9-4所示:
表9-4:参数说明
参数 | 描述 |
---|---|
Command | 操作的命令(图中的0x6b即为读操作的命令) |
Address | 操作的地址,如读写不需要设置地址,读写寄存器命令需要设置地址 |
Address Bytes | 地址长度 |
Dummy | Dummy Cycle数,时序上要求设置的dummy Cycle数 |
Data bytes | 寄存器数据长度,读写寄存器时,需要读出或写入的数据长度 |
Value | 寄存器数据内容,通常要填写对应功能位在寄存器的位置Mask |
因为所有的命令数据结构都是共用的,所以有些字段并不是该命令必须的。如读写的命令,只需要设置命令和dummy count,其他的不需要设置。而读写寄存器的命令则需要设置命令、命令地址、命令地址长度、数据掩码(mask),具体可以参考Flash数据手册灵活调整。接下来以一个实例来具体讲解如何新增一个Flash的支持。
10. NOR常规配置说明¶
接下来以XT26G02E为例,讲解如何从数据手册中查找参数并录入到SNI中。
10.1 添加型号¶
点击“add”按钮,输入Flash型号,点击“OK”新增空白的配置,操作步骤如图10-1所示:
图10-1:添加型号
10.2 基本数据结构配置说明¶
如图10-2所示,XT25F128B的ID为两字节0x0B 0x40 0x18三个字节:
图10-2:XT25F128B ID
如图10-3所示,可以看到Flash的基本大小信息:
图10-3:Flash基本大小信息
如图10-4所示,可以获取到最大的超时时间为1.5秒:
图10-4:获取时间表
综上可以得出的数据,修改参数设置如图10-5:
图10-5:XT26G02E参数配置
10.3 寄存器操作数据结构配置说明¶
图10-6:Read Status Register Sequence Diagram
图10-7:Write Status Register Sequence Diagram
图10-8:STATUS REGISTER
与SPINAND Flash相似,通过图10-6、图10-7、图10-8可以得到以下信息:
-
读S7-0使用command:0x05
-
读S15-8使用command:0x35
-
写S15-0使用command:0x01
-
CMP:bit14
-
Block lock:bit6-2
-
SRP1:bit8
-
SRP0:bit7
-
QE:bit9
修改设定如下:
图10-9:寄存器参数配置
图10-10:寄存器参数配置
由于SPINOR Flash读取寄存器命令只会返回一个字节,写入时同时写入两个字节,所以在读取时需要知道写入时的两个字节的读取命令是什么,可以通过双击address栏位弹出的对话框配置,如图10-11:
图10-11:获取读取命令方法
图10-12:寄存器参数配置
10.4 数据操作数据结构说明¶
10.4.1. 单线模式读取¶
图10-13:Read Data By test Higher Speed Sequence Diagram
由flash规格书所示,可以得到以下信息:
- 读时序为:0x0B + 3byte address + 8 Dummy Cycles + data
图10-14:单线读时序参数配置
10.4.2. 双线模式读取¶
图10-15:Dual Output Fast Read Sequence Diagram
图10-16:Dual I/O Fast Read Sequence Diagram
由flash规格书所示,可以得到以下信息:
-
读时序为:0x3B + 3byte address + 8 Dummy Cycles + data
-
读时序为:0xBB + 3byte address + 4 Dummy Cycles + data
图10-17:0x3B读时序参数配置
图10-18:0xBB读时序参数配置
10.4.3. 四线模式读取¶
图10-19:Quad Output Fast Read Sequence Diagram
由flash规格书所示,可以得到以下信息:
- 读时序为:0x6B + 3byte address + 8 Dummy Cycles + data
图10-20:0x6B读时序参数配置
10.4.4. 单线模式写入¶
图10-21:Page Program Sequence Diagram
由flash规格书所示,可以得到以下信息:
- PROGRAM写时序为:0x02 + 3byte address + data
图10-22:0x02写时序参数配置
10.4.5. 四线模式写入¶
图10-23:Quad Page Program Sequence Diagram
由flash规格书所示,可以得到以下信息:
- PROGRAM写时序为:0x32 + 3byte address + data
图10-24:0x32写时序参数配置