Nand Flash analyse

来源:互联网 发布:java和php做网站 编辑:程序博客网 时间:2024/05/23 05:09



Nand flash 是一种存存芯片,但是它不同于内存,内存是可以直接读,直接写某块内存,但是Nand 和 Nor flash是需要发命令,来完成数据的存储。
Nand Flash 你如果要读一块地址,是需要发命令,发地址,然后才能读取地址上面的东西,写的时候也需要command and address.

Nand Flash 和Nor flash 也是不同的。
Nor Flash 读的时候,可以直接读,但是写的时候,需要发写命令。


Nand flash 是I/O口复用,即data端口可以发命令,也可以发地址,也可以发数据。但是需要根据Pin脚来选择,比如COMMAND LATCH  ENABLE(CLE)


Nand flash 有几个引脚:
1. COMMAND LATCH ENABLE(CLE)
The CLE input controls the activating path for commands sent to command register.(在CLE高电平,这些命令被发送到命令寄存器
但是这需要伴随一个写脉冲的上升沿,才能写成功) on the rising edge of the WE signal
When active high,commands are latched into the command register through the I/O ports on the rising edge of the WE


2. ADDRESS LATCH ENABLE(ALE)
The ALE input controls the activating path for the address to the internal address register.
Addresses are latched on the rising edge of WE with ALE high.
把高电平拉高以后,为了把地址写到address register,但是也需要需要ALE high 并且在rising edge of the WE.


3. CHIP ENABLE(CE)上面有个-,代表低电平工作,
The CE input is the device selection control. When the device is in the Busy state, CE high is ignored, and
the device does not return to standby mode in program or erase operation.
我们怎么知选中哪块芯片,就是这个pin来选择的,低电平是代表选中这个芯片


4. READ ENABLE(RE)低电平读数据
The RE input is the serial data-out control, and when active drives the data onto the I/O bus. Data is valid
tREA after the falling edge of RE which also increments the internal column address counter by one.


5. WRITE ENABLE(WE)
The WE input controls writes to the I/O port. Commands, address and data are latched on the rising edge of
the WE pulse. 在WE上升沿的时候,把COMMAND ADDRESS AND DATA写到对应的地址去。


6. WRITE PROTECT(WP)
The WP pin provides inadvertent program/erase protection during power transitions. The internal high volt-
age generator is reset when the WP pin is active low.


7. READY/BUSY OUTPUT(R/B)
检查这个Nand Flash的操作是否已经完成。
The R/B output indicates the status of the device operation. When low, it indicates that a program, erase or
random read operation is in process and returns to high state upon completion. It is an open drain output and
does not float to high-z condition when the chip is deselected or when outputs are disabled.



那么如何使用Nand Flash呢
             
             Nand flash                                                                                             S3C2440

           选中芯片(CE)                                                                                           NFCMD寄存器写入值,就可以完成,选中芯片
           CLE设置成高电平                                                                                    发送一个写脉冲,就完成这个工作。
  发命令     在Data0-data7上面写入Command value
           在发送一个写(WE)脉冲,在上升沿数据写入命令寄存器中。
           读(RE)脉冲一直保持高
    
    
           选中芯片(CE)                                                                                         NFAAR = 地址值
           ALE设置成高电平
  发地址     在Data0-data7上面写入Address value
           在发送一个写(WE)脉冲,在上升沿数据
           读(RE)脉冲一直保持高,即读无效
     
     
     
           选中芯片(CE)                                                                                         NFDATA = 数据值
           CLE 和 ALE 设置成低电平
  发数据     在Data0-data7上面写入 数据值
          在发送一个写(WE)脉冲,在REA时间之后,数据才有用,
           即是在ALE变成低电平之后AR时间之后,还要等到REA时间。
           读(RE)脉冲一直保持高
    
    
            选中芯片(CE)                                                                                               Value = NFDATA
           ALE 和 CLE 设置成低电平
读数据     在Data0-data7上面写入 数据值
           在发送一个读(RE)脉冲,在下升沿数据
           写(WE)脉冲一直保持高
           读数据相当于,Nand flash的数据输出MODE


读数据相当于,Nand flash的数据输出MODE



0 0
原创粉丝点击