SDRAM 特性
(1) 通常情況下捂敌, SDRAM 是擁有四個 Bank 的動態(tài)刷新存儲器昭娩,存儲器工作在 3.3V 的電壓下,擁有一個同步接口,SDRAM 的所有信號都在時鐘信號的上升沿被寄存。 (DDRDRAM工作電壓是 2.5V俏脊、 DDR2 SDRAM 工作電壓是 1.8V)爆土。
(2) 對于 256Mb 的 SDRAM,每個 Bank 存儲 64Mbit(67108864bit)的數(shù)據(jù)。當 SDRAM的數(shù)據(jù)位寬為 4bit 時,這些數(shù)據(jù)組成 8192 行*2048 列,每個存儲單元存儲 4bit 數(shù)據(jù)霎终。當SDRAM 的數(shù)據(jù)位寬為 8bit 時,這些數(shù)據(jù)組成 8192 行*1024 列升薯,每個存儲單元存儲8bit 數(shù)據(jù)莱褒。當 SDRAM 的數(shù)據(jù)位寬為 16bit 時,這些數(shù)據(jù)組成 8192 行*512 列涎劈,每個存儲單元存儲16bit 數(shù)據(jù)广凸。
(3) 對于常用的一款型號為 HY57V281620 的 SDRAM 芯片,總共有 128Mbit 的存儲空間蛛枚, 其具有4 個 Bank谅海,每個 Bank 存儲32Mbit(33554432bit)的數(shù)據(jù)。 SDRAM 的數(shù)據(jù)位寬為16bit蹦浦,這些數(shù)據(jù)組成 4096 行*512 列扭吁,每個存儲單元存儲 16bit 數(shù)據(jù)。
(4) 對于 SDRAM 的讀寫是以突發(fā)的方式進行的盲镶,對 SDRAM 的操作(讀或寫)是從一個指定的地址開始侥袜,并按照編程好的數(shù)量(長度)的地址, 順序讀寫數(shù)據(jù)溉贿。對 SDRAM的操作(讀或寫)是以一個激活命令(包含打開行地址) 開始枫吧,然后跟隨一個讀或寫命令。伴隨著激活命令顽照,
A0-A12 上同時被寄存的數(shù)據(jù)是期望獲取位置的行地址由蘑, BA0 和BA1 上被寄存的數(shù)據(jù)是期望獲取位置的 Bank 地址。伴隨著讀/寫命令代兵, A0—A8 上同時被寄存的數(shù)據(jù)是期望獲取位置的列地址的首地址。
SDRAM 上電初始化時序
1. 加載電源( VDD 和 VDDQ)爷狈;
2. CKE 設置為低低電平( LVTTL 邏輯低電平)植影;
3. 加載穩(wěn)定的時鐘信號;
4. 等待至少 100us 的時間涎永,此過程中的命令保持為禁止命令或空操作命令思币;
5. 在步驟 4 的 100us 中的某個時刻鹿响,將 CKE 設置為高;
6. 步驟 4 的 100us 等待時間結束后谷饿, 隨即可發(fā)出一個全部 BANK 的預充電命令惶我;
7. 等待時間 tRP,此過程中命令保持為禁止命令或空操作命令博投;
8. 步驟 7 鐘的等待時間 tRP 結束時绸贡, 發(fā)出一個自動刷新命令;
9. 等待時間tRFC(Auto refresh period)毅哗,此過程中命令僅允許是禁止命令或空操作命令听怕;
10. 步驟 9 中的等待時間 tRFC 結束時, 再發(fā)出一個自動刷新命令虑绵;
11. 再等待時間 tRFC尿瞭, 此過程中命令僅允許是禁止命令或空操作命令;
12. 步驟 11 中的等待時間 tRFC 結束時翅睛, 發(fā)出裝載模式寄存器命令設置模式寄存器声搁, 具
體模式寄存器的值由A0~A11 傳輸;
13. 等待時間 tMRD捕发, 此過程中命令僅允許是禁止命令或空操作命令酥艳;
SD卡的寫操作流程如下
1、 拉低片選CS引腳爬骤, 發(fā)送命令CMD24( 0x58)讀取單個數(shù)據(jù)塊充石,命令發(fā)送完成后等待SD卡返回響應數(shù)據(jù);
2霞玄、 SD卡返回正確響應數(shù)據(jù)0x00后骤铃, 等待至少8個時鐘周期, 開始發(fā)送數(shù)據(jù)頭0xfe坷剧;
3惰爬、 發(fā)送完數(shù)據(jù)頭0xfe后,接下來開始發(fā)送512個字節(jié)的數(shù)據(jù)惫企;
4撕瞧、 數(shù)據(jù)發(fā)送完成后,發(fā)送2個字節(jié)的CRC校驗數(shù)據(jù)狞尔。 由于SPI模式下不對數(shù)據(jù)進行CRC校驗丛版, 直接發(fā)送兩個字節(jié)的0xff即可;
5偏序、 校驗數(shù)據(jù)發(fā)送完成后页畦,等待SD卡響應;
6研儒、 SD卡返回響應數(shù)據(jù)后會進入寫忙狀態(tài)( MISO引腳為低電平)豫缨, 即此時不允許其它操作独令。當檢測到MISO引腳為高電平時, SD卡此時退出寫忙狀態(tài)好芭;
7燃箭、 拉高CS引腳,等待8個時鐘周期后允許進行其它操作舍败。
SD卡的讀操作流程如下
1招狸、 拉低片選CS引腳, 發(fā)送命令CMD17( 0x51)讀取單個數(shù)據(jù)塊瓤湘,命令發(fā)送完成后等待SD卡返回響應數(shù)據(jù)瓢颅;
2、 SD卡返回正確響應數(shù)據(jù)0x00后弛说, 準備開始解析SD卡返回的數(shù)據(jù)頭0xfe挽懦;
3、 解析到數(shù)據(jù)頭0xfe后木人,接下來接收SD卡返回的512個字節(jié)的數(shù)據(jù)信柿;
4、 數(shù)據(jù)解析完成后醒第,接下來接收兩個字節(jié)的CRC校驗值渔嚷。 由于SPI模式下不對數(shù)據(jù)進行CRC校驗, 可直接忽略這兩個字節(jié)稠曼;
5形病、 校驗數(shù)據(jù)接收完成后,等待8個時鐘周期霞幅;
6漠吻、 拉高片選CS引腳,等待8個時鐘周期后允許進行其它操作司恳。
(我也是看了很多資料把大部分有用的發(fā)上來了途乃,其他雜七雜八的你們自己找哈!)
想一起討論的加我qq哈? 1125854915;