淺析Nandflash燒錄技巧與方法
Nandflash芯片以其高性價比,大存儲容量在電子產(chǎn)品中廣泛應(yīng)用。但是,在此量大質(zhì)優(yōu)的應(yīng)用領(lǐng)域,很多客戶卻痛苦于批量質(zhì)量問題:專用工具無法滿足量產(chǎn),量產(chǎn)工具卻可能出現(xiàn)極大的不良品率,那么究竟要如何解決呢?
本文引用地址:http://www.ex-cimer.com/article/201902/397854.htm其實根本原因在于目前大部分用戶并不是很了解Nandflash燒錄的復(fù)雜性,他們常采用很直接的方法,即使用一顆能正常運行的NandFlash芯片作為母片,在連接編程器之后,點擊燒錄軟件上的“讀取”按鈕,把數(shù)據(jù)從芯片里面完整讀取出來,然后再找?guī)最w空芯片,把數(shù)據(jù)重復(fù)寫進去。本以為可達到量產(chǎn)的目的,但實際上生產(chǎn)出來的產(chǎn)品卻達不到品質(zhì)的要求,往往會出現(xiàn)批量的產(chǎn)品異常開機或啟動的狀況。
一、原因分析
原因究竟在哪里呢,在分析之前,那就先得了解一下Nandflash基本的工藝特性:
首先,我們來看NandFlash存儲結(jié)構(gòu),它由多個Block組成,每一個Block又由多個Page組成,每個Page又包含主區(qū)(Main Area)和備用區(qū)(Spare Area)兩個域。其次NandFlash是有壞塊的,由于NandFlash的工藝不能保證Nand的Memory Array在其生命周期中保持性能的可靠,因此在Nand的生產(chǎn)中及使用過程中會產(chǎn)生壞塊的。
1. 原因一:壞塊的影響
因為壞塊影響了數(shù)據(jù)的存放地址,用戶就不能按常用方法那樣,把母片的數(shù)據(jù)全部讀取出來,然后再把數(shù)據(jù)原原本本拷貝到其他芯片上了,也就產(chǎn)生了傳統(tǒng)拷貝機無法量產(chǎn)Nandflash的問題!
既然NandFlash有壞塊是無法避免的問題,那就要想辦法避開那些壞塊;最簡單、最有效、最常用的方法就是:跳過!使用“跳過壞塊”,我們很好地解決了NandFlash的壞塊問題,原本寫到壞塊的數(shù)據(jù),我們也安全轉(zhuǎn)移到下一個塊里面!
2. 原因二:地址變化
跳過是一種常用而有效的方法,但是實際上,根本問題還依然存在,細心的人會發(fā)現(xiàn),數(shù)據(jù)存放的地址也發(fā)生了變化。
實際應(yīng)用中,很多用戶會把多個文件數(shù)據(jù)同時存儲到NandFlash上(比如uboot、uImage、Logo、rootfs等燒錄文件),并給每個文件在NandFlash存儲單元中劃分了一定大小的存儲空間區(qū)域,指定了每個文件存儲的起始物理地址塊;如果某個區(qū)域出現(xiàn)了壞塊,為了避開它,勢必需要把數(shù)據(jù)安全往下一塊轉(zhuǎn)移,而引起的后果就是后續(xù)燒錄文件的起始物理地址也隨著發(fā)生了偏移,這將會導(dǎo)致主控MCU無法通過固定的地址,準(zhǔn)確、完整地獲取到每個文件的數(shù)據(jù),最終造成的結(jié)果就是產(chǎn)品異常啟動。
二、解決建議-分區(qū)燒錄
分區(qū)燒錄,用戶提前設(shè)置好每個文件燒錄的起始塊地址,無論壞塊出現(xiàn)在哪個空間區(qū)域,都可以確保每個文件起始塊地址都不會發(fā)生偏移變化,數(shù)據(jù)也將根據(jù)客戶預(yù)設(shè)方案存放在NandFlash存儲區(qū)域內(nèi),主控MCU也能準(zhǔn)確完整讀取到每個文件的數(shù)據(jù),那么產(chǎn)品就正常跑起來了。
三、解決方案參考
廣州致遠電子有限公司的P800系列編程器支持按分區(qū)燒錄(并可支持多種分區(qū)格式),可按照每個用戶方案需求,設(shè)置每個文件的起始塊地址和燒錄塊長度,即可達到高效率燒錄,又可提高芯片燒錄良品率!
同時,P800系列搭載獨立操作系統(tǒng),還可滿足工廠全脫機,一鍵批量的燒錄要求。
評論