高8位总是没法控制

[复制链接]
1028|18
tian111 发表于 2015-2-28 19:18 | 显示全部楼层 |阅读模式
用的是128Pin的CY68013,使用16位的地址总线和8位数据总线和外部存储器相连,外部存储器的起始地址0x4000读写正常,地址总线的低8位也正常,但高8位总是没法控制
宋倩2010 发表于 2015-2-28 19:18 | 显示全部楼层
什么意思?
 楼主| tian111 发表于 2015-2-28 19:19 | 显示全部楼层
比如我设置地址为0xFFF,此时低8位都为1,但其他位为0
gongche 发表于 2015-2-28 19:19 | 显示全部楼层

你的SRAM片选/CS怎么连的?
huanghuac 发表于 2015-2-28 19:20 | 显示全部楼层

外部存储器地址用16条,理论上可寻址64K SRAM。
wenfen 发表于 2015-2-28 19:20 | 显示全部楼层
因为地址重叠,实际可以访问SRAM的0x4000~0xE000范围
zhuhuis 发表于 2015-2-28 19:20 | 显示全部楼层
嗯,共64K-16K-8K=40K。
 楼主| tian111 发表于 2015-2-28 19:21 | 显示全部楼层
CS引脚只连接到该外部寄存器
 楼主| tian111 发表于 2015-2-28 19:22 | 显示全部楼层
固件程序里面设置如下
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];
 楼主| tian111 发表于 2015-2-28 19:22 | 显示全部楼层
通过示波器可以看到数据引脚D[7:0]是正确的,地址引脚A[7:0]也是对的,但是A[15:8]一直为低。
 楼主| tian111 发表于 2015-2-28 19:22 | 显示全部楼层
用到的地址范围应该在0x4000-0xE000以内。
chenho 发表于 2015-2-28 19:23 | 显示全部楼层
CY的芯片不是很多需要配置使用16位还是8位的吗?你的这个要配置吗?
gongche 发表于 2015-2-28 19:23 | 显示全部楼层
软件上,你参看一下CYPRESS安装包之后的C:\Cypress\USB\Examples\FX2LP\Memtest,这是一个完整的存储器测试程序。
happy_10 发表于 2015-2-28 19:23 | 显示全部楼层
对,硬件上,你参看一下CYPRESS的评估板。那上面有扩展128K SRAM的电路,包括译码、接线,实现了几种用法。
 楼主| tian111 发表于 2015-2-28 19:23 | 显示全部楼层
非常感谢。
那是68013单片机程序里面的一部分
 楼主| tian111 发表于 2015-2-28 19:24 | 显示全部楼层
之前发现是我的应用程序有问题,修改后已经正常,感谢关注
 楼主| tian111 发表于 2015-2-28 19:25 | 显示全部楼层
先结贴了
598330983 发表于 2015-2-28 20:29 来自手机 | 显示全部楼层
肯定硬件问题
波越 发表于 2015-2-28 21:52 | 显示全部楼层
学习了,不错不错
您需要登录后才可以回帖 登录 | 注册

本版积分规则

797

主题

8878

帖子

7

粉丝
快速回复 在线客服 返回列表 返回顶部