当前位置:首页 » 编程软件 » nand编程

nand编程

发布时间: 2023-02-03 20:50:45

Ⅰ NAND的基本操作

每一个页均包含一个2048字节的数据区和64字节的空闲区,总共包含2,112字节。空闲区通常被用于ECC、耗损均衡(wear leveling)和其它软件开销功能,尽管它在物理上与其它页并没有区别。NAND器件具有8或16位接口。通过8或16位宽的双向数据总线,主数据被连接到NAND存储器。在16位模式,指令和地址仅仅利用低8位,而高8位仅仅在数据传输周期使用。
擦除区块所需时间约为2ms。一旦数据被载入寄存器,对一个页的编程大约要300μs。读一个页面需要大约25μs,其中涉及到存储阵列访问页,并将页载入16,896位寄存器中。
接口由6个主要控制信号构成
除了I/O总线,NAND接口由6个主要控制信号构成:
1.芯片启动(Chip Enable, CE#):如果没有检测到CE信号,那么,NAND器件就保持待机模式,不对任何控制信号作出响应。
2.写使能(Write Enable, WE#): WE#负责将数据、地址或指令写入NAND之中。
3.读使能(Read Enable, RE#): RE#允许输出数据缓冲器。
4.指令锁存使能(Command Latch Enable, CLE): 当CLE为高时,在WE#信号的上升沿,指令被锁存到NAND指令寄存器中。
5.地址锁存使能(Address Latch Enable, ALE):当ALE为高时,在WE#信号的上升沿,地址被锁存到NAND地址寄存器中。
6.就绪/忙(Ready/Busy, R/B#):如果NAND器件忙,R/B#信号将变低。该信号是漏极开路,需要采用上拉电阻。
数据每次进/出NAND寄存器都是通过16位或8位接口。当进行编程操作的时候,待编程的数据进入数据寄存器,处于在WE#信号的上升沿。在寄存器内随机存取或移动数据,要采用专用指令以便于随机存取。
数据寄存器输出数据的方式
数据寄存器输出数据的方式与利用RE#信号的方式类似,负责输出现有的数据,并增加到下一个地址。WE#和RE#时钟运行速度极快,达到30ns的水准。当RE#或CE#不为低的时候,输出缓冲器将为三态。这种CE#和RE#的组合使能输出缓冲器,容许NAND闪存与NOR、SRAM或DRAM等其它类型存储器共享数据总线。该功能有时被称为“无需介意芯片启动(chip enable don't care)”。这种方案的初衷是适应较老的NAND器件,它们要求CE#在整个周期为低(译注:根据上下文改写)。
输入寄存器接收到页编程(80h)指令时,内部就会全部重置为1s,使得用户可以只输入他想以0位编程的数据字节
带有随机数据输入的编程指令。该指令只需要后面跟随着数据的2个字节的地址
指令周期
所有NAND操作开始时,都提供一个指令周期
当输出一串WE#时钟时,通过在I/O位7:0上设置指令、驱动CE#变低且CLE变高,就可以实现一个指令周期。注意:在WE#信号的上升沿上,指令、地址或数据被锁存到NAND器件之中。如表1所示,大多数指令在第二个指令周期之后要占用若干地址周期。注意:复位或读状态指令例外,如果器件忙,就不应该发送新的指令。
注意:因为最后一列的位置是2112,该最后位置的地址就是08h(在第二字节中)和3Fh(在第一字节中)。PA5:0指定区块内的页地址,BA16:6指定区块的地址。虽然大多编程和读操作需要完整的5字节地址,在页内随机存取数据的操作仅仅用到第一和第二字节。块擦除操作仅仅需要三个最高字节(第三、第四和第五字节)来选择区块。
总体而言,NAND的基本操作包括:复位(Reset, FFh)操作、读ID(Read ID, 00h)操作、读状态(Read Status, 70h)操作、编程(Program)操作、随机数据输入(Random data input, 85h)操作和读(Read)操作等。

Ⅱ 请问,中国有COMPASS品牌的NAND FLASH编程器吗

艾普科技NPRO6683烧录器是专为批量烧写NAND Flash而量身定做的工具,它具有如下特征:

一、 功能介绍
该款烧录器支持8MByte(64Mbit)到32GByte(256Gbit)的NAND Flash的快速烧录,适合具有预装资料的GPS导航仪,车载电脑主机,高清播放机,高清机顶盒,蓝光DVD,网络摄像头,手持智能设备,学习机,数码相框,游戏机,电子书,点读机,语音玩具,监控门禁类等产品在大规模生产中使用,加密CF卡,加密U盘,加密SD卡,加密固态硬盘等存储工具的Flash原始数据复制(直接PC端复制不可用),它具有如下特征:
1.采用一托四的结构设计,可以对四片NAND Flash同时进行烧录,烧录过程实时校验写入数据,绝对保证数据的正确,支持目前的多种软硬件平台对NAND Flash的管理方式;
2.支持多种软硬件平台的NAND Flash数据烧写,内置针对多种软硬件平台的量身定做的坏块管理及烧写方式,极大的提高烧录良品率。
3.烧录速度快,512Mbit小页面Flash速度约1.8MByte/秒(带校验),8Gbit大页面SLC架构Flash编程速度约3MByte/秒(带校验),8Gbit大页面MLC架构Flash编程速度约2.5MByte/秒(带校验)。
4.标配4.3寸超大真彩液晶屏,一切操作可视化,触摸屏及按键双输入方式,无需连接电脑,方便用户实时观察烧录过程;
5.支持以文件方式烧写和母片拷贝两种烧录方式:
(1)母片拷贝方式:用于将用户原始Flash上的内容拷贝到板载Flash,之后再将板载Flash上相应的内容写入空的Flash;
(2)文件方式烧写:用户可将指定文件置于SD卡或编程器内置硬盘,本方式读出文件内容按指定方式(可支持特殊文件系统)写入Flash;
6.可灵活配置多种参数,如页读取、页、块内容比较、生成文件、坏块扫描、擦除、扫描有数据区间等等多种操作:
(1)对母片拷贝方式,可设置特殊坏块标记,方便适应不同的用户不同的坏块管理方式。且可设置拷贝区间,用户可选择拷贝有效数据区域,这样在之后烧写空片时可降低单位Flash的烧写时间;
(2)可读取指定Flash任意页的内容显示,方便用户实时观察Flash上的数据分布;
(3)可独立擦除指定的Flash,可独立扫描指定Flash的坏块,并形成详细坏块分布信息显示于屏幕;
(4)可扫描Flash上的空白页或空白块,方便用户了解原始Flash上的空间使用情况;
(5)可比较两个Flash之间不同块或不同页的内容,并将不同之处显示于屏幕,并可顺序浏览每一处不同;
7.可根据用户的特殊要求快速修改软件,按你的特殊要求量身定做烧录方式(坏块管理方式),修改周期不超过3个工作日,且可定制特殊的文件系统的管理;

Ⅲ 什么是NAND闪存

由于闪存颗粒中存储密度存在差异,所以闪存又分为SLC、MLC、TLC和QLC。简单的说,NAND闪存的基本原理,QLC容量大,但性能也变差了。

SLC:每个Cell单元存储1bit信息,也就是只有0、1两种电压变化,结构简单,电压控制也快速,反映出来的特点就是寿命长,性能强,P/E寿命在1万到10万次之间,但缺点就是容量低而成本高,毕竟一个Cell单元只能存储1bit信息。

MLC:每个cell单元存储2bit信息,需要更复杂的电压控制,有00,01,10,11四种变化,这也意味着写入性能、可靠性能降低了。其P/E寿命根据不同制程在3000-5000次不等。

TLC:每个cell单元存储3bit信息,电压从000到001有8种变化,容量比MLC再次增加1/3,成本更低,但是架构更复杂,P/E编程时间长,写入速度慢,P/E寿命也降至1000-3000次,部分情况会更低。寿命短只是相对而言的,通常来讲,经过重度测试的TLC颗粒正常使用5年以上是没有问题的。

QLC或者可以叫4bit MLC,电压有16种变化,但是容量能增加33%,就是写入性能、P/E寿命与TLC相比会进一步降低。具体的性能测试上,美光有做过实验。读取速度方面,SATA接口中的二者都可以达到540MB/S,QLC表现差在写入速度上。

因为其P/E编程时间就比MLC、TLC更长,速度更慢,连续写入速度从520MB/s降至360MB/s,随机性能更是从9500 IOPS降至5000 IOPS,损失将近一半。

分类

按种类分

U盘、CF卡、SM卡、SD/MMC卡、记忆棒、XD卡、MS卡、TF卡、PCIe闪存卡。

按品牌分

矽统(SIS)、金士顿、索尼、LSI、闪迪、Kingmax、鹰泰、创见、爱国者、纽曼、威刚、联想、台电、微星、SSK、三星、海力士。

以上内容参考:网络-闪存



Ⅳ NANDFLASH读写编程过程中提示Good blocks not enough

..这是由于要烧录的数据超过了芯片好块的大小,所以设置器件配置字(Dev.Config)还应该结合芯片的实际情况,如果检查出芯片中有16个坏块,那实际的好块 (ALL Blocks)应该相应减去0x10. 有时在读写母片时也会出现这样的情况,而且检查坏块多少时发现有很多的坏块。这是因为母片中的坏块标志位被转移到其他的地方。默认的坏块标志位被写成有效的数据。

Ⅳ 什么编程器可以烧录NAND Flash而且要稳定一点.

有款FLASHRUNNER万用型烧录器 是意大利制造的,支持大部分芯片烧录,调试完成后比较稳定。此烧录器在线烧录器,可受控。此款烧录器唯一缺点是调试比较麻烦!

Ⅵ 如何制作和使用Jffs2文件系统

嵌入应用:如何制作和使用Jffs2文件系统 (zhuan)本文主要介绍如何在AT91SAM9261EK板子上制作和使用jffs2文件系统,使用的是linux-2.6.21内核。

首先配置MTD

$ make menuconfig
进入 Memory Technology Devices (MTD) --->
<*> Memory Technology Device (MTD) support
[*] Debugging
[*] MTD partitioning support
[*] Command line partition table parsing
[*] Direct char device access to MTD devices
[*] Caching block device access to MTD devices
RAM/ROM/Flash chip drivers ----->
<*> Detect non-CFI AMD/JEDEC-compatible flash chips
<*> Support for AMD/Fujitsu flash chips
Mapping drivers for chip access --->
[*] Support non-linear mappings of flash chips
Self-contained MTD device drivers --->
[*] Support for AT45... DataFlash
NAND Flash Device Drivers ---->
[*] NAND Device Support
[*] Support for NAND Flash /SmartMedia on AT91
File systems ---->
<*> Second extended fs support
[*] Inotify file change notification support
[*] Inotify support for user space
<*> Filesystem in Userspace support
Miscellaneous filesystems
<*> Journalling Flash File System v2 (JFFS2) support
[*] JFFS2 write-buffering support
<*> Compressed ROM file system support (cramfs)

以上配置中没有列出的,都没选;其配置仅做参考,可根据自己的需要自行配置。

$ make all

其次制作mtd-util工具

从网上下载zlib-1.2.3.tar.gz解压缩$ cd zlib-1.2.3

$ ./configure –prefix=/usr/local/arm/3.4.1/arm-linux --shared

修改Makefile如下:

CC=arm-linux-gcc

LDSHARED=arm-linux-ld -shared

$ make all

$ make install

注意:这里是安装在/usr/local/arm/3.4.1/arm-linux目录下

由于交叉编译mtd工具时需要zlib.h文件,所以在编译之前先安装zlib库文件。

从网上下载mtd-snapshot-20050519.tar.bz2 解压缩 $ cd mtd/util

修改该目录下的Makefile:

CROSS=arm-linux-

$ make all

然后将该目录下生成的 flash_erase,flash_eraseall, mkfs.jffs2工具放在ramdisk 文件系统中(我这里放在/bin目录下),另外在ramdisk文件系统的dev目录下要保证有mtd0~mtd9,mtdblock0~mtdblock9这些设备,如果没有可参考 ramdisk文件系统的制作,也可从pc机相同目录下拷贝,要加上文件属性。

另外,需要将/arm-linux/lib目录下的libz.so, libz.so.1, libz.so.1.2.3文件拷贝到ramdisk文件系统的/lib目录下,否则mkfs.jffs2工具不能使用。

最后将新生成的uImage和ramdisk文件下载到板子上,起动系统,使用命令 cat /proc/mtd可以看到

dev: size erasesize name

mtd0: 00040000 00020000 "Partition 1"

mtd1: 0ffc0000 00020000 "Partition 2"

mtd2: 00420000 00000210 "spi0.0-AT45DB321x"

这里mtd0,mtd1是nandflash上的分区; mtd2是dataflsh上的分区,该分区上放有u-boot,uImage.img,ramdisk.img,所以我们这里可以使用空的nandflash上的两个分区。使用之前要先用工具flash_erase或者flash_eraseall擦除nandflash,具体使用的步骤如下:

# flash_erase /dev/mtd1

制作jffs2映像

# cd /var/tmp

# mkdir jffs2 (jffs2下的目录可以任意建)

# mkfs.jffs2 –d jffs2/ -o jffs2.img

# cp /var/tmp/jffs2/jffs2.img /dev/mtdblock1

最后# mount -t jffs2 /dev/mtdblock1 /mnt/mtd即可,使用结束可使用$ umount /mnt/mtd卸载.

如果只是当作普通的jffs2 来使用dataflash或者nandflash,可不必制作 jffs2映像,只需要最后一步,# mount -t jffs2 /dev/mtdblock1 /mnt/mtd即可。

AT91sam9263EK使用JFFS2根文件系统

在AT91sam9263EK成功配置了NFS根文件系统后,后来又想把JFFS2也移植到AT91sam9263EK上吧,说干就干。

1. 呵呵,其实很简单我使用的linux-2.6.20内核里已经有jffs2 文件系统支持,选上jffs2即可

File systems --->

Miscellaneous filesystems --->

<*> Journalling Flash File System v2 (JFFS2) support

(0) JFFS2 debugging verbosity (0 = quiet, 2 = noisy)

[*] JFFS2 write-buffering support

[*] JFFS2 summary support (EXPERIMENTAL)

[*] JFFS2 XATTR support (EXPERIMENTAL)

[*] JFFS2 POSIX Access Control Lists

[*] JFFS2 Security Labels

[*] Advanced compression options for JFFS2

[*] JFFS2 ZLIB compression support

[*] JFFS2 RTIME compression support

[ ] JFFS2 RUBIN compression support

JFFS2 default compression mode (priority)

选上MTD支持

Device Drivers --->

Memory Technology Devices (MTD) --->

<*> Memory Technology Device (MTD) support

[ ] Debugging

<*> MTD concatenating support

[*] MTD partitioning support

< > RedBoot partition table parsing

[*] Command line partition table parsing

<*> ARM Firmware Suite partition parsing

--- User Moles And Translation Layers

<*> Direct char device access to MTD devices

<*> Caching block device access to MTD devices

<*> FTL (Flash Translation Layer) support

<*> NFTL (NAND Flash Translation Layer) support

[ ] Write support for NFTL

2. 从ttp://www.linux-mtd.infradead.org/上下载

mtd-utils-1.0.0.tar.gz 到宿主机。

解压

tar xvzf mtd-utils-1.0.0.tar.gz

进入mtd-utils-1.0.0目录修改Makefile进行编译。

编译出mkfs.jffs2,nandwrite等工具

3. 创建jffs2根文件系统:

首先要有一个其他类型的根文件系统,制作和获取方式可以参见<< AT91sam9263EK使用NFS根文件系统>>

比如可以:

mount -t cramfs rootfs_lnxdemo.cramfs tmp/ -o loop

rootfs_lnxdemo.cramfs由atmel提供当然你可以自己制作,这里直接使用atmel的省去了制作的麻烦。

tar czvf target.tar.gz tmp/

生成jffs2根文件系统镜像:

mkfs.jffs2 –l –s 0x400 –e 0x20000 –d tmp/ -o target.jffs2

4. 烧写jffs2根文件系统镜像到nand flash。

烧写方法应该有多种常用的有2种(呵呵自己认为的):

a.通过nand编程器烧写镜像文件到nand flash芯片然后再焊接到pcb.

b.挂载nfs文件系统,使用nandwrite工具写镜像文件

到mtd设备。

第一种适合生产时使用,而我们测试时候比较适合使用第二种方式。

挂载nfs文件系统:

nandwrite –o /dev/mtd1 target.jffs2

或者是在nfs 根文件系统下:

mount –t jffs2 /dev/mtdblock1 /mnt

cd /mnt

tar xvzf ../target.tar.gz

umount /mnt

5. 配置内核启动参数如下:

setenv bootargs mem=64M console=ttyS0 115200 root=/dev/mtdblock1 rootfstype=jffs2 rw

6. 重新启动,呵呵内核使用jffs2文件系统自动挂载根文件系统到mtdblock1设备上。

ls 测试一下

vi test

hello this is for test jffs2 filesystem.

保存退出。

Sync

重新启动

vi test

内容依旧。

Ok jffs2根文件系统引导成功。
Linux联盟收集整理 ,转贴请标明原始链接

Ⅶ 如何用编程器对NAND Flash进行一键编程

1. 高集成的 NAND Flash 管理平台 前面已经向大家剖析了 NAND Flahs 的编程结构,对 NAND Flash 编程是业界公认的难 题,操作 NandFlash 过程中会随机出现坏块,这是每个嵌入式系统的致命隐患。随着移动技 术的发展, 很多数据终端等产品的功能不断增加, 必须要进行平台化、 系统化的整合。 灵活、 宽泛的 Android、Linux、WinCE 系统是平台的首选。 系统的调试、引导程序的装载、文件系统的启动,如果每个文件都需要工程师通过电脑 操作,并衍生到生产端,整个研发、生产流程将异常繁琐,无疑会导致下载速度慢、效率低。 下面介绍用 SmartPRO 6000F 通过 5 个步骤来完成对 NAND Flash 的“一键”编程 1.1 SmartPRO 6000F 编程 NAND Flash 的步骤: 1.1.1 第一步:调入需要编程的文件; 通过 SmartPRO III 软件,选择需要编程的芯片后,在“操作选择”中调入文件。如下图: 图 1 调入需要编程的文件 1.1.2 第二步:填写文件地址 注意,如果文件是否自带备用区(OOB)数据,直接填地址即可。 产品应用笔记 ?2014Guangzhou ZHIYUAN Electronics Stock CO., LTD. 1 广州致远电子股份有限公司 编程器应用文档 NAND Flash 编程解析 图 2 填写文件地址 1.1.3 第三步:选择 ECC 算法 如果文件没有备用区数据,请指明 ECC 算法,目前 SmartPRO III 软件支持 10 多种 主流的 ECC。 产品应用笔记 ?2014Guangzhou ZHIYUAN Electronics Stock CO., LTD. 2 广州致远电子股份有限公司 编程器应用文档 NAND Flash 编程解析 图 3 选择 ECC 算法 1.1.4 第四步:设置坏块管理策略 坏块管理涉及到 NAND Flash 的烧录良率,SmartPRO III 软件完全按照各半导体公 司的标准标注坏块的方法对 NAND Flash 坏块进行标注,绝对不会误操作。 产品应用笔记 ?2014Guangzhou ZHIYUAN Electronics Stock CO., LTD. 3 广州致远电子股份有限公司 编程器应用文档 NAND Flash 编程解析 图 4 设置坏块管理策略 1.1.5 第五步:保存工程 点击 “保存工程” , 1 分钟后可以得到您设置 NAND Flash 的所有管理项的批处理文 件了。 图 5 保存工程 1.1.6 第六步:一键量产 以后每次烧录 NAND Flash 的时候,调入保存好的工程文件,一键量产! 图 6 一键量产 产品应用笔记 ?2014Guangzhou ZHIYUAN Electronics Stock CO., LTD. 4 广州致远电子股份有限公司 编程器应用文档 NAND Flash 编程解析 2. NAND Flash 编程小结 虽然 NAND Flash 有这些特殊的地方,但随着人们对“大数据”的追求,应用将越 来越广,高效、稳定的编程工具将能大幅提高由研发到生产的导入效率,为产品市场化 提供有效保障。

热点内容
java返回this 发布:2025-10-20 08:28:16 浏览:750
制作脚本网站 发布:2025-10-20 08:17:34 浏览:1012
python中的init方法 发布:2025-10-20 08:17:33 浏览:719
图案密码什么意思 发布:2025-10-20 08:16:56 浏览:879
怎么清理微信视频缓存 发布:2025-10-20 08:12:37 浏览:774
c语言编译器怎么看执行过程 发布:2025-10-20 08:00:32 浏览:1127
邮箱如何填写发信服务器 发布:2025-10-20 07:45:27 浏览:351
shell脚本入门案例 发布:2025-10-20 07:44:45 浏览:229
怎么上传照片浏览上传 发布:2025-10-20 07:44:03 浏览:912
python股票数据获取 发布:2025-10-20 07:39:44 浏览:876