当前位置:首页 > 单片机 > 单片机
[导读] 存储器共有13个寄存器,BANK0~BANK5只需要设置BWSCON和BANKCONx(x为0~5)两个寄存器;BANK6、BANK7外接SDRAM时,除了BWSCON和BANKCONx(x为6、7)外,还要设置REFRESH、BANKSIZE、MRSRB6、MRSRB7等4个寄存器。下

存储器共有13个寄存器,BANK0~BANK5只需要设置BWSCON和BANKCONx(x为0~5)两个寄存器;BANK6、BANK7外接SDRAM时,除了BWSCON和BANKCONx(x为6、7)外,还要设置REFRESH、BANKSIZE、MRSRB6、MRSRB7等4个寄存器。下面分类说明(“[y:x]”表示占据了寄存器的位x、x+1、……、y):

1. 位宽和等待控制寄存器BWSCON(Bus Width & Wait Status Control Register)
BWSCON中每4位控制一个BANK,最高4位对应BANK7、接下来4位对应BANK6,依此类推。
(1)STx:启动/禁止SDRAM的数据掩码引脚,对于SDRAM,此位为0;对于SRAM,此位为1。Determine SRAM for using UB/LB for bank x, 0 = Not using UB/LB (The pins are dedicated nWBE[3:0])1 = Using UB/LB (The pins are dedicated nBE[3:0])。
(2)WSx:是否使用存储器的WAIT信号,通常设为0。Determine WAIT status for bank x, 0 = WAIT disable 1 = WAIT enable。
(3)DWx:使用两位来设置相应BANK的位宽,0b00对应8位,0b01对应16位,0b10对应32位,0b11表示保留。
比较特殊的是BANK0,它没有ST0和WS0,DW0([2:1])只读——由硬件跳线来决定:0b01表示16位,0b10表示32位,BANK0只支持16、32两种位宽。The states are selected by OM[1:0] pins。

2. BANK控制寄存器BANKCONx(BANK CONTROL REGISTER,x为0~5,(BANKCONx: nGCS0-nGCS5))
这几个寄存器用来控制BANK0~BANK5外接设备的访问时序,一般使用默认的0x0700即可。

3. BANK控制寄存器BANKCONx(BANK CONTROL REGISTER,x为6~7,(BANKCONx: nGCS6-nGCS7))
在8个BANK中,只有BANK6和BANK7可以外接SRAM和SDRAM,所以BANKCON6~BANKCON7与BANKCON0~BANKCON5有点不同。
MT([16:15])Determine the memory type for bank6 and bank7。00 = ROM or SRAM,01 = Reserved (Do not use),10 = Reserved(Do not use),11 = Sync. DRAM。
当MT=0b00时,此寄存器与BANKCON0~BANKCON5类似,不再赘述。
当MT=0b11时,此寄存器其他值设置如下。
Trcd([3:2]):RAS to CAS delay,设为推荐值0b01。
SCAN([1:0]):SDRAM的列地址位数,00 = 8-bit;01 = 9-bit;10= 10-bit

4. 刷新控制寄存器REFRESH(REFRESH CONTROL REGISTER):设为0x008C0000+R_CNT
(1)REFEN([23]):0=禁止SDRAM的刷新功能,1=开启SDRAM的刷新功能。
(2)TREFMD([22]):SDRAM的刷新模式,0=Auto Refresh,1=Self Refresh(一般在系统休眠时使用)。
(3)Trp([21:20]):设为0即可。
(4)Tsrc([19:18]):设为默认值0b11即可。
(5)Refresh Counter([10:0]):即上述的R_CNT,可按如下方式计算(SDRAM时钟频率就是HCLK):
R_CNT=2^11+1-SDRAM时钟频率(MHz)*SDRAM刷新频率(us)
Refresh period = (211-refresh_count+1)/HCLK
SDRAM的刷新周期在SDRAM的数据手册上有标明,例如HY57V561620B的数据手册上有这么一句话“8192 refresh cycles / 64ms”。所以,刷新周期=64ms/8192=7.8125us。
在未使用PLL时,SDRAM时钟频率等于晶振的12MHz。
现在可以计算:R_CNT=2^11+1-12*7.8125=1955
所以,在未使用PLL时,REFRESH=0x008C0000+1955=0x008C07A3。

5. BANKSIZE寄存器REFRESH(BANKSIZE REGISTER)
(1)BURST_EN([7])
0=ARM核禁止突发传输,1=ARM核支持突发传输。
(2)SCKE_EN([5])
0=不使用SCKE信号SDRAM进入省电模式,1=使用SCKE信号令SDRAM进入省电模式。
(3)SCLK_EN([4])
0=时刻发出SCLK信号,1=仅在访问SDRAM期间发出SCLK信号(推荐)。
(4)BK76MAP([2:0])
设置BANK7/6的大小。BANK0~5的地址空间大小都是固定的128MB,地址范围是(x*128M)到(x+1)*128-1,x表示0到5。BANK6/7的大小是可变的,以保持这两个地址的连续,即BANK7的起始地址会随它们的大小变化。BK76MAP的取值意义如下:
010 = 128MB/128MB;001 = 64MB/64MB;000 = 32M/32M;111 = 16M/16M;110 = 8M/8M;101 = 4M/4M;100 = 2M/2M

6. SDRAM模式设置寄存器MRSRBx(SDRAM MODE REGISTER SET REGISTER,x为6~7)
能修改的只有位CL([6:4]),这是SDRAM时序的一个时间参数:
CAS latency 000 = 1 clock, 010 = 2 clocks, 011=3 clocks


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

ARM系统几乎都采用Linux的操作系统,而且几乎所有的硬件系统都要单独构建自己的系统,与其他系统不能兼容,这也导致其应用软件不能方便移植,这一点一直严重制约了ARM系统的发展和应用。GOOGLE开发了开放式的Andro...

关键字: Linux x86 ARM

随着计算需求的多样化,尤其是随着移动设备、嵌入式系统和云计算的兴起,ARM 和 x86 架构之间的争论变得更加突出。ARM(高级 RISC 机器)和 x86 代表两种不同类型的处理器架构,每种架构都针对不同的工作负载和用...

关键字: Linux x86 ARM

从画质优化 (NSS) 到帧率提升 (NFRU) 和光线追踪(NSSD),Arm 计划覆盖移动端图形处理的多个维度,推动边缘 AI 图形革命。而未来通过持续的技术迭代,Arm也将保持在移动计算领域的技术领先,满足手游、A...

关键字: ARM 神经图形技术 GPU AI ML

7月31日消息,据媒体报道,芯片架构提供商Arm Holdings首席执行官Rene Haas宣布,公司正加大投入开发自有芯片产品,此举标志着其从传统IP授权模式向提供实体芯片的战略重大转变。

关键字: ARM META

7月28日消息,2025年,中国AI硬件市场规模将首次突破万亿元大关。

关键字: AI ARM

受生成式 AI 驱动, RISC-V 芯片市场快速发展。预计到2030年,RISC-V SoC出货量将达到1618.1亿颗,营收将达到927亿美元。其中,用于AI加速器的RISC-V SoC出货量将达到41亿颗,营收将达...

关键字: RISC-V CPU AI CUDA ARM 推理
关闭