![怎么看時序圖--nandflash的讀操作詳解_第1頁](http://file3.renrendoc.com/fileroot_temp3/2022-2/3/327d6987-e818-4696-957e-a930ffe8ec8f/327d6987-e818-4696-957e-a930ffe8ec8f1.gif)
![怎么看時序圖--nandflash的讀操作詳解_第2頁](http://file3.renrendoc.com/fileroot_temp3/2022-2/3/327d6987-e818-4696-957e-a930ffe8ec8f/327d6987-e818-4696-957e-a930ffe8ec8f2.gif)
![怎么看時序圖--nandflash的讀操作詳解_第3頁](http://file3.renrendoc.com/fileroot_temp3/2022-2/3/327d6987-e818-4696-957e-a930ffe8ec8f/327d6987-e818-4696-957e-a930ffe8ec8f3.gif)
![怎么看時序圖--nandflash的讀操作詳解_第4頁](http://file3.renrendoc.com/fileroot_temp3/2022-2/3/327d6987-e818-4696-957e-a930ffe8ec8f/327d6987-e818-4696-957e-a930ffe8ec8f4.gif)
![怎么看時序圖--nandflash的讀操作詳解_第5頁](http://file3.renrendoc.com/fileroot_temp3/2022-2/3/327d6987-e818-4696-957e-a930ffe8ec8f/327d6987-e818-4696-957e-a930ffe8ec8f5.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、這篇文章不是介紹nand flash 的物理結(jié)構(gòu)和關(guān)于nand flash的一些基本知識的。你需要至少了解你手上的 nand flash的物理結(jié)構(gòu)和一些諸如讀寫命令操作的大概印象,你至少也需要看過s3c2440中關(guān)于nand flash控制寄存器的說明。由于本人也沒有專門學(xué)過這方面的知識,下面的介紹也是經(jīng)驗之談。這里 我用的 K9F2G08-SCB0這款nand flash來介紹時序圖的閱讀。不同的芯片操作時序可能不同,讀的命令也會有一些差別。當(dāng)然其實有時候像nand flash 這種 s3c2440內(nèi)部集成了他的控制器的外設(shè)。具體到讀寫操作的細(xì)節(jié)時序(比如CLE/ALE的建立時間,寫脈沖的寬
2、度。數(shù)據(jù)的建立和保持時間等),不明白前期也沒有多大的問題。因為s3c2440內(nèi)部的nand flash 控制器做了大部分的工作,你需要做的基本就是設(shè)置幾個時間參數(shù)而已。然后nand flash會自動進(jìn)行這些細(xì)節(jié)操作。當(dāng)然如果處理器上沒有集成nand flash 的控制器那么久必須要自己來寫時序操作了。所以了解最底層的時序操作總是好的但是上層一點的,比如讀寫操作的步驟時序(比如讀操作,你要片選使能,然后發(fā)命令,然后發(fā)地址,需要的話還需發(fā)一個命令,然后需要等待操 作完成,然后再讀書數(shù)據(jù))。是必須要明白的。這都不明白的話,怎么進(jìn)行器件的操作呢也就是說 s3c2440 可以說在你設(shè)置很少的幾個時間參數(shù)
3、后,將每一個步驟中細(xì)微的操作都替你做好了。(比如寫命令,你只要寫個命令到相應(yīng)寄存器中,cpu內(nèi)部就會協(xié)各個引腳發(fā)出適應(yīng)的信號來實現(xiàn)寫命令的操作)。而我們所需要做的就是 把這些寫命令,寫地址,等待操作完成。等步驟組合起來。從而完成一個讀操作就像上面說的,雖然我們不會需要去編寫每個步驟中的最細(xì)微的時序。但是了解下。會讓你對每個操作步驟的底層細(xì)節(jié)更加明了先來看一個命令鎖存的時序。也就是上面說的讀 nand flash 操作中不是有一個寫命令步驟嗎。那么這個步驟具體是怎么實現(xiàn)的。首先我們肯定是要片選nand flash 。只有選中芯片才能讓他工作啊nand flash 是通過 ALE/CLE (高電平
4、有效)來區(qū)分?jǐn)?shù)據(jù)線上的數(shù)據(jù)時命令(CLE有效),地址(ALE有效)還是數(shù)據(jù)(CLE/ALE都無效)。那么這里既然是寫命令那么就一定是CLE有效(高電平) ALE無效(低電平)。同樣命令既然是寫給nand flash 的那么肯定有一個寫周期。我們需要注意的是,寫是在上升沿有效還是下降沿有效時序圖如下:CLECEWEALEl/Oxi這里是命令鎖存是時序,那么我們要注意的其實就只有CLE為高電平期間這段時序。(寫命令啊,CLE有效時(高電平)指示現(xiàn)在的數(shù)據(jù)其實命令)ALE此時一定為低電平我們可以不關(guān)心他2所以,CLE為低電平的時期,其他大部分引腳上都是灰色的陰影,這代表我們不需要關(guān)心這段時期這些引腳
5、的電平3那么這個數(shù)據(jù)是什么時候被nand flash 讀取到的呢,注意到nWE信號在上升沿有一個貫穿所有其他引腳時序的豎線(這好像是叫生命線?我也不清楚)這就是說明,寫入的數(shù)據(jù)(命令也是數(shù)據(jù)啊,只是可以通過CLE有效來區(qū)分)是在WE的上升沿有效。也就是說,雖然WE是在低電平有效,但并不是說WE變成低電平,命令就被鎖存了(即真正獲得命令)而是在WE的上升沿,命令才真正被鎖存。txx的標(biāo)號。明顯它指的是時間,但是具體指什么時間呢。知道了上面這三點,也就知道了一個大概,那么剩下的圖中也只剩那些指的就是箭頭兩邊所指的兩條豎線之間的時間。(在每個信號的跳變沿,都有小豎線)剩下的就是這些時間到底是代表什么
6、了。這里沒什么難的,剛接觸的覺得看不懂。是因為之前從來沒接觸過。(就像單片機剛學(xué)的時候不也是各種不懂,原因就是我們從沒接觸過)。這些時間標(biāo)號,在數(shù)據(jù)手冊的前面都有說明ParameterSymbolMinMaxUnitCLE Setup Time忙LS小12nsCLE Hold TifnetCLH5-nsCE Setup TimetCS'1!20nsCEHokiTmTetCH5-nsWE PJse WidthtWP12-ns比如 tCLS tCLH 從數(shù)據(jù)手冊中我們可以看到分表代表的CLE建立時間,和 CLE信號保持時間簡單點你可以理解為,我讓CLE引腳變成高電平,總得給人間一點時間去變
7、成高電平吧??偛荒芩查g就變成高電平不過從時序圖中我們能看到更多的端倪,之前不是說過WE的上升沿上不是有一個最長貫穿其他信號線的豎線嗎。我們說他指示了,數(shù)據(jù)(命令也是數(shù)據(jù))是在上升沿被鎖存的,在WE的上升沿,我寫到數(shù)據(jù)線上的命令數(shù)據(jù)才真正被鎖存(接收),但是我們注意到CLE信號在WE上升沿之前有就有效了。所以我們說,在命令數(shù)據(jù)真正被鎖存之前,CLE有效的那段tCLS 時間叫做 CLE信號建立時間。WE上升沿后。命令已經(jīng)被接受了,但這時候CLE其實可以變?yōu)闊o效了,因為已經(jīng)獲取到命令了但是他并沒有立刻結(jié)束,而是Tclh時間之后才結(jié)束。那么我們稱這段 時間tCLH 為 CLE保持時間那么再根據(jù)手冊中的
8、說明tCS 表示片選信號建立時間,tCH表示片選信號保持時間tDS表示數(shù)據(jù)建立時間,tDH表示數(shù)據(jù)保持時間這里我們看到一個小規(guī)律,在數(shù)據(jù)手冊中以S結(jié)尾的時間通常指的是建立時間,以H結(jié)尾的時間指的是保持時間這里命令鎖存的時序就分析完了。我們再來看看地址鎖存時序圖,這個圖有點復(fù)雜,因為nand flash 的特性是地址周期通常需要好幾個,就是一個地址是分幾次發(fā)送的CLECEWEALEI/OX再給出數(shù)據(jù)手冊中對應(yīng)時間標(biāo)號的說明WE Pulse WidthtWP12-nsALE Setup Time12nsALE Hold Bme1ALH5-nsData Setup TimetDS'1:12-
9、nsData HokJ TimetDH5-nsWme Cyde TimeIwc25-nsWE High Hold TimetWrt10ns同樣我們按照上面分析的步驟1這里是地址鎖存是時序,那么我們要注意的其實就只有ALE為高電平期間這段時序。(寫命令啊,ALE有效時(高電平)指示現(xiàn)在的數(shù)據(jù)其實是地址)CLE此時一定為低電平,可以不用管2 所以,ALE為低電平的時期,其他大部分引腳上都是灰色的陰影,這代表我們不需要關(guān)心這段時期這些引腳的電平3同樣 WE的上升沿有一個貫穿其他信號線的長豎線,這也是代表數(shù)據(jù)(這里其實是地址)在上升沿被鎖存那么剩下的也好理解tCLS 這個我們不需要關(guān)心,因為CLE壓根
10、就是無效的。tCS 就像之前分析的,它是指CE片選信號在WE上升沿也就是鎖存地址之前的有效時間,也就是CE建立時間tWC呢?不知道?不知道看手冊啊,前面也說過這些時間標(biāo)號在手冊中都會給出。從上面手冊的解釋我們看到,它指的是一個寫周期的時間tWP寫脈沖寬度(也就是WE是低電平有限,twp指低電平持續(xù)時間,就是有效時間)tWH好理解了,就是高電平時間ALS這不就是 地址信號ALE 建立時間嘛ALHALE信號有效保持時間啊TDS TDH數(shù)據(jù)建立和保持時間就像上面對命令時序的分析,這里信號的 建立 和 保持時間都是以數(shù)據(jù)被 鎖存分界點(WE上升沿)看到這里相信仔細(xì)看的人,應(yīng)該大致該如何看一個時序圖了,
11、但是這里我們牽涉到的無非都是一些上面 建立/保持時間。復(fù)雜點的呢。下面就來看一個復(fù)雜點的時序圖,其實也不復(fù)雜,主要是說明如何在不看手冊就能知道txx指的是什么時間REt/OXR/B這個時序其實并不復(fù)雜,只是他不是像上面分析的那樣都是一些建立時間和保持時間。這里牽涉到跟多的時間標(biāo)號不過就像前面說的.看手冊!手冊里對每個時間參數(shù)都有說明。不過初學(xué)者通常即使看手冊,對這些時間參數(shù)也是不知道是什么意思。這里我們看手冊前,先來自己分析下。方法會了,手冊就成了驗證你對不對的東西了,而不是你尋找答案的東西。TRC這個參數(shù)有點簡單??此姆秶且粋€ RE周期 的時間,那么就跟前面的tWC應(yīng)該是一樣的。那它應(yīng)該
12、代表的就是RE信號的一個周期時間(讀信號的一個周期)TREA呢?看標(biāo)號看不出所以然,那么我們就看他的起始和結(jié)束時間從時序圖能看到,這個指的是從RE有效(變低)到數(shù)據(jù)出現(xiàn)之間的時間。那么tREA可想而知就應(yīng)該是讀信號有效到數(shù)據(jù)被讀之間的時間后面的都是這個同樣的分析方法比如最后的那個tRHZ是從 RE無效(高電平)到數(shù)據(jù)線變成高阻態(tài)之間的時間(數(shù)據(jù)線畫在中間表示的是高阻態(tài))看下手冊中的解釋也基本就是這個意思Read Cycle TimetRC25-reRE Access TlirtetREA20n:CE Access TimetCEA-25cRE FSgh to Output HkZtRHZ-10
13、0僅CE High to Output HnZtCHZ-30reCE High io ALE or CLE Don't Caretcso10rvRE High to Output HoldtKHOH15-rv時間的起始地址來推到這里 對于時序圖怎么看,相信大家都應(yīng)該能理解了。甚至可能連手冊都不用看,就知道他是什么意思了。因為我們能從測時間標(biāo)號的意思上面這些分析,都是很底層的操作,如果我們使用中S3C2440 這種高級的處理器這些時序操作我們根本不需要去實現(xiàn),頂多也就往幾個寄存器設(shè)置一下上面說的一些時間然后,CPU中的nand flash 控制器會自動完成上面所的所有操作。但是還需要了解
14、的原因是,如果你碰到一個沒nand flash控制器的處理器怎么辦,那你只能親自實現(xiàn)這些具體的寫命令,寫地址。等等單元操作。然后才能將這些單元操作組合成讀數(shù)據(jù),寫數(shù)據(jù)等操作(上面說過比如讀操作他并不是一個簡單的命令而是一系列操作,你要片選使能,然后發(fā)命令(讀命令),然后發(fā)地址(要讀的數(shù)據(jù)的地址),需要的話還需發(fā)一個命令,然后需要等待操作完成,然后讀書數(shù)據(jù))說完了這些具體的單元操作,那么我們再來看看一個讀操作具體需要哪些步驟。也就是我們需要真正必須掌握的時序操作對于我這款nand flash讀操作時序如下CLEWEALE至于這每一個步驟中具體的時序,cpu中的nand flash控制器會幫我們完
15、成。我們要做就是設(shè)置幾個時間參數(shù)有一個 0x00 是什么?數(shù)據(jù)?地址?命令?看 ALE/CLE線啊,這兩根線不是決定了現(xiàn)在的數(shù)據(jù)的類型嘛l/Ox我們要注意的主要是 i首先我們看到順著往上看,我們知道0x00是在 CLE有效期間的數(shù)據(jù)那么它就是一個命令2 然后是 address(5Cycle)即五個地址序列(這款nand flash指定讀數(shù)據(jù)的地址時要發(fā)送五個地址序列),往上看,是在ALE有效期間的數(shù)據(jù),那么應(yīng)該就是地址了(對于這五個地址,前面兩個是列地址,后面三個是行地址。在nand flash的物理結(jié)構(gòu)中行地址對應(yīng)的某一頁,列地址就對應(yīng)這一頁中的某一列)3接著又是0x30,此時 CLE有效,
16、那么就是命令了(也就是說這款nand flash 的讀操作需要兩個命令)。但是之后數(shù)據(jù)并未立刻出來,我們看到在到DATA Output即數(shù)據(jù)輸出之前還有一段時間,為什么有這段時間?往上看R/nB這個數(shù)據(jù)線上說明了原因,這段時間內(nèi)它是低電平即指示現(xiàn)在處于 忙碌狀態(tài),還未準(zhǔn)備好數(shù)據(jù)輸出。為什么會這樣?因為你寫了一個命令,寫了要讀數(shù)據(jù)的地址,又寫了一個命令。你總要給cpu 一些時間去處理這些命令吧,R/nB為低電平這段時間就是在處理這些命令(實際上是根據(jù)命令將你定位的那一頁數(shù)據(jù)讀到內(nèi)部寄存器中),等 R/nB變成高電平了,就指示命令處理完畢,現(xiàn)在數(shù)據(jù)也就可以讀出來了。綜上我們從手冊中我們就知道了讀操
17、作的具體步驟,1首先nand flash也是一個外設(shè),要訪問他就需要片選它,所以在執(zhí)行時序圖上的步驟之前需要片選nand flash.2看后面就是安裝時序圖來了,看時序圖!第一步先是發(fā)送一個命令0x00.3看時序圖!然后發(fā)送五個地址序列(先發(fā)送兩個列地址,在發(fā)送三個行地址(即頁地址)4看時序圖!接著再是一個命令0x30.5看時序圖!R/nB 引腳為低表示現(xiàn)在正忙,正在處理這些命令,那就要等待R/nB引腳變?yōu)楦唠娖?看時序圖!這個時候就可以讀數(shù)據(jù)了7 一次讀操作結(jié)束了nand flash暫時是不需要使用了,那么別忘了應(yīng)該取消片選信號。至于這每一個步驟中具體的時序,cpu中的nand flash控
18、制器會幫我們完成。我們要做就是設(shè)置幾個時間參數(shù)這里我們反復(fù)強調(diào)了要看時序圖。其實學(xué)嵌入式前期對數(shù)據(jù)手冊一定要多看,看多了你就回知道,什么東西的你重點要看的,什么是和你的編程操作無關(guān)的你不需要關(guān)心。這樣后面你才能,拿到一個外設(shè)就能寫出他的操作。而不用跟著書背步驟。只要手冊在就行了。上面的步驟,是一個具體的讀操作的步驟,不過在使用一個器件之前我們需要初始化一下它。至于初始化也就是設(shè)置我們上面多次提到的我們說過s3c2440已經(jīng)幫我做了很多底層的單元操作,我們只需設(shè)置幾個時間參數(shù)片內(nèi)的 nand flash 就會自動發(fā)出相應(yīng)操作的時序操作那么到底設(shè)置那幾個時間呢。s3c2440 手冊上給出了需要我們
19、設(shè)置的幾個參數(shù)。TACLS TWRPHO TWRPH1:H*!Figure 6-3. CLE & ALE Timing (TACLS=1, TWRPHO=0, TWRPH1=O)DATADATADATADATATWRPHO , TWRPH1HCLK4nWE/nREDATADATA從中我們可以看出第一幅時序圖是命令和地址鎖存的時序,第二幅是可以看出,他們要設(shè)置的時間都是一樣的。前面分析了那么多,這里應(yīng)該不難1 TACLS 很明表示的是CLE/ALE 的建立時間(這里并不準(zhǔn)確,其實是鎖存命令/地址)數(shù)據(jù)讀取和寫入的時序。看出CLE/ALE有效到 WE變成低電平之間的時間,但WE卻是在上升沿
20、才2 TWRPHO代表的是 WE的脈沖寬度,即有效時間3 TWRPH1代表的是 CLE/ALE 的保持時間那到底設(shè)置成什么數(shù)字呢。既然上圖中讀/寫/命令/地址操作需要的時間參數(shù)都是一樣的那么我們從 nand flash 中隨便找一個命令時序來對照不就行了就拿上面我們說過的命令鎖存時序來對比這款芯片nand flash 手冊中這三個參數(shù)要求是這款芯片nand flash 手冊中這三個參數(shù)要求是*tCLHtDSCommandtCH這款芯片nand flash 手冊中這三個參數(shù)要求是這款芯片nand flash 手冊中這三個參數(shù)要求是那么我們就能得到下面的關(guān)系TWRPH0 = tWPTWRPH1 =
21、 tCLHTACLS = tCLS - tWP然后設(shè)置成多少呢?看手冊啊,手冊中對 tWP tCLH tCLS都會至少給岀 需要的最小時間這款芯片nand flash 手冊中這三個參數(shù)要求是CLE Setup TimetCLSl'112-nsCLE HoJd TimetdJH5-nsCE Seiup Time20-nsCE Hold TimetCH5-nsWE PJse WidthtWPf21ns所以 TWRPHO = tWP >=12nsTWRPH1 = tCLH >=5nsTACLS = tCLS - tWP >=0而這三個參數(shù)在 s3c2440的數(shù)據(jù)手冊中說明為
22、TACLS13:12CLE & ALE duration setting value (0*3) Duration = HCLK x TACLS01Reserved11Reserved0TWRPHO10:8TWRPHO duration setting value (0-7)Duration - HCLK x (TWRPHO + 1 )000Reserved7Reserved0TWRPH16:4TWRPH1 duraton setting value (D“7)Duration = HCLK x ( TWRPH1 + 1 )000當(dāng)然這里的時間都是以HCLK為單位的,這幾個參數(shù)是在 n
23、and flash 控制寄存器中的NFCON中設(shè)置的這里我沒用使用 MPLL所以HCLK是12MHZ所以 TWRPH0 = 0 TWRPH1 =0 TACLS =0;(如果你的時鐘頻率比較高,那就要設(shè)別的數(shù)了。當(dāng)然有是有你真不知道,設(shè)置大點總沒錯,只不過速度 可能會慢點。)所以 NFCONF =0;( NOFCON其他位數(shù)據(jù)手冊中有說明,這里只是簡單讀操作,其他位可以不設(shè)置)然后是初始化一下ECC使能nand flash 控制器(我們只是設(shè)置了幾個時間參數(shù),時序的具體操作就是靠他來完成的,所以要使能他)然后先取消片選nand flash因為我們現(xiàn)在還沒有操作它啊,只是初始化一下。所以還是應(yīng)該先
24、取消片選,等真正讀的時候再使能片選信號NFCONT = (1<<4) | (1<<1) (1<<0);(數(shù)據(jù)手冊中有對應(yīng)位的說明)最后,第一次使用nand flash我們需要復(fù)位操作一下。綜上,nand flash的初始化代碼如下void nand_in it(void)NFCONF =0;NFCONT = (1<<4) | (1<<1) | (1<<0);nan d_reset();/nand reset代碼在后面void select_chip(void)NFCONT &二(1<<1);int i;
25、for(i=10;i>0;i-);void deselect_chip(void)NFCONT |= (1<<1);int i;for(i=10;i>0;i-);void write_comma nd(un sig ned char comma nd)NFCMMD = comma nd;int i;for(i=10;i>0;i-);/*這款nand flash的頁大小是2K五個地址周期(2個列地址和3和行地址(頁地址)*/void write_address( un sig ned int address)un sig ned int page = address
26、/2048;un sig ned int col= address&2048;int i;NFADDR = col & 0xff;for(i=5;i>0;i-);NFADDR = (col >>8) & 0x0f;for(i=5;i>0; i-);NFADDR = page & 0xff;for(i=5;i>0;i-);NFADDR = (page >>8)& 0xff;for(i=5;i>0;i-);NFADDR = (page >>16)&0 x01;for(i=5;i>0;i-
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 動產(chǎn)家具無償寄托合同范本
- 快遞公司合作合同范本
- 上海施工合同范例2004
- 專業(yè)電子合同范例
- 2025年度城市綜合體辦公租賃合同及商業(yè)配套服務(wù)協(xié)議
- 公路安全設(shè)施合同范本
- 農(nóng)機設(shè)備合同范本
- 京東網(wǎng)店轉(zhuǎn)讓合同范本
- 內(nèi)容營銷推廣合同范例
- 2025年度廣告代理及媒介購買合同
- 2024年青島港灣職業(yè)技術(shù)學(xué)院單招職業(yè)技能測試題庫及答案解析
- 裝配式建筑預(yù)制構(gòu)件安裝-預(yù)制構(gòu)件的吊裝
- 2024年山東泰安市泰山財金投資集團(tuán)有限公司招聘筆試參考題庫含答案解析
- 上海天文館分析
- 中醫(yī)睡眠養(yǎng)生中心方案
- 生活中的邏輯學(xué)
- 大學(xué)生返家鄉(xiāng)社會實踐報告
- 初中生物中考真題(合集)含答案
- 《醫(yī)學(xué)免疫學(xué)實驗》課件
- C139客戶開發(fā)管理模型
- 中考英語閱讀理解(含答案)30篇
評論
0/150
提交評論