`
yidongkaifa
  • 浏览: 4072414 次
文章分类
社区版块
存档分类
最新评论

S3C2440 FLASH 介绍

 
阅读更多

S3C2440 有27 根地址线ADDR[26:0],8 根片选信号ngcs0-ngcs7,对应bank0-bank7.

当访问BankN(N=0,1,2,...7) 的地址空间,ngcsN(N=0,1,2,...7) 引脚为低电平,选中外设。
每一个Bank容量:2^27=2^7 * 2^10 * 2^10 = 128Mbyte
总共有8个Bank,所以总寻址大小是:8*128Mbyte = 1Gbyte
所以S3C2440 总的寻址空间是1Gbyte。
市面上很少有32 位宽度的单片SDRAM,一般选择2 片16 位SDRAM 扩展得到32位SDRAM.

选择的SDARM 是HY57V561620F,4Mbit * 4bank *16,共32Mbyte。

首先了解下 SDRAM 的寻址原理。
SDRAM 内部是一个存储阵列。可以把它想象成一个表格。和表格的检索原理一样,先指定行,再指定列,就可以准确找到所需要的存储单元。这个表格称为逻辑BANK。目前的SDRAM 基本都是4 个BANK。寻址的流程就是先指定BANK 地址,再指定行地址,最后指定列地址。这就是SDRAM 的寻址原理。存储阵列示意图如下:

查看HY57V561620F 的规格书,这个SDRAM 有
13 根行地址线 RA0-RA12
9 根列地址线 CA0-CA8
2 根BANK 选择线 BA0-BA1

SDRAM 的地址引脚是复用的,在读写SDRAM 存储单元时,操作过程是将读写的地址分两次输入到芯片中,每一次都由同一组地址线输入。两次送到芯片上去的地址分别称为行地址和列地址。它们被锁存到芯片内部的行地址锁存器和列地址锁存器。

/RAS 是行地址锁存信号,该信号将行地址锁存在芯片内部的行地址锁存器中;

/CAS 是列地址锁存信号,该信号将列地址锁存在芯片内部的列地址锁存器中。

SDRAM 的A0 接S3C2440 的ADDR2,很多初学者都对这里又疑问。A0 为什么不接ADDR0?
要理解这种接法,首先要清楚在CPU 的寻址空间中,字节(8 位)是表示存储容量的唯一单位。
用 2 片HY57V561620F 扩展成32 位SDRAM,可以认为每个存储单元是4 个字节。因此当它的地址线A1:A0=01 时,处理器上对应的地址线应为ADDR3:ADDR2=01(因为CPU 的寻址空间是以Byte 为单位的)。所以SDRAM 的A
0 引脚接到了S3C2440 的ADDR2 地址线上。同理,如果用 1 片HY57V561620F,数据线是16 位,因为一个存储单元是2 个字节,这时SDRAM 的A0 要接到S3C2440 的ADDR1 上。

也就是说 SDRAM 的A0 接S3C2440 的哪一根地址线是根据整个SDRAM 的数据位宽来决定的。
上面的接线图上,BA0,BA1 接ADDR24,ADDR25,为什么用这两根地址线呢?BA0~BA1 代表了SDRAM 的最高地址位。因为CPU 的寻址空间是以字节(Byte)为单位的,本系统SDRAM 容量为64MByte,那就需要A25~A0(64M
=2^26)地址线来寻址,所以BA1~BA0 地址线应该接到2440 的ADDR25~ADDR24 引脚上。13 根行地址线+9 根列地址线 = 22 根。另外HY57V561620F 一个存储单元是2 个字节,相当于有了23 根地址线。BA0,BA1 是最高地址位,所以应该接在ADDR24,ADDR25 上。

也就是说 SDRAM 的BA0,BA1 接S3C2440 的哪几根地址线是根据整个SDRAM 的容量来决定的。

S3C2440 与NOR FLASH(AM29LV160DB)的接线分析
NOR FLASH 的特点是芯片内执行(XIP, eXecute In Place),这样应用程序可以直接在flash 闪存内运行,不必再把代码读到系统RAM 中。NOR 的传输效率很高,在1~4MB 的小容量时具有很高的成本效益,但是很低的写入和擦除速度大大影响了它的性能。
NOR FLASH 的地址线和数据线是分开的。
AM29LV160DB 是一个2Mbyte 的NOR FLASH,分区结构是:
1 个16Kbyte 扇区,2 个8Kbyte 扇区,1 个32Kbyte 扇区,31 个64Kbyte 扇区(字节模式)
1 个8Kbyte 扇区,2 个4Kbyte 扇区,1 个16Kbyte 扇区,31 个32Kbyte 扇区(半字模式)
共35 个扇区。
下图是TQ2440 开发板提供的NOR FLASH 部分接线图。


AM29LV160DB 第47 脚是BYTE#脚,BYTE#接高电平时,器件数据位是16 位,接低电平时,数据位是8 位。上图BYTE#接VCC,D0-D15 做为数据输入输出口。
A0-A19 是地址线,在半字模式下,D0-D15 做为数据输入输出口。因为数据位是16 位,A0-A19 可以选择2^20 = 1M *2BYTE = 2Mbyte。正好是AM29LV160DB 的容量。S3C2440 的ADDR1 要接AM29LV160DB 的A0。上图中AM29LV1
60DB 的A20,A21 是空脚,分别接的是LADDR21,LADDR22。这应该是为了以后方便扩展NOR FLASH 的容量。LADDR21,LADDR22 对AM29LV160DB 是没用的。
当BYTE#接低电平时,D0-D7 做为8 位数据输入输出口,D15 做为地址线A-1。
相当于有了A-1,A0-A19 共21 根地址线。这个时候S3C2440 的ADDR0 应该接在D15(A-1)。。。。ADDR20 接A19。21 根地址线的寻址空间是2^21 = 2Mbyte。正好是AM29LV160DB 的容量。

S3C2440 与NAND FLASH(K9F1208)的接线分析

NAND FLASH 的接线方式和NOR FLASH,SDRAM 都不一样。以TQ2440 开发板用的K
9F1208 为例,分析NAND FLASH 的接线方式。
K9F1208 结构如下图

K9F1208 位宽是8 位。
一页: 512byte + 16byte 最后16byte 是用于存储校验码和其他信息用的,不能
存放实际的数据。
一个块有32 page:(16k+512)byte
K9F1208 有4096 个块:(64M+2M)byte,总共有64Mbyte 可操作的芯片容量
NAND FLASH 以页为单位读写数据,以块为单位擦除数据。
S3C24440 和K9F1208 的接线图如下:

下图是S3C2440 的NAND FLASH 引脚配置:

当选定一个NAND FLASH 的型号后,要根据选定的NAND FLASH 来确定S3
C2440 的NCON,GPG13,GPG14,GPG15 的状态。
下图是S3C2440 中4 个脚位状态的定义:

K9F1208 的一页是512byte,所以NCON 接低电平,GPG13 接高电平。
K9F1208 需要4 个寻址命令,所以GPG14 接高电平
K9F1208 的位宽是8,所以GPG15 接低电平。

NAND FLASH 寻址
对K9F1208 来说,地址和命令只能在I/O[7:0]上传递,数据宽度是8 位。
地址传递分为4 步,如下图:

第1 步发送列地址,既选中一页512BYTE 中的一个字节。512byte 需要9bit 来
选择,这里只用了A0-A7,原因是把一页分成了2 部分,每部分256 字节。通过
发送的读命令字来确定是读的前256 字节还是后256 字节。
当要读取的起始地址(Column Address)在0~255 内时我们用00h 命令,当读取
的起始地址是在256~511 时,则使用01h 命令。
一个块有32 页,用A9-A13 共5 位来选择一个块中的某个页。
总共有4096 个块,用A14-A25 共12 位来选择一个块。
K9F1208 总共有64Mbyte,需要A0-A25 共26 个地址位。
例如要读NAND FLASH 的第5000 字节开始的内容。把5000 分解成列地址和行
地址。
Column_address = 5000%512 = 392
Page_address = (5000>>9) = 9
因为column_address>255,所以用01h 命令读
发送命令和参数的顺序是:
NFCMMD = 0x01;从后256 字节开始读
NFADDR = column_address & 0xff;取column_address 的低8 位送到数据线
NFADDR = page_address & 0xff;发送A9-A16
NFADDR = (page_address >>8) & 0xff; 发送A17-A24
NFADDR = (page_address >> 16) & 0xff;发送A25
上面的NFCMMD,NFADDR.是S3C2440 的NAND FLASH 控制寄存器。读取的数据会放在
NFDATA 中。

分享到:
评论

相关推荐

    s3c2440A中文资料

    s3c2440a_6NandFlash s3c2440a_7clock&power; s3c2440a_8DMA s3c2440a_10PWM&Timer; s3c2440a_11UART s3c2440a_14INTCtrl s3c2440a_16ADC&TSC; s3c2440a_17RTC s3c2440a_18WTD s3c2440a_19SDIO s3c2440a_20IIC s3c...

    S3C2440.jflash

    针对S3C2440(JZ2440 V3.0) 基于eop的烧录脚本 基于Jlink的烧录脚本

    s3c2440芯片中文手册

    s3c2440a_6NandFlash.pdf s3c2440a_7clock&power;(时钟电源).pdf s3c2440a_8DMA.pdf s3c2440a_10PWM&Timer;.pdf s3c2440a_11UART (串口).pdf s3c2440a_14INTCtrl(中断控制).pdf s3c2440a_15LCD控制器中文手册.pdf ...

    s3c2440中文手册(全)

    s3c2440a_6NandFlash.pdf s3c2440a_7clock&power.pdf s3c2440a_8DMA.pdf s3c2440a_10PWM&Timer.pdf s3c2440a_11UART.pdf s3c2440a_14INTCtrl.pdf s3c2440a_16ADC&TSC.pdf....... 另外,附赠,S3C2440英文手册,及...

    s3c2440a中文手册

    s3c2440a中文datasheet- 第6章 Nandflash s3c2440a中文datasheet- 第7章 时钟及电源 s3c2440a中文datasheet- 第8章 DMA s3c2440a中文datasheet- 第10章 PWM及定时器 s3c2440a中文datasheet- 第11章 UART控制...

    S3C2440 nandflash

    S3C2440 nandflash datasheet

    S3C2440 NAND FLASH烧写

    S3C2440 NAND FLASH烧写

    s3c2440a_embedclub.jflash

    s3c2440a_embedclub.jflash,mini2440烧写bootloader必备的

    S3C2440A 裸奔之nandflash操作

    S3C2440A 裸奔之nandflash操作,读写已验证

    S3C2440完全开发流程

    2、JFLASH-S3C2440:S3C2440芯片的JTAG工具 4 3、安装GDB调试工具 5 4、USB下载工具 6 5、UBUNTU开发环境建立 6 三.S3C2440基础实验 8 1、实验一:LED_ON 8 2、实验二:LED_ON_C 9 3、实验三:I/O PORTS 11 5、实验...

    s3c2440nandflash代码

    NANDFlash NAND闪存芯片和NOR闪存芯片的不同主要表现在: 1) 闪存芯片读写的基本单位不同 应用程序对NOR芯片操作以“字”为基本单位。为了方便对大容量NOR闪存的管理,通常将NOR闪存分成大小为128KB或者64KB的逻辑块...

    基于S3C2440的程序.rar

    基于S3C2440的Demo程序.rar 基于S3C2440的LED程序.rar 基于S3C2440的Memory程序.rar 基于S3C2440的NandFlash程序.rar 基于S3C2440的Run in NandFlash程序.rar 基于S3C2440的USB程序.rar

    基于S3C2440A的大容量NANDFLASH的设计应用

    基于S3C2440A的大容量NANDFLASH的设计方案

    mini2440-s3c2440.jflash

    mini2440-s3c2440 jflash jlink配置

    Jflash-s3c2440

    我的TQ2440板子用的JTAG烧写程序源码,linux下测试过。 Only For Nand Flash :K9F2G08U0A 有问题可以留言。

    使用JLink间接烧写S3C2410、S3C2440开发板Nor、Nand Flash的方法

    使用JLink间接烧写S3C2410、S3C2440开发板Nor、Nand Flash的方法

    s3c2440模拟器realboard v1.1.1(内含优龙开发板测试演示)

    rbs3c2440.exe是s3c2440开发板模拟器,版本号v1.1.1,目前能够支持的外设,覆盖了s3c2440的基本功能: 1. 5个时钟和一个看门狗 2. 中断控制器,支持时钟/看门狗中断,串口收发中断,IIC中断等 3. 串口(Demo版本仅...

    s3c2440裸机烧写flash

    用于s3c2440裸写烧写flash的程序。具体说明参考我的博客:s3c2440裸机烧写flash

    s3c2440多级菜单, Flash和Voice下有动画和音乐演示

    s3c2440多级菜单, Flash和Voice下有动画和音乐演示

Global site tag (gtag.js) - Google Analytics