国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

查看: 5019|回復: 0
打印 上一主題 下一主題

關(guān)于ARM CORTEX-A8 S5PV210使用的內(nèi)存相關(guān)配置參考

[復制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
發(fā)表于 2014-1-16 12:00:12 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
關(guān)鍵詞: ARM , CORTEX-A8 , S5PV210 , 內(nèi)存
S5PV210有兩個獨立的DRAM控制器,分別是DMC0和DMC1,其中,DMC0最大支持512MByte,DMC1最大支持1GByte,而 DMC0和DMC1又同時支持兩個片選CS0和CS1。S5PV210的內(nèi)存模塊相比2440和6410來講要更加復雜一些,要想正確的配置 S5PV210的內(nèi)存,應該仔細閱讀芯片手冊相關(guān)部分,在配置參數(shù)時也應該適當?shù)拈喿x下內(nèi)存芯片的手冊。
在技術(shù)手冊里,S5PV210給出了以下幾個解決方案:
關(guān)于地址映射方面:S5PV210DMC64102440DMC有個重要區(qū)別,S5PV210可以控制內(nèi)存地址映射,DMC0的地址空間為 0x2000,0000~0x3fff,ffffDMC1的地址空間為0x4000,0000~0x7fff,ffffDMC可以通過配置寄存器來使 內(nèi)存芯片映射到其內(nèi)存段內(nèi)的適當位置。這個配置在MEMCONFIG寄存器中。
如果設(shè)置chip_base0x20
(1)我們掛載的內(nèi)存為128M,那么這個chip_mask應該設(shè)置為0xF8
(2)我們掛載256M內(nèi)存時,chip_mask應該設(shè)置為0xF0
(3)我們掛載512M時,chip_mask應該設(shè)置為0xE0
(4)我們掛載1GB內(nèi)存時,chip_mask就應該設(shè)置為0xC0
DMC0為例,當DMC0接收到來自AXI0x2000,0000~0x3fff,ffff內(nèi)的地址時,會作如下處理:
(1)AXI地址的高8位與chip_mask相與得到結(jié)果,記為X
(2)X分別與MEMCONFIG0MEMCONFIG1chip_base相比較,如果相等,則打開相應的片選。
假如掛載的內(nèi)存為128M,且CS0CS1上分別掛了一片,那么128M=128*1024*1024=0x8000000,則128M內(nèi)存的偏 移范圍應該是0x0000,0000~0x07ff,ffff,高位剩余5位,那么,我們把MEMCONFIG0chip_base設(shè)置為 0x20chip_mask設(shè)置為0xF8,為了保持內(nèi)存連續(xù),則需要將MEMCONFIG1chip_base設(shè)置為0x28chip_mask 設(shè)置為0xF8,當AXI發(fā)來的地址為0x23xx,xxxx時,0x23&0xF8得到0x20,所以,會打開片選CS0,當AXI發(fā)來的地址 為0x28xx,xxxx時,0x28&0xF8得到0x28,所以,會打開片選CS1,依此類推。
特別的,當載在的內(nèi)存芯片為8bank8bank內(nèi)存芯片一般為14/15行地址,10列地址,即容量一般為512M或者1G)時,由于CS1bank2引腳,為了保持CS0時鐘處于片選狀態(tài),對于512M內(nèi)存來講需要將chip_mask設(shè)置為0xE0,這是因為 512M=512*1024*1024=0x2000,0000,也就是說,512M內(nèi)存的偏移應該為0x0000,0000~0x1fff,ffff, 所以高位剩余3位,即0xE0,當然了,如果內(nèi)存為1G=1024*1024*1024=0x4000,0000,即偏移為 0x0000,0000~0x3fff,ffff,高位剩余2為,故設(shè)置chip_mask0xC0。這樣,就會計算偏移這兩個值了。
另外在附上s5pv210(飛凌ok210開發(fā)板)的內(nèi)存初始化順序,芯片手冊上給出了常用內(nèi)存類型的初始化序列,一般如果使用DDR2的內(nèi)存的話,可以按照如下順序進行初始化:
Initialization sequence for DDR2 memory type:
1.To provide stable power for controller and memory device, the controller must assert and hold CKE to a logic low level. Then apply stable clock. Note: XDDR2SEL should be High level to hold CKE to low.
2.Set the PhyControl0.ctrl_start_point and PhyControl0.ctrl_inc  bit-fields to correct value according to clock frequency. Set the PhyControl0.ctrl_dll_on bit-field to 1 to turn on the PHY DLL.
3.DQS Cleaning:Set the PhyControl1.ctrl_shiftc and PhyControl1.ctrl_offsetc bit-fields to correct value  according to clock frequency and memory tAC parameters.
4. Set the PhyControl0.ctrl_start bit-field to 1.  
5. Set the ConControl. At this moment, an auto refresh counter should be off.
6. Set the MemControl. At this moment, all power down modes should be off.
7. Set the MemConfig0  register. If there are two external memo ry chips, set the MemConfig1 register.
8. Set the PrechConfig  and PwrdnConfig registers.
9. Set the TimingAref,  TimingRow,  TimingData and TimingPower registers according to memory AC   parameters.
10.  If QoS scheme is required, set the QosControl0~15 and QosConfig0~15 registers.
11.  Wait for the PhyStatus0.ctrl_locked  bit-fields to change to ‘1’. Check whether PHY DLL is locked.
12.  PHY DLL compensates the changes of delay amount caused by Process, Voltage and Temperature (PVT) variation during memory operation. Therefore, PHY DLL  should not be off for reliable operation. It can be off  except runs at low frequency. If off mode is used, set the PhyControl0.ctrl_force  bit-field to correct value  according to the PhyStatus0.ctrl_lock_value[9:2] bit-field to fix delay amount. Clear the  PhyControl0.ctrl_dll_on bit-field to turn off PHY DLL.
13.  Confirm whether stable clock is  issued minimum 200us after power on.
14. Issue a NOP command using the DirectCmd register to assert and to hold CKE to a logic high level.
15. Wait for minimum 400ns.
16. Issue a PALL command using the DirectCmd register.
17. Issue an  EMRS2 command using the DirectCmd register to program the operating parameters.
18. Issue an  EMRS3 command using the DirectCmd register to program the operating parameters.
19. Issue an  EMRS  command using the DirectCmd register to enable the memory DLLs.
20. Issue a MRS command using the DirectCmd register to reset the memory DLL.
21. Issue a PALL command using the DirectCmd register.
22. Issue two Auto Refresh commands using the  DirectCmd register.
23. Issue a MRS command using the DirectCmd register to program the operating parameters without resetting the memory DLL.
24. Wait for minimum 200 clock cycles.
25. Issue an  EMRS  command using the DirectCmd register to program the  operating parameters. If OCD calibration is not used, issue an EMRS  command to set OCD Calibration Default. After that, issue an  EMRS  command to exit OCD Calibration Mode  and to program the operating parameters.
26.  If there are two external memory chips, perform steps 14~25 for chip1 memory device.
27. Set the ConControl to turn on an auto refresh counter.
28. If power down modes is required, set the MemControl registers.





