<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è) > 嵌入式系統 > 設計應用 > 基于A(yíng)RM9內核Processor外部NANDFLASH的控制實(shí)現

基于A(yíng)RM9內核Processor外部NANDFLASH的控制實(shí)現

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

  的讀寫(xiě)操作以page方式進(jìn)行,一次讀寫(xiě)均為一個(gè)page,erase方式以block方式進(jìn)行。這種方式,使其讀寫(xiě)速度大大提高。

  在時(shí)序方面,以讀操作為例,其時(shí)序如圖3所示。

IC72新聞中心

  操作過(guò)程主要分為以下幾個(gè)步驟:

  (1)發(fā)送讀操作命令

  CE有效,CLE有效,WE有效,I/O0~I/O8上面數據為command代碼數據。

  (2)發(fā)送地址數據(需要讀取的FLASH地址)

  CE有效,ALE有效,WE有效,I/O0~I/O8上面為所需地址數據。由于地址數據較多,所以需要分幾次依次發(fā)送。每次發(fā)送都需要產(chǎn)生WE信號以將其寫(xiě)入芯片。

  (3)等待R/B信號,最后讀出數據

  在最后一個(gè)地址數據寫(xiě)入FLASH之后,R/B信號即變低。等待芯片完成整個(gè)page數據讀取之后,R/B信號變高。此時(shí),CE有效,ALE,CLE均拉低,依次產(chǎn)生RE信號,從I/O0~I/O8讀取出所需數據。

  對于寫(xiě)操作和擦除操作,其基本原理相同,只是信號順序略有改變,就不再贅述。

  由于使用了CPU地址線(xiàn)A1,A2連接CLE,ALE引腳,對CPU低2、3位地址的讀寫(xiě)操作就意味著(zhù)對進(jìn)行讀寫(xiě)命令/數據操作。如果此程序工作在OS上的application層的話(huà),MMU已經(jīng)屏蔽程序對底層硬件的直接訪(fǎng)問(wèn),所以需要對MMU進(jìn)行設定,為NANDFLASH開(kāi)辟一塊。Memory映像區域,這樣就可以通過(guò)OS對底層的NANDFLASH進(jìn)行操作。以該系統為例,使用CPU的CS1引腳控制NANDFLASH的CE信號,先將其映像為0x24000000地址,此時(shí),對0x24000000地址讀寫(xiě)即對NANDFLASH芯片進(jìn)行數據讀寫(xiě),而對Ox24000002地址寫(xiě)數據,使CPU的A1地址引腳為高,即對NANDFLASH發(fā)送command命令,同樣,對0x24000004地址寫(xiě)數據,即對NANDFLASH發(fā)送address數據。

  在對NANDFLASH發(fā)送命令/數據之后,由于程序運行速度比FLASH芯片快很多,需要在每一次操作之后插入若干等待周期,并利用CPU的GPIO檢測芯片R/B信號。直至芯片完成本次操作再進(jìn)行下一步操作。

  需要注意的是,在對FLASH發(fā)送命令數據過(guò)程中的等待,沒(méi)有反饋信號可以檢測,只能通過(guò)反復調試確定其所需等待時(shí)間。

  在設計中采用CPU的CS1信號對NANDFLASH進(jìn)行CE(片選)控制。此處不能采用CPU的GPIO進(jìn)行控制,因為在嵌入式設備的ARMCPU中,CPU本身采用了指令、數據自動(dòng)預讀的高速緩存技術(shù)和流水線(xiàn)技術(shù)。因此,當程序在NORFLASH里面直接運行的時(shí)候(目前絕大多數嵌入式系統采用的方式),在運行任何兩段相連的代碼中間,CPU都有可能對NORFLASH進(jìn)行指令或數據的預讀操作,從而產(chǎn)生大量的RE,OE信號和地址信號。如果使用GPIO控制NANDFLASH的CE信號則無(wú)法避免這種影響。CPU的CS1信號是由CPU內部自動(dòng)產(chǎn)生,因此在CPU預讀期間,CS1信號可以有效屏蔽NANDFLASH芯片。并且,由于NANDFLASH芯片支持CEdon'tcare模式,在CE無(wú)效的情況下,芯片本身的工作狀態(tài)并不會(huì )被干擾,由此保證了NORFLASH和NANDFLASH在同一CPU界面中互不干擾的穩定運行。對于CS1信號的寬度等參數,也需要在實(shí)驗中進(jìn)行調節,才能保證整個(gè)系統快速穩定的運行。

4 NANDFLASH在系統中的讀寫(xiě)速度

  經(jīng)過(guò)測試在該系統平臺中,OS為PalmOS5.4;CPU使用PXA270312MHz;SDRAM使用Samsung的16bdatawidthHYB25L256160AF-7.5@104MHz;NANDFLASH選用SAMSung128MB8bI/ONANDFLASHK9F1G08U0A達到在文件系統下面的讀/寫(xiě)的速度為3MB/s,擦除的速度為65MB/s,在手持式設備中運用性能已經(jīng)夠了。

電機保護器相關(guān)文章:電機保護器原理

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

關(guān)鍵詞: ARM9內核 Processor NANDFLASH

評論


相關(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>