在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > Linux驅(qū)動(dòng)之Nand Flash四問(wèn),原理、工作方式都包含了

            Linux驅(qū)動(dòng)之Nand Flash四問(wèn),原理、工作方式都包含了

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

              Nand Flash 是一個(gè)存儲(chǔ)芯片。

            本文引用地址:http://www.biyoush.com/article/201801/374606.htm

              那么:這樣的操作很理“讀地址A的數(shù)據(jù),把數(shù)據(jù)B寫到地址A”

              問(wèn)1:原理圖上的Nand Flash和SC2440之間只有數(shù)據(jù)線,怎么傳輸?shù)刂?

              答:在Data0-Data7上既傳輸數(shù)據(jù),又傳輸?shù)刂?,?dāng)ALE為高電平時(shí)傳輸?shù)氖堑刂?/p>

              問(wèn)2:從Nand Flash芯片手冊(cè)可知,要操作Nand Flash需要先發(fā)出命令,怎么傳入命令。

              答:在Data0-Data7既傳輸數(shù)據(jù),又傳輸?shù)刂?,也傳輸命?/p>

              當(dāng)ALE為高電平時(shí)傳輸?shù)氖堑刂?/p>

              當(dāng)CLE為高電平時(shí)傳輸?shù)氖敲?/p>

              當(dāng)ALE和CLE為低電平時(shí)傳輸?shù)氖菙?shù)據(jù)

              問(wèn)3:數(shù)據(jù)線既接到Nand Flash,也接到NOR Flash,還接到SDRAM等等,怎么避免干擾?

              答:這些設(shè)備,要訪問(wèn)之前必須選中

              沒有選中的芯片不會(huì)工作,相當(dāng)于沒有接一樣

              問(wèn)4:假設(shè)燒寫Nand Flash,把命令、地址、數(shù)據(jù)發(fā)給它之后,Nand Flash肯定不可能瞬間完成燒寫的,怎么判斷燒寫完成?

              答:通過(guò)狀態(tài)引腳RnB來(lái)判斷:它為高電平表示就緒,它為低電平正忙。

              怎么操作Nand Flash呢?

              答:根據(jù)Nand Flash的芯片手冊(cè),一般的過(guò)程是:

              發(fā)出命令

              發(fā)出地址

              讀寫數(shù)據(jù)

              以上操作可以從時(shí)序圖上得到

              我們先看下nandflash的布線

              有data0 到data7 八根數(shù)據(jù)線

              nandflash是個(gè)存儲(chǔ)芯片,那我提出請(qǐng)求:讀地址a的數(shù)據(jù),把數(shù)據(jù)b寫到a地址上去

              那么我們看原理圖只看到data0-data7,沒有看到地址引腳,那怎么把地址傳給我們的開發(fā)板

              復(fù)用,這幾個(gè)引腳即傳數(shù)據(jù)也傳地址

              怎么分別是數(shù)據(jù)還是地址呢,有個(gè)ALE信號(hào),當(dāng)ALE是高電平時(shí),傳輸?shù)氖堑刂?/p>

              但是它不僅只傳輸?shù)刂泛蛿?shù)據(jù),還傳輸命令,在nand flash芯片手冊(cè)可知,要操作nandflash要先發(fā)出命令,只有八條數(shù)據(jù)線,怎么傳輸命令呢???

              當(dāng)CLE為高電平的時(shí)候傳輸?shù)木褪敲?,?dāng)ALE和CLE都為低電平的時(shí)候傳輸?shù)氖菙?shù)據(jù)。

              這個(gè)data0 有的開發(fā)板不僅僅只接nandflash,還有的接norflash等等非常多的地方

              數(shù)據(jù)線 地址線等即接到nandflash,也接到norflash,還接到sdram,DM9000等等。怎么避免干擾,比如說(shuō)我訪問(wèn)nandflash的時(shí)候,norflash就不要給我提供數(shù)據(jù)

              你就要相當(dāng)與沒接一樣,怎么避免干擾呢???

              就是通過(guò)這些設(shè)備要訪問(wèn)之前,必須選中,什么叫選中呢,他們都有片選信號(hào),就要我們的片選引腳變?yōu)榈碗娖竭x中,就是cs引腳,沒有選中的芯片不會(huì)工作,相當(dāng)于沒接一樣

              假設(shè)燒寫nandflash,把數(shù)據(jù)、命令、地址發(fā)給他之后,nandflash肯定是不可能瞬間完成的,怎么判斷燒寫完成,通過(guò)狀態(tài)引腳RnB來(lái)判斷,它為高電平表示完成就緒。為低電平表示正忙

              we和re就是讀寫信號(hào)..

              怎么操作nandflash

              根據(jù)nandflash的芯片手冊(cè),一般過(guò)程是:發(fā)出命令,發(fā)出地址,讀寫數(shù)據(jù)。

              nandflash的命令表格如下

              我們往下看,拿個(gè)例子來(lái)看,讀ID這個(gè)例子的時(shí)序圖

              每個(gè)nandflash都會(huì)內(nèi)嵌ID,比如廠家ID啊等等。

              時(shí)序圖 橫軸是時(shí)間,時(shí)序圖怎么看呢 ,從左往右看??v向方向就是一列一列 來(lái)看

              然后可以看到發(fā)出命令 90,怎么知道的 ,在數(shù)據(jù)線上發(fā)出90這個(gè)值,怎么知道它是命令的,就是CLE是高電平。然后給它一個(gè)寫脈沖。這個(gè)寫信號(hào)的上升沿nandflash就會(huì)把數(shù)據(jù)存進(jìn)來(lái),它就知道了我是一個(gè)命令。

              然后接著發(fā)出一個(gè)0地址,然后就可以讀數(shù)據(jù)了。

              對(duì)于我們芯片來(lái)說(shuō)里面集成了一個(gè)nandflash控制器,內(nèi)部接線。它幫我們簡(jiǎn)化了這些操作,

              nandflash 芯片(rus5pv210)

              選中芯片

              發(fā)命令的操作 CLE變?yōu)楦唠娖桨衙钪祵懙絅FCMD寄存器里就可以了

              在data0-data7輸出命令值

              提供一個(gè)寫脈沖

              選中芯片

              發(fā)地址 ALE輸出高電平

              在data0-data7輸出地址值把地址寫入NFADDR寄存器里就可以了

              提供一個(gè)寫脈沖

              選中芯片

              發(fā)數(shù)據(jù) ALE,CLE輸出低電平

              在data0-data7輸出數(shù)據(jù)的值把地址寫入NFDATA寄存器里就可以了

              提供一個(gè)寫脈沖

              選中芯片

              讀數(shù)據(jù) 發(fā)出一個(gè)讀脈沖

              讀data0-data7的數(shù)據(jù)

              我們可以用uboot體驗(yàn)nandflash的操作

              1.讀ID,時(shí)序圖在上面

              選中

              發(fā)出0x90命令

              發(fā)出地址0x00

              讀第一個(gè)數(shù)據(jù)會(huì)得到0xEC

              讀第二個(gè)數(shù)據(jù)得到device code

              選中的話芯片手冊(cè)的nand flash章節(jié) 可以知道

              選為0為選中

              發(fā)出命令就是把命令寫到下面這個(gè)寄存器里面去

              同理 地址和數(shù)據(jù)也是一樣寄存器如下

              但是在uboot里面怎么操作呢

              uboot里面有命令可以讀內(nèi)存的

              md.w 0xB0E0_0004 1 這命令表示讀 0xb0e00004 讀一次

              mw.w 是寫命令

              md 內(nèi)存顯示 b是以字節(jié)為單位,w是以2字為單位,l是以四字節(jié)為單位

              讀ID命令流程如圖

              讀出dc

              我們驗(yàn)證一下 nandflash里面讀ID下面就有這張圖 

              結(jié)束讀ID的命令 就是NFCMD寄存器等于0xff 就是命令的reset

              2.讀數(shù)據(jù)

              我們可以根據(jù)uboot的nand dump 0命令讀取0地址的數(shù)據(jù)

              我們來(lái)一下nandflash讀操作的時(shí)序圖

              為什么中間有五個(gè)地址

              看容量

              讀00數(shù)據(jù)命令如下

              跟上面的輸出是一樣的



            關(guān)鍵詞: Linux Nand

            評(píng)論


            相關(guān)推薦

            技術(shù)專區(qū)

            關(guān)閉