您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權(quán)所有   京ICP備16069177號 | 京公網(wǎng)安備11010502021702
快速回復 返回頂部 返回列表
主站蜘蛛池模板: 2019国内自拍| 国产欧美一区二区成人影院 | 护士紧窄惨叫稚嫩 | 永久网站色视频在线观看免费 | 成人亚洲网 | 欧美视频一区二区在线观看 | 淫插| 欧美精品三级在线 | 国产色婷婷精品综合在线 | 一区二区三区四区亚洲 | 久久久久国产一级毛片高清片 | 久久艹视频 | 人摸人人| 国产精品久久久久久久成人午夜 | 亚洲精品中文字幕麻豆 | 99热视热频这里只有精品 | 激情艳女三级2在线观看 | 欧美大片在线观看成人 | 成在线人免费视频一区二区三区 | 中文字幕日本不卡 | 亚洲欧美激情在线 | 欧美成人性色生活片免费在线观看 | 成人欧美一区二区三区白人 | 久久91这里精品国产2020 | 青青草国产免费国产是公开 | 国产欧美精品专区一区二区 | 黄页成人免费网站 | 隔壁的放荡邻居在线看 | 日本中文在线播放 | 日韩高清性爽一级毛片免费 | 91精品国产高清91久久久久久 | 亚洲精品嫩草研究院久久 | 色婷五月综激情亚洲综合 | 国产在线h| 亚洲色图视频在线观看 | 国产精品公开免费视频 | 91手机看片国产永久免费 | 成人伊人青草久久综合网破解版 | 国产精品免费大片一区二区 | h肉动漫在线视频无修无遮挡 | 国产九九在线 |