DIY编程器网

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1781|回复: 1
打印 上一主题 下一主题

[待整理] SL11R单片机外部存储器扩展

[复制链接]
跳转到指定楼层
楼主
发表于 2014-10-5 10:53:05 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
SL11R单片机外部存储器扩展


摘要:介绍了USB接口单片机SL11R进行外部存储器扩展的方法和实例,并测试了外部SRAM及EDO DRAM的工作速度。    关键词:单片机 SL11R 存储器 USB
SL11R是Scanlogic公司生产的一种带有USB接口的16位RISC单片机,内核处理速度达到48MIPS,有丰富的硬件资源及32位可编程I/O口,可以灵活扩展外围芯片。本文主要讨论其外部存储器的扩展。

1 SL11R存储器空间

SL11R内部有3K字节的SRAM,可以用作指令存储器和数据存储器,但有些应用场合需要扩展存储器。SL11R可扩展I2C串行E2PROM、通用并行EPROM及RAM,还能够直接扩展大容量的EDO DRAM。
SL11R采用统一地址编码方式对外寻址,程序代码、数据区、I/O地址均安排在64K字节空间中,各自有独立的寻址空间并有相应的选通信号输出。硬件设计时不需另加解码电路,只要把扩展芯片的片选引脚与对应的控制信号相连就可以。SL11R对EDO DRAM的寻址采用页寻址方式,可寻址高达2M字节的空间,以满足图像采集等需要大量数据存储器的场合。SL11R存储器空间具体安排见表1。

表1 SL11R存储器空间
功 能 区地址空间
内部RAM
外部RAM
外部DRAM
外部DRAM
内部寄存器
外部ROM
内部ROM
0x0000~0x0BFF
0x0C00~0x7FFF
0x8000~0x9FFF
0xA000~0xBFFF
0xC000~0xC0FF
0xC100~0xE7FF
0xE800~0xFFFF
外部RAM的0x0000~0x0BFF地址空间被内部RAM占用,故不能使用。
外部ROM的默认地址空间为0xC100~0xE7FF,通过软件设定,也可以占用0x8000~0xBFFF地址空间。

2 SL11R存储器扩展

SL11R的外部存储器包括串行E2PROM存储器、外部SRAM数据存储器、外部EPROM程序存储器及动态存储器。
2.1 串行I2C E2PROM的扩展
串行E2PROM的扩展比较简单,只要根据I2C E2PROM的容量选择相应的电路即可。图1为扩展2K字节E2PROM电路图,图2为扩展16K字节E2PROM电路图。值得注意的是,如果用串行E2PROM作程序存储器,最好选用图1所示的接线。由于SL11R内部RAM只有3K字节,启动时BIOS首先从2K字节的串行E2PROM中加载指令代码。
读写I2C E2PROM可以直接调用BIOS中断实现,不需要另编程序,比较方便。

    2.2 外部数据存储器及EPROM的扩展
SL11R的数据总线是16位,提供了两种存储器扩展模式供用户选择,可以通过软件设定外部存储器工作在8位模式或16位模式。图3是SL11R扩展32K×16位SRAM的实例。图3所示状态下外部SRAM工作在16位模式;当开关SW接地,则SRAM工作在8位模式,IC2不使用。SL11R的引脚XRAMSEL和XROMSEL可以分别作为外部数据存储器和程序存储器片选信号CS。
2.3 动态存储器的扩展
SL11R扩展动态存储器非常简单。因为它已经内置了动态存储器控制电路,与EDO DRAM直接连接就可以,不需要另加电路,而且自动刷新,用户使用动态存储器负使用SRAM一样方便。SL11R扩展DRAM的电路见图4。

    扩展DRAM时要选择3.3V的EDO DRAM,尽量使用1M×16位的内存芯片如GM71V18163CJ、IS41LV16100、HY51V18164等,这样电路设计较简单。笔者在使用过程中发现,某些DRAM与SL11R存在兼容性问题,有时工作不稳定,但换另一批次的芯片后又正常工作,所以设计者在使用时应注意筛选。
