您的位置:首页 > 其它

XSBASE 270-S_裸机程序_初始化SDRAM

2012-07-28 14:24 351 查看
开发板与平台:XSBASE 270-S、PXA270

裸机程序:初始化SDRAM

编译环境:ads 1.20

调试方法:直接用工具烧至片内norflash的0x0地址

一:分析

由图4的原理图可知该开发板采用2块13*9*16位的32MB内存组成SDRAM。接线的方式由cpu手册中的图2可以看出,A23和A24用于BANK选择,行列选择复用A10-A22一共13条地址线。内外地址的映射模式可以由图3可以知道,MDCNFG[STACKx]要设置为0x00,采用Normal Bank Addressing Scheme的方式。

在SDRAM的设置方面,实验去掉了电源管理方面的设置,另外要打开自动刷新,这里要注意的是自动刷新(auto-refresh)和自刷新(Self-refresh)的区别,自刷新是在SDRAM休眠的时候为了保持SDRAM内的数据使用的。

SDRAM的时序相关的设置参考图5,数据手册中推荐的数值不一定正确,只要大概设置后使得SDRAM使用稳定即可。

图1:



图2:





图3:



图4:



图5:







二:程序代码

Boot.s:

IMPORT  InitMem

AREA boot, CODE, READONLY
ENTRY

;初始化内存
BL        InitMem

LOOP
B        LOOP
END


Initmem.s:

EXPORT InitMem

MDCNFG            EQU     0x48000000
MDREFR            EQU     0x48000004
MDMRS            EQU     0x48000040
;**************************************
;Init Memory
;**************************************
AREA    InitMem,CODE,READONLY
ENTRY

LDR        R8,    =0x1

LDR        R0,    =MDCNFG
LDR        R1,    [R0]

;Use normal addressing mode(default)
BIC        R1,    R1,    R8,    LSL #12
BIC        R1,    R1,    R8,    LSL #10

;tRP = 3 clks, CL = 3, tRCD = 3 clks, tRASMIN =7 clks, tRC=10 clks
BIC        R1,    R1,    R8,    LSL #8
ORR        R1,    R1,    R8,    LSL #9

;4 internal SDRAM banks
ORR        R1,    R1,    R8,    LSL    #7

;13 row address bits
ORR        R1,    R1,    R8,    LSL #6
BIC        R1,    R1,    R8,    LSL #5

;9 column address bits
BIC        R1,    R1,    R8,    LSL #4
ORR        R1,    R1,    R8,    LSL #3

;32 bits
BIC        R1,    R1,    R8,    LSL #2

;SDRAM partition enabled
ORR        R1,    R1,    R8,    LSL #0

STR        R1,    [R0]

LDR        R0,    =MDREFR
LDR        R1,    [R0]

;SDCLK<1> Dependent on MDREFR[K1RUN]
BIC        R1,    R1,    R8,    LSL #24

;Self-refresh disabled
BIC        R1,    R1,    R8,    LSL #22

;0 = SDCLK<1> equals CLK_MEM
BIC        R1,    R1,    R8,    LSL #17

;SDCLK<1> Enabled
ORR        R1,    R1,    R8,    LSL #16

;SDCKE Enabled
ORR        R1,    R1,    R8,    LSL #15

;DRI = 0x31
LDR        R8,   =0xFFF
BIC        R1,    R1,    R8,    LSL #0
LDR        R8,   =0x1
ORR        R1,    R1,    R8,    LSL #0
ORR        R1,    R1,    R8,    LSL #4
ORR        R1,    R1,    R8,    LSL #5

STR        R1,    [R0]

LDR        R0,    =MDMRS
LDR        R1,    [R0]

;CAS Latency = 3
BIC        R1,    R1,    R8,    LSL #6
ORR        R1,    R1,    R8,    LSL #5
ORR        R1,    R1,    R8,    LSL #4
STR        R1,    [R0]

MOV     PC,    LR

END
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: