打印

外部存储器的问题

[复制链接]
2118|18
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
wangzsa|  楼主 | 2011-9-15 18:06 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
用的是128Pin的CY68013,使用16位的地址总线和8位数据总线和外部存储器相连,外部存储器的起始地址0x4000读写正常,地址总线的低8位也正常,但高8位总是没法控制
沙发
wangpe| | 2011-9-15 18:09 | 只看该作者
本帖最后由 wangpe 于 2011-9-15 18:11 编辑

什么意思?

使用特权

评论回复
板凳
wangzsa|  楼主 | 2011-9-15 18:14 | 只看该作者
比如我设置地址为0xFFF,此时低8位都为1,但其他位为0

使用特权

评论回复
地板
wangzsa|  楼主 | 2011-9-15 18:15 | 只看该作者
该如何使用这16根地址总线呢

使用特权

评论回复
5
zhuww| | 2011-9-15 18:21 | 只看该作者
你的SRAM片选/CS怎么连的?

使用特权

评论回复
6
zhanglli| | 2011-9-15 18:23 | 只看该作者
外部存储器地址用16条,理论上可寻址64K SRAM。

使用特权

评论回复
7
zhuww| | 2011-9-15 18:57 | 只看该作者
因为地址重叠,实际可以访问SRAM的0x4000~0xE000范围

使用特权

评论回复
8
zhanglli| | 2011-9-15 19:00 | 只看该作者
嗯,共64K-16K-8K=40K。

使用特权

评论回复
9
wangzsa|  楼主 | 2011-9-15 19:02 | 只看该作者
CS引脚只连接到该外部寄存器

使用特权

评论回复
10
wangzsa|  楼主 | 2011-9-15 19:02 | 只看该作者
固件程序里面设置如下
xdata volatile BYTE EXT_ADD0 _at_ 0x4000;
xdata volatile BYTE EXT_ADD111 _at_ 0x4111;
xdata volatile BYTE EXT_ADDFFF _at_ 0x4FFF;
.....
if(add == 0)
BYTE EXT_ADD0 = EP0BUF[0];
if(add == 0x111)
BYTE EXT_ADD111 = EP0BUF[0];
if(add == 0xfff)
BYTE EXT_ADDFFF = EP0BUF[0];

使用特权

评论回复
11
wangzsa|  楼主 | 2011-9-15 19:26 | 只看该作者
通过示波器可以看到数据引脚D[7:0]是正确的,地址引脚A[7:0]也是对的,但是A[15:8]一直为低。

使用特权

评论回复
12
wangzsa|  楼主 | 2011-9-15 19:26 | 只看该作者
用到的地址范围应该在0x4000-0xE000以内。

使用特权

评论回复
13
blacksword| | 2011-9-16 09:48 | 只看该作者
CY的芯片不是很多需要配置使用16位还是8位的吗?你的这个要配置吗?

使用特权

评论回复
14
lium| | 2011-9-16 14:38 | 只看该作者
软件上,你参看一下CYPRESS安装包之后的C:\Cypress\USB\Examples\FX2LP\Memtest,这是一个完整的存储器测试程序。

使用特权

评论回复
15
lium| | 2011-9-16 14:50 | 只看该作者
硬件上,你参看一下CYPRESS的评估板。那上面有扩展128K SRAM的电路,包括译码、接线,实现了几种用法。

使用特权

评论回复
16
小工程师| | 2011-9-16 17:43 | 只看该作者
楼上的信息非常有用!!!

使用特权

评论回复
17
wangzsa|  楼主 | 2011-9-19 14:28 | 只看该作者
非常感谢。
那是68013单片机程序里面的一部分

使用特权

评论回复
18
wangzsa|  楼主 | 2011-9-19 14:29 | 只看该作者
昨天发现是我的应用程序有问题,修改后已经正常,感谢关注

使用特权

评论回复
19
wangzsa|  楼主 | 2011-9-19 14:32 | 只看该作者
先结贴了

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

914

主题

9040

帖子

5

粉丝