存储控制器与外设之间的关系

发布者:Changfeng520最新更新时间:2018-07-22 来源: eefocus关键字:存储控制器  外设 手机看文章 扫描二维码
随时随地手机看文章

      我们知道,S3C2440对外引出有27根地址线(ADDR0~ADDR26),对应的访问范围为128M,另外,CPU还引出了8根片选信号(nGCS0~nGCS7)——低电平有效,对应8个BANK,这样就达到了1G的地址访问空间。

     理论上我们知道可以使用的地址访问范围为4G(32位的CPU),那么其他的地址空间用来做什么了呢?一部分是用来作为CPU的内部寄存器地址,一部分保留。

     注意:S3C2440的寄存器范围处于:0x48000000~0x5fffffff;存储控制器的地址在:0x48000000~0x48000030(13个);

     BANK1~BANK5的连接都差不多,所以对应的寄存器设置也一样;参考

    setmem 0x48000008,0x00002e50,32
    setmem 0x4800000c,0x00002e50,32
    setmem 0x48000010,0x00002e50,32
    setmem 0x48000014,0x00002e50,32
    setmem 0x48000018,0x00002e50,32    主要用来设置访问时序

      BANK0稍微有点不同,setmem 0x48000004,0x00000f40,32 (不知道时序方面的设置 是不是和boot rom有关)

      下面重点分析SDRAM的连接与寻址的方式

       几个用于SDRAM的信号:

  •        SDRAM的时钟有效信号SCKE;

  •        SDRAM的时钟信号SCLK0/SCLK1;

  •        数据掩码信号DQM0~DQM3,对应nWBE;

  •        SDRAM的片选信号nSCS0,与nGCS6是同一管脚两个功能;

  •        nSRAS 行地址选通脉冲信号;

  •        nSCAS 列地址选通脉冲信号;

         

     首先,SDRAM内部是由几个存储阵列组成,每个存储阵列为一个logical BANK

每个logical BANK 即存储阵列 又由行地址和列地址来寻址,就像EXCEL文档表格一样;一般有4个logical BANK。

      对SDRAM的访问分为以下几个步骤;

  • 使片选信号 nSCS0有效 BANK6 起始地址为0x30000000;

  • 用两根地址线作为选择信号选择相应的logical BANK (addr25 addr24);addr26?(思考中)

  • 对被选芯片进行统一的行列寻址;(行地址数:13  ,列地址数:9)当nSRAS有效时,addr2~addr14上发出的是行地址信号bit[23:11];当nSCAS有效时,发出的是列地址信号bit[10:2]。


       为什么addr0和addr1没有连接,我们知道BANK6是32位宽的,那么这两根地址线就不用用到了(恒为0);

       BANK6的起始地址是0x30000000,所以SDRAM的访问地址是0x30000000~0x33ffffff。

  •  找到了存储单元,就开始传输数据了,那么怎么组织这32位宽的数据呢?     

内存的这种接法,使它可以以8位访问,也可以16位访问,也可以32位访问 
那4个信号nWBE3~0,正是字节选通控制。

按8位访问,也就是代码中若有: 
*(unsigned char *) 0x30000000 = 0x78; 
就是一个字节写,这时只有nBWE0信号有效 

如果是0x30000001,则只有nBWE1有效(低),其它无效(高)。 

再举个例,如果是按16位访问呢? 
如果是16位访问,代码一般就是: 
*(unsigned short *)0x30000000 = 0x1978; 
这是一个16位写。但此时要注意,最低位必须是0,而不能是1,比如地址0x30000001就会使CPU异常,因为必须16位对齐! 
dat16 = *(unsigned short *)0x30000002; 
这是一个16位读 

在16位访问时,0x30000000地址写操作中,nWBE1, 0 = 低,nWBE3, 2 = 高。当0x30000002时,则是nWBE3,2为低,nWBE1,0为高(无效) 

32位时则是4字节对齐,也就是最低的两个地址位A1,A0必须为0,即对于32位访问,0x30000001, 0x30000002, 0x30000003都会导致异常(出错) 

对于32位访问,0x30000000的下一个地址是0x30000004,因为这个地址是字节地址,但一下子就访问了0x30000000~0x30000003四个字节,也就是nWBE3~0四个信号一起反应!!! 


不同的CPU访问的机制是不一样的,这要具体看手册了,是分开片选的 


关键字:存储控制器  外设 引用地址:存储控制器与外设之间的关系

上一篇:S3c2440代码重定位详解
下一篇:S3C2440 跳到 SDRAM 中执行程序

推荐阅读最新更新时间:2024-03-16 16:09

STM32外设之USART
前言 本章进行初识STM32F103串口,讲解通信方式,主要了解串口相应寄存器,串口的库函数编程方法,串口结构体的初始化。 一、USART是什么? USART:(Universal Synchronous/Asynchronous Receiver/Transmitter)首先来认识英文全拼对我们理解颇有裨益。翻译为通用同步/异步串行接收/发送器。区别于USART的有一个UART裁剪掉了同步,同步通信和异步通信指的是设备是否可以同步发送与接收,常见的同步通信有SPI RS232,通常同步通信伴有时钟线CLK,而异步通信不可以同步收发,通常由两根线组成。 二、使用步骤 1.功能框图 1.功能引脚 TX:发送引脚。 R
[单片机]
STM32<font color='red'>外设</font>之USART
DDR3存储器接口控制器IP核在视频数据处理中的应用
  DDR3存储器系统可以大大提升各种数据处理应用的性能。然而,和过去几代(DDR和DDR2)器件相比,DDR3存储器器件有了一些新的要求。为了充分利用和发挥DDR3存储器的优点,使用一个高效且易于使用的DDR3存储器接口控制器是非常重要的。视屏处理应用就是一个很好的示例,说明了DDR3存储器系统的主要需求以及在类似数据流处理系统中DDR3接口所需的特性。   视频处理系统将对于数据带宽的要求推高到了极致:系统可以处理越多的数据,就具有越高的性价比。视频聚合器和路由器可并行处理多个视频流,因此对于匹配数据处理能力和视频带宽的需求就成为了设计的一大挑战。FPGA可通过在单个FPGA中实现多个视频处理器来提供强大的处理能力。那么现在的挑
