ARM cortex a 的SDRAM (DDR)

下面介紹一下SDRAM的初始化工作。

  SDRAM是同步動態隨機存儲器,需要初始化才能正常使用,但是可惜它的初始化太麻煩,裏面涉及的東西也是非常之多,那麼下面我們概括地分析一下它到底需要哪些初始化步驟:

  以三星公司的S5PV210系列芯片爲例子,它使用了4個256M的DDR2內存芯片,都是16位的,並聯以後可以當做2個32位內存芯片來訪問使用。這個1Gb(1G bit)的DDR內部被配置爲一個8bank的DRAM。

  初始化DDR2需要27個步驟,我使用的這個板子,DRAM0連接256MB,DRAM1連接256MB


  首先就是三行代碼

ldrr0, =0xf1e00000 //無從知道,數據手冊沒有它的詳細介紹,所以我們不用理它

ldrr1, =0x0      //不用關心

strr1, [r0, #0x0]

  這是三星公司自己寫的,在這裏我全部保留。


  接下來就是DRAM1和DRAM0(bit在0~15位之間)設置IO端口的驅動強度,S5PV210數據手冊的第200頁可以看到這一點(SRAM的DDR部分),設置爲1010……也就是0xAAAA;


  然後緊接着就是就是設置時鐘(兩塊DDR都要設置),先把CKE設置低(拉低),然後設置給的時鐘信號,然後再拉高CKE(S5PV210數據手冊586頁)

DDR都是同步時鐘,它的時鐘來自於CPU提供,其內部還有一個PLL來倍增頻率,獲得更快的速度。


  在之後就是設置memory chip , 邏輯上兩片內存算作一片32位內存,所以說chip = 1 ;

  

  最後設置最後設置命令寄存器,寫這個寄存器就是發送命令,然後用來配置DDR的工作參數。

  這裏面有很多參數需要了解和設置,能夠跟着數據手冊把它看懂就可以了,沒必要自己會寫。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章