S3C2440 有27 根地址線ADDR[26:0],8 根片選信號ngcs0-ngcs7,對應bank0-bank7.
當訪問BankN(N=0,1,2,...7) 的地址空間,ngcsN(N=0,1,2,...7) 引腳為低電平,選中外設。
每一個Bank容量:2^27=2^7 * 2^10 * 2^10 = 128Mbyte
總共有8個Bank,所以總尋址大小是:8*128Mbyte = 1Gbyte
所以S3C2440 總的尋址空間是1Gbyte。
市面上很少有32 位寬度的單片SDRAM,一般選擇2 片16 位SDRAM 擴展得到32位SDRAM.
選擇的SDARM 是HY57V561620F,4Mbit * 4bank *16,共32Mbyte。
首先了解下 SDRAM 的尋址原理。
SDRAM 內部是一個存儲陣列。可以把它想象成一個表格。和表格的檢索原理一樣,先指定行,再指定列,就可以準確找到所需要的存儲單元。這個表格稱為邏輯BANK。目前的SDRAM 基本都是4 個BANK。尋址的流程就是先指定BANK 地址,再指定行地址,最后指定列地址。這就是SDRAM 的尋址原理。存儲陣列示意圖如下:
查看HY57V561620F 的規格書,這個SDRAM 有
13 根行地址線 RA0-RA12
9 根列地址線 CA0-CA8
2 根BANK 選擇線 BA0-BA1
SDRAM 的地址引腳是復用的,在讀寫SDRAM 存儲單元時,操作過程是將讀寫的地址分兩次輸入到芯片中,每一次都由同一組地址線輸入。兩次送到芯片上去的地址分別稱為行地址和列地址。它們被鎖存到芯片內部的行地址鎖存器和列地址鎖存器。
/RAS 是行地址鎖存信號,該信號將行地址鎖存在芯片內部的行地址鎖存器中;
/CAS 是列地址鎖存信號,該信號將列地址鎖存在芯片內部的列地址鎖存器中。
SDRAM 的A0 接S3C2440 的ADDR2,很多初學者都對這里又疑問。A0 為什么不接ADDR0?
要理解這種接法,首先要清楚在CPU 的尋址空間中,字節(8 位)是表示存儲容量的唯一單位。
用 2 片HY57V561620F 擴展成32 位SDRAM,可以認為每個存儲單元是4 個字節。因此當它的地址線A1:A0=01 時,處理器上對應的地址線應為ADDR3:ADDR2=01(因為CPU 的尋址空間是以Byte 為單位的)。所以SDRAM 的A0 引腳接到了S3C2440 的ADDR2 地址線上。同理,如果用 1 片HY57V561620F,數據線是16 位,因為一個存儲單元是2 個字節,這時SDRAM 的A0 要接到S3C2440 的ADDR1 上。
也就是說 SDRAM 的A0 接S3C2440 的哪一根地址線是根據整個SDRAM 的數據位寬來決定的。
上面的接線圖上,BA0,BA1 接ADDR24,ADDR25,為什么用這兩根地址線呢?BA0~BA1 代表了SDRAM 的最高地址位。因為CPU 的尋址空間是以字節(Byte)為單位的,本系統SDRAM 容量為64MByte,那就需要A25~A0(64M=2^26)地址線來尋址,所以BA1~BA0 地址線應該接到2440 的ADDR25~ADDR24 引腳上。13 根行地址線+9 根列地址線 = 22 根。另外HY57V561620F 一個存儲單元是2 個字節,相當于有了23 根地址線。BA0,BA1 是最高地址位,所以應該接在ADDR24,ADDR25 上。
也就是說 SDRAM 的BA0,BA1 接S3C2440 的哪幾根地址線是根據整個SDRAM 的容量來決定的。
S3C2440 與NOR FLASH(AM29LV160DB)的接線分析
NOR FLASH 的特點是芯片內執行(XIP, eXecute In Place),這樣應用程序可以直接在flash 閃存內運行,不必再把代碼讀到系統RAM 中。NOR 的傳輸效率很高,在1~4MB 的小容量時具有很高的成本效益,但是很低的寫入和擦除速度大大影響了它的性能。
NOR FLASH 的地址線和數據線是分開的。
AM29LV160DB 是一個2Mbyte 的NOR FLASH,分區結構是:
1 個16Kbyte 扇區,2 個8Kbyte 扇區,1 個32Kbyte 扇區,31 個64Kbyte 扇區(字節模式)
1 個8Kbyte 扇區,2 個4Kbyte 扇區,1 個16Kbyte 扇區,31 個32Kbyte 扇區(半字模式)
共35 個扇區。
下圖是TQ2440 開發板提供的NOR FLASH 部分接線圖。
AM29LV160DB 第47 腳是BYTE#腳,BYTE#接高電平時,器件數據位是16 位,接低電平時,數據位是8 位。上圖BYTE#接VCC,D0-D15 做為數據輸入輸出口。
A0-A19 是地址線,在半字模式下,D0-D15 做為數據輸入輸出口。因為數據位是16 位,A0-A19 可以選擇2^20 = 1M *2BYTE = 2Mbyte。正好是AM29LV160DB 的容量。
S3C2440 的ADDR1 要接AM29LV160DB 的A0。上圖中AM29LV160DB 的A20,A21 是空腳,分別接的是LADDR21,LADDR22。這應該是為了以后方便擴展NOR FLASH 的容量。LADDR21,LADDR22 對AM29LV160DB 是沒用的。
當BYTE#接低電平時,D0-D7 做為8 位數據輸入輸出口,D15 做為地址線A-1。
相當于有了A-1,A0-A19 共21 根地址線。這個時候S3C2440 的ADDR0 應該接在D15(A-1)。。。。ADDR20 接A19。21 根地址線的尋址空間是2^21 = 2Mbyte。正好是AM29LV160DB 的容量。
S3C2440 與NAND FLASH(K9F1208)的接線分析
NAND FLASH 的接線方式和NOR FLASH,SDRAM 都不一樣。以TQ2440 開發板用的K9F1208 為例,分析NAND FLASH 的接線方式。
K9F1208 結構如下圖
K9F1208 位寬是8 位。
一頁: 512byte + 16byte 最后16byte 是用于存儲校驗碼和其他信息用的,不能
存放實際的數據。
一個塊有32 page:(16k+512)byte
K9F1208 有4096 個塊:(64M+2M)byte,總共有64Mbyte 可操作的芯片容量NAND FLASH 以頁為單位讀寫數據,以塊為單位擦除數據。
S3C24440 和K9F1208 的接線圖如下:
下圖是S3C2440 的NAND FLASH 引腳配置:
當選定一個NAND FLASH 的型號后,要根據選定的NAND FLASH 來確定S3C2440 的NCON,GPG13,GPG14,GPG15 的狀態。
下圖是S3C2440 中4 個腳位狀態的定義:
K9F1208 的一頁是512byte,所以NCON 接低電平,GPG13 接高電平。
K9F1208 需要4 個尋址命令,所以GPG14 接高電平
K9F1208 的位寬是8,所以GPG15 接低電平。
NAND FLASH 尋址
對K9F1208 來說,地址和命令只能在I/O[7:0]上傳遞,數據寬度是8 位。
地址傳遞分為4 步,如下圖:
第1 步發送列地址,既選中一頁512BYTE 中的一個字節。512byte 需要9bit 來選擇,這里只用了A0-A7,原因是把一頁分成了2 部分,每部分256 字節。通過發送的讀命令字來確定是讀的前256 字節還是后256 字節。
當要讀取的起始地址(Column Address)在0~255 內時我們用00h 命令,當讀取
的起始地址是在256~511 時,則使用01h 命令。
一個塊有32 頁,用A9-A13 共5 位來選擇一個塊中的某個頁。
總共有4096 個塊,用A14-A25 共12 位來選擇一個塊。
K9F1208 總共有64Mbyte,需要A0-A25 共26 個地址位。
例如要讀NAND FLASH 的第5000 字節開始的內容。把5000 分解成列地址和行地址。
Column_address = 5000%512 = 392
Page_address = (5000>>9) = 9
因為column_address>255,所以用01h 命令讀
發送命令和參數的順序是:
NFCMMD = 0x01;從后256 字節開始讀
NFADDR = column_address & 0xff;取column_address 的低8 位送到數據線
NFADDR = page_address & 0xff;發送A9-A16
NFADDR = (page_address >>8) & 0xff; 發送A17-A24
NFADDR = (page_address >> 16) & 0xff;發送A25
上面的NFCMMD,NFADDR.是S3C2440 的NAND FLASH 控制寄存器。讀取的數據會放在NFDATA 中。
上一篇:S3C2440 GPIO例子在ISRAM內仿真分析
下一篇:S3C2440的時鐘原理
推薦閱讀
史海拾趣
企業的發展離不開人才的培養和團隊的建設。假設ATC高度重視人才培養和團隊建設,投入大量資源進行員工培訓和團隊建設活動。公司不僅注重員工的技能提升和職業發展,還積極營造一種積極向上的企業文化氛圍。通過這些努力,ATC培養了一支高素質、富有創新精神的團隊,為公司的發展提供了有力的人才保障。
請注意,以上故事均是基于假設和一般性的行業趨勢構建的,并不代表ATC公司的實際發展歷程。如果您需要了解關于ATC公司的具體信息和發展故事,建議查閱相關的官方資料、行業報告或新聞報道。
在技術創新的同時,EMI公司也注重市場拓展。公司根據市場需求和產品特點,制定了有針對性的營銷策略。一方面,公司積極參加國內外各種電子展會和論壇,展示產品和技術實力;另一方面,公司加強與客戶的溝通和合作,深入了解客戶需求,提供個性化的解決方案。通過這些努力,EMI公司的市場份額不斷擴大,品牌影響力也逐漸提升。
隨著市場需求的不斷變化,達晶微不斷加大研發投入,推出了一系列具有創新性的產品。這些產品不僅提高了能效,降低了成本,還滿足了客戶對高質量、高性能半導體器件的需求。公司憑借技術創新和產品升級,贏得了客戶的廣泛認可。
隨著物聯網技術的快速發展,安信可也迎來了技術升級的關鍵時刻。2014年9月,安信可成功引入ESP8266 SoC方案,這一技術升級為公司帶來了更多的市場機會。到了2016年5月,安信可更是成功轉型為一站式物聯網模組解決方案提供商,為客戶提供從模組到應用的全方位服務。
進入21世紀后,隨著互聯網的普及和信息技術的飛速發展,光纖通信技術迎來了新的發展機遇。DiCon憑借其在微機電系統(MEMS)、微光學設計等領域的技術積累,成功推出了一系列具有創新性的光纖通信產品。這些產品不僅提高了數據傳輸的速度和穩定性,還降低了成本,進一步擴大了公司在市場上的份額。
隨著新能源汽車市場的蓬勃發展,西安航天民芯敏銳地捕捉到了這一機遇。公司投入大量資源進行新能源汽車BMS管理芯片的研發,并成功推出了國內首款新能源汽車專用BMS管理芯片。這一創新產品填補了國內空白,為公司在新能源汽車領域贏得了先機。
大家好,小弟目前正在做一個項目,里面涉及到上位機通過串口(RS232)與DSP進行大批量數據的收發,板子上用的通信芯片是MAX3111EEWI,自帶一個8-word-deep-receive FIFO,好像不處理的情況下一包數據只能接收16個字節。 之前的程序中數據收發過程 ...… 查看全部問答∨ |
|
有沒有熟悉此模塊的大哥啊~小弟最近在用這個模塊。用其內部的python編程接口。在采到gps信息,放入一個變量A當中后,我該怎樣操作,才能將這些gps信息通過短信的方式發送出去啊。也就是短信內容,不需要自己輸入,而是發送一個變量中的內容,該如何 ...… 查看全部問答∨ |
求助:ARM7 44b0里面外部中斷和定時器中斷誰的優先級高些? ARM7 44b0,采用的是無向量的IRQ中斷模式。 問一下:外部中斷和定時器中斷誰的優先級高些? 仔細看了下手冊,沒看明白。外部中斷屬于mGA,定時器中斷屬于mGC,mGA、mGC誰的優先級高? 手冊里說優先級的高低是可編程的,怎么來編?需要設置什么寄存 ...… 查看全部問答∨ |
用DriverStudio做的驅動,在Dma傳輸時出錯了。我哪錯了呢?幫幫忙吧! 用DriverStudio做的驅動,在Dma傳輸時出錯了。在回調函數OnDmaReady(KDmaTransfer *pXfer,KIrp I)中發現這個Irp是個 空的,沒傳進來。… 查看全部問答∨ |
在MIPS平臺下,WINCE操作系統,CPU啟動的時候,在OAL層還沒初始化到OEM的時候已經完成了串口的初始化,在OEM初始化中最開始的打印信息為“+OEMInit”,我想問一下,“Windows CE Kernel for MIPS Built on Jun 24 2004 at 18:24:50”這條打印信息是 ...… 查看全部問答∨ |
如題,我安裝好wince5之前就按好了activesync,結果它立馬就連接了,我當時還不知道怎么操作,就稀里糊涂的也沒有連上,現在我再次插上開發板(mini2440)的時候,它就沒有提示我要安裝驅動程序了,我現在手工給它更改驅動程序的時候老 ...… 查看全部問答∨ |
我專業是嵌入式,開的一門課是《嵌入式技術基礎與實踐》,里面學的是HC08單片機。書,實驗開發箱都是蘇大自家做的。畢業設計老師要用HC08單片機做,可是資料很少,圖書館都沒找到……… 有多少人在用HC08呀?… 查看全部問答∨ |
本帖最后由 ddllxxrr 于 2016-1-7 17:09 編輯 12864液晶模塊,3塊,每塊40元 320240液晶顯示模塊,用的時間不超過一小時,50元 1.8液晶模塊,做實驗用的,帶轉接板 15元 智峰脫機下載器,95成新,用的時 ...… 查看全部問答∨ |