• 70net永乐高




  • 您好 ,欢迎光临70net永乐高电子(北京)有限公司!

    咨询热线 :010-62652592

    新闻中心

    FLASH烧录原理

    发布日期 :2022-12-01

    1.关键词:

    Access time: 存取时间

    CE: CHIP ENABLE 片选使能

    OE: OUTPUT ENABLE 输出使能

    WE: WRITE NABLE 写使能

    RESET : 复位

    WP:WRITE PROTECT 写保护

    Sector address : 扇区地址

    tACC Address to output delay 地址建立到数据输出的时间

    tCE Chip enable to output delay 片选使能的建立到数据输出的时间

    tOE Output enable to output delay 输出使能的建立到数据输出的时间

    tRC Read cycle time 读周期的时间

    tCS CE# setup time 片选信号建立的时间

    tDS Data setup time 数据建立的时间

    tAS Address setup time 地址建立的时间

    tDH Data hold time 数据保持的时间

    tWC Write cycle time 写周期的时间

    2. FLASH特性介绍

    NOR技术Flash Memory 具有以下特点:

    (1)程序和数据可放存在同一芯片上,拥有独立的数据总线和地址总线,能快速随机读取,允许系统直接从Flash 中读取代码 ,而无需先将代码下载至RAM中再执行 。

    (2)可以单字节或单字编程 ,但不能单字节擦除,必须以块为单位或对整片执行擦除操作,在对存储器进行重新编程之前需要对块或整块进行预编程和擦除操作 。

    由于NOR技术Flash Memory的擦除和编程速度较慢,而块尺寸较大,因此擦除和编程操作所要花费的时间很长。

    3.READ

    Figure.1:Read Operation Ttimings

    01

    根据Command Definitions (附录TABLE1)中 ,因为在芯片上电以后,直接进入读模式。因此 ,可以直接将地址送到IC的地址端口,然后从数据端口读出数据 ,时序参考READ时序(Figure.1)。

    如图所示 :CE#为片选引脚,在为低时,选中IC。当地址端口送入地址数据以后,IC在CE#的下降沿时将地址端口的数据锁定;OE#为数据输出使能 ,并在CE#和OE#的都为低以后,输出数据出现在数据端口 。

    4.ERASE

    Figure.2: Chip/Sector Erase Operation Timings

    02

    根据Command Definitions (附录TABLE1)中,将CHIP ERASE 或者SECTOR ERASE的命令字送入芯片的命令寄存器 ,在命令寄存器收到指令后 ,对存储区域进行擦除操作,通过足够时间 ,使芯片相应的区域能够完全擦除。具体时序参考下图(Figure.2)。

    具体步骤:

    (1)分别送命令0x00aa到地址0x0555, 送命令0x0055到地址0x02aa, 前2个周期为解锁周期(unlock cycle) 。送命令0x00a0到地址0x0555,该周期为一个擦除建立命令(set up command)。然后,又是2个解锁周期(unlock cycle),最后是送片擦命令(送命令0x0010到地址0x0555) ,或者扇区擦除命令(送0x0030到地址0x0555).

    (2)延时。

    CE#为片选引脚,在为低时,选中IC。WE#为写使能,当地址端口和数据端口分别送地址和命令字以后 。在CE#的下降沿时,地址端口将地址数据锁入IC;在CE#、WE#的上升沿时 ,数据端口将命令字锁入IC。

    5.PROGRAM

    Figure.3 :Program Operation Flow

    03

    Figure.4 : Program Operation Timings

    04

    根据Command Definitions (附录TABLE1)中,先将word program的命令字送入IC的命令寄存器;在命令寄存器接到命令后,再将编程地址和数据通过地址端口和数据端口送入命令寄存器 ,命令寄存器对存储区域中相应的地址进行编程操作,延时等待命令寄存器完成编程操作 ,具体流程参考图(Figure.3)

    具体步骤:

    (1)送命令0x00aa到地址0x0555, 送命令0x0055到地址0x02aa, 前2个周期为解锁周期(unlock cycle),通过这2个周期以后,再向命令寄存器送编程建立命令 ,即:送命令0x00a0到地址0x0555。

    (2)送编程数据到数据端口,编程地址到地址端口。

    (3)延时,并从数据端口读出数据 ,当读出的数据与编程数据相同时,编程操作完成 。

    (4)检验编程地址是否是IC的最大地址 ,如果是,则编程完成。如果不是最大地址,则重复(1)~(4)。

    具体时序参考Figure 4,CE#为片选引脚 ,在为低时,选中IC。WE#为写使能,当地址端口和数据端口分别送地址和命令字以后 。在CE#的下降沿时,IC地址端口的数据被锁入;在CE#、WE#的上升沿时,数据端口将命令字锁入命令寄存器 。

    6.PROTECT时序图

    Figure.5 Sector Group Protect Algorithm and Sector Unprotect Algorithm

    05

    Figure 6:Sector Protect/Unprotect Time

    06

    根据Sector Group Protect Algorithm and Sector Group Unprotect Algorithm (Figure.5)提供的操作方式按照顺序送入IC ,

    具体步骤  :

    (1)在RESET脚升高压

    (2)在数据端口送入0x0060

    (3)在地址端口送入扇区地址(保护地址为扇区地址并上0x0002,解保护地址为扇区地址并上0x0042),同时数据端口送入0x0060。

    (4)然后延时(保护为15us/sector,解保护为15ms/chip)

    (5)送命令0x0040到IC ,然后读出数据(0x0001为保护状态/0x0000为不保护状态),验证IC是否被保护。

    IC保护重复(3)~(5)

    IC 解保护不再重复。

    具体时序参考sector group protect and sector group unprotect timing diagram .(Figure.6)

    CE#为片选引脚 ,在为低时,选中IC 。WE#为写使能,当地址端口和数据端口分别送地址和命令字以后。在CE#的下降沿时,地址端口将地址数据锁入IC;在WE#的上升沿时,数据端口将命令字锁入IC 。在延时足够长时间以后,再送读扇区保护状态命令 ,当地址端口送入地址 ,在OE#的下降沿将地址锁入 ,并在OE#的上升沿数据端口锁住输出数据 ,即为扇区保护状态。当输出为0x0001时,芯片被保护。否则,芯片为未保护 。

    7.附录

    Table.1 :Command Definitions

    07

    Table.2:Am29LV160M Device Bus Operations

    08


    分享到 :



  • XML地图