当前位置:首页 > 单片机 > 单片机
[导读]S3C2440中共有8个bank每个bank的地址空间为128MB,总共1GB。bank0数据位宽是由硬件选择,其他可由设置相应寄存器来改变。bank0-bank5支持外接ROM和SRAM,bank6和bank7还支持SDRAM(即开发板上的内存),且bank6和ba

S3C2440中共有8个bank每个bank的地址空间为128MB,总共1GB。bank0数据位宽是由硬件选择,其他可由设置相应寄存器来改变。bank0-bank5支持外接ROM和SRAM,bank6和bank7还支持SDRAM(即开发板上的内存),且bank6和bank7的地址空间大小是可变的。

S3C2440对外引出27根地址线ADDR0-ADDR26,访问空间128MB。同时还引出nGCS0-nGCS7,对应bank0-bank7,当访问相应bank时。相应的nGCSx输出低电平选中外设。地址分布图如下。

Steppingstone是cpu内部的RAM有4KB。当cpu上电时硬件选择了从Nand flash启动则,硬件上则会将Nand flash中前4KB的数据复制到Steppingstone中,起始地址为0。

使用SDRAM:

SDRAM需要连接到bank6或者bank7。开发板上使用的SDRAM是HY57V561620,此SDRAM由4个逻辑Bank(L-bank)组成,每个bank有4M,数据宽度是16位。所以其容量为4*4MB*2B=32MB。开发板有两块SDRAM。数据宽度32位,则容量为64MB。连接如图:

因为板上SDRAM总容量为64MB,所以地址线用到26根。最末尾两位LADDR24和LADDR25连接SDRAM的BA0和BA1,用来选择SDRAM的逻辑bank。因为是32位数据宽度低两位LADDR0和LADDR1没有使用。SDRAM的片选信号nSCS连接到cpu的nGCS6:nSCS0上所以使用的是Bank6。

SDRAM的访问步骤大致如下:

1.cpu发出片选信号nSCS有效,SDRAM被选中。

2.LADDR24和LADDR25,选中SDRAM中的L-bank。

3.对被选中的芯片进行行列寻址。

4.找到的存储单元的数据传输到数据总线上。

这些操作都是在设置好相应的寄存器,在访问内存时,cpu自动操作的。cpu可以根据设置在寄存器中的列地址位数和内存大小等信息,自动分出L-bank,行,列地址,并按相应的时序发送到SDRAM。

寄存器介绍:

存储控制器共有13个寄存器,bank0-bank5只需设置BWSCON和BANKCONx。bank6和bank7外接SDRAM时还需设置其他寄存器,下面是各个寄存器的介绍。

BWSCON(Bus width & Wait CONtrol register)位宽和等待寄存器。此寄存器设置每个bank的位宽,其中每4位控制一个bank。根据数据手册其中每4位中

DWx:占两位设置bankx的位宽,00对应8位01对应16位10对应32位

WSx:占一位是否使用WAIT信号,一般为0不使用

STx:占一位是否启用SDRAM数据掩码引脚SDRAM此位为0

其中比较特殊的是bank0,它的位宽是由硬件引脚OM0,OM1决定的。

BANKCONx(BANK CONtrol register)。在8个bank中bank6和bank7可以接SDRAM所以BANKCON6和BANKCON7与0-5不同。0-5中主要控制外接设备的访问时序。而6和7多出了,

MT:用于设置此BANK是外接存储器类型。SRAM/ROM为00,SDRAM为11

Trcd:RAS到CAS的延时

SCAN:SDRAM的列地址数,00为8位01为9位10为10位,

REFRESH (refresh control register)刷新控制寄存器,其中REFEN 0为禁止刷新功能,1为开启刷新功能。TREFMD刷新模式,Trp预充电时间,Tsrc半行周期。剩下0-10位是刷新计数器,计算公式为2^11+1-SDRAM时钟频率(MHz)*SDRAM刷新周期(us).2440开发板在未使用PLL时,时钟频率等于晶振频率12MHz,计算得出等于1955.整个寄存器则在本开发板中为0x008C07A3

BANKSIZE bank大小寄存器,其中BURST_EN 0为禁止突发传送1为支持突发传输。SCKE_EN使能掉电模式与否,SCLK_EN仅在访问SDRAM期间发出SCLK信号。BK76MAP设置BANK6/7大小。010为128MB 001为64MB。本例为0xb1。

MRSRBx(SDRAM mode register set rgister)x为6和7。能设置的只有CL[6:4]CAS等待时间。整个寄存器设置为0x30

实验代码简介:

@****************************************

@ 设置SDRAM 将下载到nandflash中转存到内部

@ SRAM中的程序复制到SDRAM 然后跳到SDRAM处

@ 执行

@****************************************