[嵌入式]
μC/OS—II下中断服务程序和外设驱动的开发
在嵌入式应用中,使用RTOS的主要原因是为了提高系统的可靠性,其次是提高开发效率、缩短开发周期。 μC/OS-II是一个占先式实时多任务内核,使用对象是嵌入式系统,对源代码适当裁减,很容易移植到8~32位不同框架的微处理器上。但μC/OS-II仅是一个实时内核,它不像其他实时操作系统(如嵌入式Linux)那样提供给用户一些API函数接口。在μC/OS-II实时内核下,对外设的访问接口没有统一完善,有很多工作需要用户自己去完成。串口通信是单片机测控系统的重要组成部分,异步串行口是一个比较简单又很具代表性的中断驱动外设。本文以单片机中的串口为例,介绍μC/OS—II下编写中断服务程序以及外设驅动程序的一般思路。 1 μC/OS-I
[应用]
s3c2440存储控制器和地址以及启动的理解
1.首先应该先了解Flash ROM的种类 NOR FLASH地址线和数据线分开,来了地址和控制信号,数据就出来。 NAND Flash地址线和数据线在一起,需要用程序来控制,才能出数据。 通俗的说,只给地址不行,要先命令,再给地址,才能读到NAND的数据,在一个总线完成的。 结论是:ARM无法从NAND直接启动。除非装载完程序,才能使用NAND Flash. 2.Nand Flash的命令、地址、数据都通过I/O口发送,管脚复用,这样做做的好处是,可以明显减少NAND FLASH的管脚数目,将来如果设计者想将NAND FLASH更换为更高密度、更大容量的,也不必改动电路板。在S3C2440中NANDFLASH的控制依靠NAND F
[单片机]
MAX3420E外设控制器的中断系统
MAX3420E可与任何SPI主控制器相连,以构成全速USB外设器件。尽管一般都由MAX3420来管理底层USB信令,但是需要处理USB事件时,SPI主控制器必须参与处理,当MAX3420的INT引脚指示有中断发生时,SPI主控制器将读取14个中断请求位,以确定需要服务的中断,一般情况下,主要由这些中断请求(IRQ)位确定MAX3420E的工作过程,在选择器件时,SPI主控制器可以是微控制器、DSP、ASIC或具备SPI端口的其他器件,并应能提供SCLK信号。 MAX3420E的中断逻辑 ◇ IRQ位 图1所示为MAX3420E中断逻辑。阴影部分是可通过SPI访问的寄存器位,图中有一个IRQ位,实际上,每一个中断都有一个用
[应用]
linux2.6.32.2 mini2440平台移植-- 配置 USB 外设、SD卡移植
Linux-2.6.32.2 内核对 USB外设的支持是相当丰富的,并且已经包含了 S3C2440 的 USB Host 驱动支持,因此我们只要配置一下内核就可以了,下面是各种 USB外设的详细配置步骤。 1.4.1 配置和测试 USB键盘、扫描器和鼠标 在内核源代码目录的终端输入:make menuconfig,依次选择如下子菜单项: Device Drivers --- HID Devices --- 按空格键选中 USB Human Interface Device (full HID) support ,这样就配置好了 USB键盘和鼠标项。 提示:这里的配置选项对应的内核源代码目录是:linu
[单片机]
STM32片上外设时钟使能、失能和复位的区别
1 RCC时钟说明 在STM32参考手册中,都有Reset and Clock Control(RCC)复位和时钟控制的章节。 在这一章节就可以看到有两类寄存器:peripheral reset register(RSTR)外设复位寄存器和peripheral clock enable register(ENR)外设时钟使能寄存器。 我们拿STM32F1参考手册为例,可以看到如下图寄存器: 一种是控制外设时钟的寄存器,一种是复位外设的寄存器。 2 外设时钟使能和失能 我们都知道,配置STM32外设,会先开启对应的时钟(也就是使能外设时钟)。 比如使能USART1时钟: RCC_APB2PeriphC
[单片机]
STM32片上<font color='red'>外设</font>时钟使能、失能和复位的区别
ADμC812的串行外设接口(SPI)及其应用
摘要:ADμC812是一种新型的集成12位数据采集系统。它的串行外设接口SPI(serial peripheral interface)可进行主机和多片从外围器件的信息传递,即主机对从机的控制及从机向主机提供各种信息等,从而实现系统之间的各种控制和操作。 关键词:ADμC812 串行通信 SPI串行端口 概述 ADμC812是一种全集成的12位数据采集系统。它在单个芯片内包含了高性能的自校准多通道ADC、2个12位DAC以及可编程的8位MCU(与8051兼容)。为便于MCU与各种外围设备进行通信,ADμC812提供了3种串行I/O端口:UART接口、I2C兼容的串行接口和串行外设接口(SPI)。其中,SPI接口是工业标准的同
[嵌入式]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
随便看看
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved