前兩天在搞Ch375(南京生産的USB解決方案晶片),讀寫都沒有問題,也能完成初始化操作,就是不中斷,用示波器測試1引腳(中斷引腳)信号會跳變為低電平然後慢慢地傳回到高電平,很奇怪!最後才發現是示波器的問題,設定成為側交流分量造成的。最後檢測PCB驚人的發現是PCB上這根線沒有連上。
說主題!
今天搞Nand Flash,前面測試沒有問題,能寫入資料也能讀出資料,并且完全正确。但是用檔案系統來讀寫的時候,ID沒問題,但是讀寫都不對,隻要讀資料讀出來的就是錯的,結果顯示Spare區的第六個位元組不為0xFF,表示它是一個壞塊,很納悶,剛貼上去的Nand怎麼會一系列的壞塊呢?搞不明白。換了好幾塊晶片,同時也換了好幾種型号,最後沒折了,想到了先全部擦除一次試試。擦除的軟體顯示的卻有很多壞塊,不過擦除完了,就沒有壞塊了!
這裡附帶Nand Spare區的資訊:
我的Nand一塊裡面有32頁共528位元組,
每一頁分為ABC區:A區256位元組,B區256位元組,共同組成了每一頁的主資料區剩下的16位元組為C區,也就是我們說的Spare區
Spare區的16位元組是這樣定義的:
LSN0 LSN1 LSN2
RESERVED RESERVED
BI
ECC0 ECC1 ECC2 S-ECC0 S-ECC1
RESERVED RESERVED RESERVED RESERVED RESERVED
> LSN : Logical Sector Number
> ECCa,ECCb,ECCc : ECC code for Main area data
> S_ECCa,S_ECCb : ECC code for LSN data
> BI : Bad block Information
不用說也明白什麼意思!