SL11R对DRAM的寻址空间为0x8000~0x9FFF和0xA000~0xBFFFF。这个地址值控制寻址的低位地址(A0~A12),另外有2个对应的页面寄存器控制寻址的高位地址,每个页面都能完成对1M×16位空间的寻址。这两个16位的页面寄存器是0xC018和0xC01A,以页面1寄存器0xC018具体说明如下:
D15~D9D8D7D6D5D4D3D2D1D0
0A21A20A19A18A17A16A15A14A13
如果A21=1,则对0x8000~0x9FFF空间的读写操作是针对DRAM,由DRAMOE和DRAMWT引脚选通DRAM,参见图4。
如果A21=0,则对0x8000~0x9FFF空间的读写操作是针其它外设,由nXMEMSEL引脚选通。这种方式使SL11R另外增加了1M×16位的寻址空间,但这个空间DMA方式不能直接寻址。
A13~A20则是页面1的高位地址,加上08000~0x9FFF的低位(A0~A12)实现页面1的寻址。
页面2的寻址与页面1的寻址完全一样,只是由0xC01A和对0xA000~0xBFFF的寻址实现。
页面1和页面2的寻址空间是重叠的,一般可以使用一个页面对DRAM寻址,另一个页面对其它外设寻址。
3 存储器速度的影响

SL11R的工作频率较高,必须要考虑存储器的速度,否则可能工作不正常。
3.1 静态存储器速度
读取外部静态存储器的时序见图5,具体参数见表2。表2中的参数是SL11R的内部工作时钟PCLK工作36MHz,等待周期设定为0时的数据。
表2 SL11R读周期参数
符 号参     数最小值最大值
tCR
tRDH
tCDH
tPRW
tAR
tAC
CS下降沿到RD下降沿
RD上升沿到数据保持
CS上升沿到数据保持
RD低电平时间
RD下降沿到地址有效
RAM访问时间
1ns
5ns
3ns
28ns
1ns



31ns
3ns
12ns
SL11R扩展外部SRAM或EPROM时,可以设定等待周期,最长可设定7个等待周期,每个等待周期时间为31ns(PCLK=32MHz时),这样SL11R就可以扩展价格低廉的低速EPROM和SRAM存储器。
选择SRAM的速度主要应该由CS的低电平脉冲宽度决定:
tAC=tCR+tRDH-tCDH+等待周期时间
笔者经实验得到常见的SRAM需要设定的等待周期数,见表3。从表3的数据可知,一般SRAM的速度可以达到标称值,如PCLK为32MHz,100ns SRAM的等待周期为2,这时tAC=1+28+5-3+2×31=93ns。
表3 常见SRAM等待周期设定
 100ns SRAM70ns SRAM15ns SRAM12ns SRAM
PCLK=32MHz
PCLK=48MHz
2
3
1
2
0
0
0
0
3.2 动态存储器的速度
EDO DRAM的读写速度有两种情况:一种是随机读写;另一种是快速页面读写。SL11R随机读取DRAM的时序见图6,参数见表4。
表4 SL11R读DRAM参数
PCLKtRC1RAStCAStRACtOAC
32MHz150ns80ns20ns80ns20ns
48MHz100ns53ns13ns53ns13ns
影响DRAM速度的参数较多,但选择DRAM主要是根据tRAS。一般选择50ns或60ns的DRAM就可以满足要求。
SL11R随机读写DRAM的周期时间tRC在PCLK为32MHz时为150ns;PCLK为48MHz时为100ns。经测试,DMA方式下,DRAM的读写速度可以达到6MHz,满足常用的数据采集要求。

    DRAM的快速页面读写是指在DRAM的同一个页面下,即行地址相同时,DRAM保持行地址不变,只寻址列地址,这样可以减少发送行地址的时间。使用快速页面读写必须十分小心,因为在数据采集等场合,写数据时页面发生变化会影响DRAM的读写时间,很可能会丢失数据。
SL11R扩展外部存储器的能力较强,可以方便地扩展I2C接口的串行存储器、各种速度的静态存储器以及大容量的DRAM。配合SL11R的USB接口和快速的处理能力,可以满足各种应用的需要。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|文字版|手机版|DIY编程器网 ( 桂ICP备14005565号-1 )

GMT+8, 2024-11-30 13:54 , 耗时 0.094097 秒, 20 个查询请求 , Gzip 开启.

各位嘉宾言论仅代表个人观点,非属DIY编程器网立场。

桂公网安备 45031202000115号

DIY编程器群(超员):41210778 DIY编程器

DIY编程器群1(满员):3044634 DIY编程器1

diy编程器群2:551025008 diy编程器群2

QQ:28000622;Email:libyoufer@sina.com

本站由桂林市临桂区技兴电子商务经营部独家赞助。旨在技术交流,请自觉遵守国家法律法规,一旦发现将做封号删号处理。

快速回复 返回顶部 返回列表