S3c2440是三星公司推出的一款基于ARM920T的處理器,采用ARM內(nèi)核,不同于單片機,無片上rom與ram,必須搭配相應(yīng)的外圍電路進行使用,現(xiàn)在,讓我們從零開始進行這一塊MCU的學(xué)習,為了入門簡單方便,前期我不會搭載任何操作系統(tǒng),本手冊寫到哪算哪.
1.什么是nor flash啟動和nand flash啟動
在任何視屏教程里面,都會告訴你一個開關(guān)左右選擇就能norflash啟動或者nand flash啟動,norflash啟動能直接運行代碼,nand flash啟動不能直接運行代碼,可是為什么呢?
要知道這一點,首先要明白nandflash和norflash的區(qū)別,首先,norflash是隨機存儲介質(zhì),也就是說,對norflash的操作時可以進行任意單字節(jié)的讀寫的,而nanaflash是塊存儲介質(zhì),對nandflash的讀寫只能以塊的方式讀寫,也就是說,nand要修改一個字節(jié),必須重寫整個塊
由此我們就可以知道,nand flash不可能作為代碼直接執(zhí)行的介質(zhì)了,理論上,就算我們通過電路實現(xiàn)了nand flash執(zhí)行代碼也不可能,因為代碼執(zhí)行很重要的一點是可以隨機的對任意一個字節(jié)的數(shù)據(jù)進行任意修改,而nand寫一個字節(jié)要重寫整個塊,這速度太慢了,還有一個原因,因為某些工藝因素的影響,nandflash生產(chǎn)過程中就可能出現(xiàn)壞塊,另外,nandflash在多次擦寫中也可能出現(xiàn)壞塊,所以這也決定了nand不可能實現(xiàn)直接運行代碼,只能做存儲器的功能,以下是nandflash電路(TQ2440)
可見,nand flash分為八位和16位,地址線和數(shù)據(jù)線復(fù)用,依靠控制總線來切換地址數(shù)據(jù)時序,主要的控制線有
CLE:命令鎖存使能線,輸入命令時使用
ALE:地址鎖存使能,輸入地址時使用
NFRE:連接NRE讀使能,讀數(shù)據(jù)之前,要先讓nre有效
NFWE:寫使能,寫數(shù)據(jù)的時候這根線有效
RNB :就緒/忙標志,主要用于發(fā)送完編程/擦除命令后,檢測操作是否完成
WP :寫保護使能
說完nandflash說說norflash,首先norflash的地址線和數(shù)據(jù)線是分開的,其次,是可以單字節(jié)讀取寫入的,另外,可靠性好,不易出現(xiàn)壞塊,使用時間更長,(norflash上帶的是通用sdram接口)
電路圖如下,
因為是16位數(shù)據(jù),所以沒有接data0的必要,初始地址是0x00000000,
OE:讀使能
WE寫使能
片選接了GCS0,那么norflash尋址范圍是多少呢?首先,選用的芯片是EN29系列,
該系列芯片說明書中說明
可見,NORFLASH是16M的,但是尋址范圍是不是16M我們還需要確認NGCS0的選通時間,查看memory說明,有這樣一段
也就是說2440的NGCS0分區(qū)大小為128M,驅(qū)動16M足足夠了,所以,我們可以說,norflash啟動,16M完全可用
接下來說一下SDRAM,電路圖如下
這是兩塊相同的芯片,兩塊16位芯片合起來將數(shù)據(jù)總線擴展到32位
可以看到,地址線和數(shù)據(jù)線是分離的,控制接口主要由以下幾根線組成
CKE:INPUT控制norflash內(nèi)部時鐘的使能與禁止,從而進入三種狀態(tài),掉電,掛起,自刷新(為了保持內(nèi)部數(shù)據(jù),設(shè)備自身也需要一個時鐘來進行數(shù)據(jù)自刷新,和外部讀寫時鐘并不是一個概念)
CLK:INPUT外部讀寫時鐘,用于外部讀寫同步
其他的控制總線想要明白必須要先明白SRAM的架構(gòu),雖然不用去設(shè)計,但是明白SDRAM架構(gòu)看不懂這個電路圖,來,我們說說
以下是標準4bank的SDRAM內(nèi)部結(jié)構(gòu)
其寫入原理如下
要存取數(shù)據(jù)時,先選中一行( wordline加高電位),于是這一行上掛著的所有的行選通NMOS都導(dǎo)通,電容中的數(shù)據(jù)就沿著bitline進入感應(yīng)放大器,經(jīng)其放大后到達列選通NMOS處。接下來,當某根CSL置高后,相應(yīng)的列選通NMOS就導(dǎo)通,數(shù)據(jù)沿著bifline繼續(xù)向IO接口傳,或者外面的數(shù)據(jù)立即寫入存儲陣列。當然,具體實現(xiàn)肯定更復(fù)雜,但是基本原理就是這樣
那么,這些控制線什么作用呢
LDQM UDQM:數(shù)據(jù)屏蔽,當LDQM為高,數(shù)據(jù)線上低8位被屏蔽UDQM高八位被屏蔽,這樣就可以進行bank選擇了(不管內(nèi)存怎么設(shè)計,最終還是八位一個字節(jié),所以需要屏蔽)
接下來我們看看SDRAM尋址,通過電路可以看到,WBE0 1 2 3分別四根線控制,也就是說,同一個地址,選擇不同的WEB,可以依次讀出0-7 8-15 16-23 24-31四個八位數(shù)據(jù),CPU內(nèi)部自動將這四個數(shù)據(jù)組合起來,形成一個32位數(shù)據(jù),所以,實際上,依次讀寫操作獲得或者寫入數(shù)據(jù)單純數(shù)據(jù)上就要四步,另外,地址寫入也分兩步,之前說了,SDRAM尋址分為行和列,所以寫入地址分為寫入行地址,寫入列地址,簡化來看,一共就是6步(沒有說各種控制總線過程,大家有興趣可以研究)
連接的ba0 ba1
首先四字節(jié)對其尋址(32位數(shù)據(jù)線),那么DAT0 DAT1的尋址線肯定是0,所以沒有接上的必要,24 25 26決定最高位,如果為64M r601 r604接上,地址線24-25連接,CPU設(shè)置0x30000000為基地址的話,最高地址是0x33FFFFFF,(0x30000000-0x33ffffff) = 0x3ffffff個字節(jié),一共就是64M字節(jié)
注意,這中間涉及到一個比較復(fù)雜的解碼過程,就是將物理地址解碼成總線地址,(兩個數(shù)據(jù)),并不是說25 26連接了地址空間就絕對是0X36FFFFFF了,具體過程,請查閱相關(guān)資料
-
處理器
+關(guān)注
關(guān)注
68文章
19100瀏覽量
228813 -
mcu
+關(guān)注
關(guān)注
146文章
16885瀏覽量
349916 -
SDRAM
+關(guān)注
關(guān)注
7文章
422瀏覽量
55133 -
存儲器
+關(guān)注
關(guān)注
38文章
7430瀏覽量
163514 -
nandflash
+關(guān)注
關(guān)注
0文章
48瀏覽量
20188
發(fā)布評論請先 登錄
相關(guān)推薦
評論