浅析Nandflash烧录技巧与方法
扫描二维码
随时随地手机看文章
Nandflash芯片以其高性价比,大存储容量在电子产品中广泛应用。但是,在此量大质优的应用领域,很多客户却痛苦于批量质量问题:专用工具无法满足量产,量产工具却可能出现极大的不良品率,那么究竟要如何解决呢?
其实根本原因在于目前大部分用户并不是很了解Nandflash烧录的复杂性,他们常采用很直接的方法,即使用一颗能正常运行的NandFlash芯片作为母片,在连接编程器之后,点击烧录软件上的“读取”按钮,把数据从芯片里面完整读取出来,然后再找几颗空芯片,把数据重复写进去。本以为可达到量产的目的,但实际上生产出来的产品却达不到品质的要求,往往会出现批量的产品异常开机或启动的状况。
一、原因分析
原因究竟在哪里呢,在分析之前,那就先得了解一下Nandflash基本的工艺特性:
首先,我们来看NandFlash存储结构,它由多个Block组成,每一个Block又由多个Page组成,每个Page又包含主区(Main Area)和备用区(Spare Area)两个域。其次NandFlash是有坏块的,由于NandFlash的工艺不能保证Nand的Memory Array在其生命周期中保持性能的可靠,因此在Nand的生产中及使用过程中会产生坏块的。
1.原因一:坏块的影响
因为坏块影响了数据的存放地址,用户就不能按常用方法那样,把母片的数据全部读取出来,然后再把数据原原本本拷贝到其他芯片上了,也就产生了传统拷贝机无法量产Nandflash的问题!
既然NandFlash有坏块是无法避免的问题,那就要想办法避开那些坏块;最简单、最有效、最常用的方法就是:跳过!使用“跳过坏块”,我们很好地解决了NandFlash的坏块问题,原本写到坏块的数据,我们也安全转移到下一个块里面!
2.原因二:地址变化
跳过是一种常用而有效的方法,但是实际上,根本问题还依然存在,细心的人会发现,数据存放的地址也发生了变化。
实际应用中,很多用户会把多个文件数据同时存储到NandFlash上(比如uboot、uImage、Logo、rootfs等烧录文件),并给每个文件在NandFlash存储单元中划分了一定大小的存储空间区域,指定了每个文件存储的起始物理地址块;如果某个区域出现了坏块,为了避开它,势必需要把数据安全往下一块转移,而引起的后果就是后续烧录文件的起始物理地址也随着发生了偏移,这将会导致主控MCU无法通过固定的地址,准确、完整地获取到每个文件的数据,最终造成的结果就是产品异常启动。
二、解决建议-分区烧录
分区烧录,用户提前设置好每个文件烧录的起始块地址,无论坏块出现在哪个空间区域,都可以确保每个文件起始块地址都不会发生偏移变化,数据也将根据客户预设方案存放在NandFlash存储区域内,主控MCU也能准确完整读取到每个文件的数据,那么产品就正常跑起来了。
三、解决方案参考
广州致远电子有限公司的P800系列编程器支持按分区烧录(并可支持多种分区格式),可按照每个用户方案需求,设置每个文件的起始块地址和烧录块长度,即可达到高效率烧录,又可提高芯片烧录良品率!
同时,P800系列搭载独立操作系统,还可满足工厂全脱机,一键批量的烧录要求。