.equMEM_CTL_BASE,0x48000000

.equSDRAM_BASE,0x30000000

.equWTCON,0x53000000

.text

.global _start

_start:

bl disable_watchdog

bl init_sdram

bl move_to_sdram

ldr pc,=jump_to_main



disable_watchdog:

ldr r1,=WTCON

mov r2,#0x0

str r2,[r1]

mov pc,lr


init_sdram:

ldr r1,=MEM_CTL_BASE

adrl r2,mem_cfg_val

add r3,r1,#52@4*13=52

0:@数字标号是局部标号,这种标号可以在不同区域多次出现。

ldr r4,[r2],#4

str r4,[r1],#4

cmp r1,r3

bne 0b

mov pc,lr


move_to_sdram:

mov r1,#0;

ldr r2,=SDRAM_BASE

add r3,r1,#4*1024

0:

ldr r4,[r1],#4

str r4,[r2],#4

cmp r2,r3

bne 0b

mov pc,lr


jump_to_main:

ldr sp,=0x34000000

bl main



.align 4

mem_cfg_val:

.word0x22011110@BWSCON

.word0x00000700@BANKCON0

.word0x00000700@BANKCON1

.word0x00000700@BANKCON2

.word0x00000700@BANKCON3

.word0x00000700@BANKCON4

.word0x00000700@BANKCON5

.word0x00018005@BANKCON6

.word0x00018005@BANKCON7

.word0x008C07A3@REFRESH

.word0x000000b1@BANKSIZE

.word0x00000030@MRSRB6

.word0x00000030@MRSRB7

Makefile文件如下:

sdram.bin : head.Sleds.c
arm-linux-gcc-c -o head.o head.S
arm-linux-gcc -c -o leds.o leds.c
arm-linux-ld -Ttext 0x30000000 head.o leds.o -o sdram_elf
arm-linux-objcopy -O binary -S sdram_elf sdram.bin
arm-linux-objdump -D -m armsdram_elf > sdram.dis
clean:
rm -fsdram.dis sdram.bin sdram_elf *.o


本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

Arm CPU正在从根本上推动AI变革,并造福地球。Arm架构是未来AI计算的基石。​

关键字: ARM AI

近日,Arm推出了Arm® Ethos™-U85神经网络处理器(NPU)和Arm Corstone™-320物联网参考设计平台,旨在满足海量的数据处理和大规模计算,加速推进边缘AI的发展进程。

关键字: ARM

为了赶超云计算市场上的竞争对手,谷歌正试图通过定制的Arm服务器芯片降低云计算服务成本。

关键字: 谷歌 ARM 定制芯片

嵌入式开发作为一个融合了计算机软硬件和系统工程的综合性领域,其成功与否往往取决于三个核心要素的有效整合与协调。这三个要素分别是:硬件平台的选择与设计、软件开发及其优化、以及系统级的设计与集成。深入理解并熟练掌握这三个方面...

关键字: 嵌入式开发 ARM

随着汽车软件数量爆发式的增长,整个行业都需要重新思考汽车产品的开发流程。为此,Arm推出了丰富的硬件IP、新的系统IP,以及全新的汽车计算与计算子系统产品路线图,旨在为各种汽车应用实现性能、功能安全、可扩展等方面的支持。

关键字: ARM 汽车电子

知名移动芯片设计公司ARM最近迈出重要一步,它正式推出汽车芯片设计。ARM推出的芯片设计方案名叫Neoverse,随同芯片一起推出的还有面向汽车制造商、汽车供应商的新系统。

关键字: ARM 汽车芯片 芯片

随着通用人工智能的发展,数据中心的计算需求逐步提高。针对多模态数据、大模型的推理和训练需要更高的算力支持,而随着算力提升与之而来的还需更关注在功耗方面的优化。对于头部云计算和服务厂商而言,针对专门用例提高每瓦性能变得至关...

关键字: ARM 服务器 AI Neoverse CSS

一直以来,riscv架构都是大家的关注焦点之一。因此针对大家的兴趣点所在,小编将为大家带来riscv架构的相关介绍,详细内容请看下文。

关键字: riscv ARM riscv架构

最新消息报道,知情人士透露Arm近日裁掉了中国70多名软件工程师,并会将部分职位转移到中国以外的地区。Arm通过“全球服务”部门已经将支持其中国客户的工作外包给安谋科技,该部门曾经拥有约200名员工。

关键字: ARM 裁员

凭借着在个人计算机领域的广泛应用打下的坚实基础,X86自始至终统治着整个服务器生态。而这并不是业界希望看到的,因此Arm服务器被给予厚望。业界期盼Arm能够带来新的服务器CPU替代:打破一个同质化的数据中心架构,实现更高...

关键字: ARM 服务器 AI
关闭
关闭