<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > NandFlash系列之二:S3C2410讀寫(xiě)Nand Flash分析

NandFlash系列之二:S3C2410讀寫(xiě)Nand Flash分析

作者: 時(shí)間:2013-03-18 來(lái)源:網(wǎng)絡(luò ) 收藏

  一、結構分析

  處理器集成了8位控制器。目前市場(chǎng)上常見(jiàn)的8位有三星公司的k9f1208、k9f1g08、k9f2g08等。k9f1208、k9f1g08、k9f2g08的數據頁(yè)大小分別為512Byte、2kByte、2kByte。它們在尋址方式上有一定差異,所以程序代碼并不通用。本文以處理器和k9f1208系統為例,講述的讀寫(xiě)方法。

  NandFlash的數據是以bit 的方式保存在 里的,一般來(lái)說(shuō),一個(gè) 中只能存儲一個(gè)bit,這些 以8 個(gè)或者16 個(gè)為單位,連成bit line,形成所謂的byte(x8)/word(x16),這就是NAND Device 的位寬。這些Line 組成Page, page 再組織形成一個(gè)Block。k9f1208的相關(guān)數據如下:

  1block=32page;1page=528byte=512byte(Main Area)+16byte(Spare Area)。

  總容量為=4096(block數量)*32(page/block)*512(byte/page)=64Mbyte

  NandFlash以頁(yè)為單位讀寫(xiě)數據,而以塊為單位擦除數據。按照k9f1208的組織方式可以分四類(lèi)地址: Column Address、halfpage pointer、Page Address 、Block Address。A[0:25]表示數據在64M空間中的地址。

  Column Address表示數據在半頁(yè)中的地址,大小范圍0~255,用A[0:7]表示;

  halfpage pointer表示半頁(yè)在整頁(yè)中的位置,即在0~255空間還是在256~511空間,用A[8]表示;

  Page Address表示頁(yè)在塊中的地址,大小范圍0~31,用A[13:9]表示;

  Block Address表示塊在flash中的位置,大小范圍0~4095,A[25:14] 表示;

  二、讀操作過(guò)程

  K9f1208的尋址分為4個(gè)cycle。分別是:A[0:7]、A[9:16]、A[17:24]、A[25]。

  讀操作的過(guò)程為: 1、發(fā)送讀取指令;2、發(fā)送第1個(gè)cycle地址;3、發(fā)送第2個(gè)cycle地址;4、發(fā)送第3個(gè)cycle地址;5、發(fā)送第4個(gè)cycle地址;6、讀取數據至頁(yè)末。

  K9f1208提供了兩個(gè)讀指令,‘0x00’、‘0x01’。這兩個(gè)指令區別在于‘0x00’可以將A[8]置為0,選中上半頁(yè);而‘0x01’可以將A[8]置為1,選中下半頁(yè)。

  雖然讀寫(xiě)過(guò)程可以不從頁(yè)邊界開(kāi)始,但在正式場(chǎng)合下還是建議從頁(yè)邊界開(kāi)始讀寫(xiě)至頁(yè)結束。下面通過(guò)分析讀取頁(yè)的代碼,闡述讀過(guò)程。

  static void ReadPage(U32 addr, U8 *buf) //addr表示flash中的第幾頁(yè),即‘flash地址>>9’

  {

  U16 i;

  NFChipEn(); //使能NandFlash

  WrNFCMD(READCMD0); //發(fā)送讀指令‘0x00’,由于是整頁(yè)讀取,所以選用指令‘0x00’

  WrNFAddr(0); //寫(xiě)地址的第1個(gè)cycle,即Column Address,由于是整頁(yè)讀取所以取0

  WrNFAddr(addr); //寫(xiě)地址的第2個(gè)cycle,即A[9:16]

  WrNFAddr(addr>>8); //寫(xiě)地址的第3個(gè)cycle,即A[17:24]

  WrNFAddr(addr>>16); //寫(xiě)地址的第4個(gè)cycle,即A[25]。

  WaitNFBusy(); //等待系統不忙

  for(i=0; i512; i++)

  buf[i] = RdNFDat(); //循環(huán)讀出1頁(yè)數據

  NFChipDs(); //釋放NandFlash

  }


上一頁(yè) 1 2 下一頁(yè)

關(guān)鍵詞: NandFlash S3C2410 memory cell

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>