原创 如何扩展CY7C68013的外部存储器

2011-2-27 19:36 3229 6 7 分类: 工程师职场

提高产品的技术水平,扩大产品的应用范围,这一原则贯穿产品的始终。尤其在设计阶段,尽可能地未雨绸缪,在硬件平台上考虑到未来几年的需求,这是一种理想,也是一种追求。

 

最近在设计测井信号模拟盒,我希望它能实现以下功能:

1,实现2秒的数据播放(5uS采样,每采样点8位)。算下来,需要200K数据点/s×2s×8bit=3.2Mbit的存储空间。这就需要一片4M RAM。

2,可以保存该波形数据,下次开机后能自动加载播放。同样,需要一片4M的FLASH。

3,可以选择播放文件。实现此功能最好用ARM。此为下话,暂且不提。如果有了ARM,第2项可以省略。

4,考虑使用的便利性,预先设计产品的外观,机械尺寸等,做大一个设计,多种应用。

 

在CPU平台选择上,最佳的选择当是DSP,它扩展存储器容易,并且可以实现5us以下的数据播放,这是理想;从产品的成本和开发周期上看,当前实现5uS的样机足够应付大多数需求。这是现实。我是机会主义者,我屈从现实。我日的。

 

扯的有点远,正题是,使用CY7C68013-128AXC,外扩4M RAM及4M DataFlash,并考虑到脱离主机运行,使用C2启动方式,扩展16K EEPROM(使用并行EEPROM也可,最大64K)。其它外围电路已经成型,无需赘述。

 

这里,比较困难的即是,扩展的RAM如何使用Keil C51接口。如果是程序存储器,可以使用C51的Bank Switch技术,通过把不同的函数代码加载到不同的分页内存中,实现超过64K存储器的访问。

 

方法一:IO线用作地址扩展。对超过64K的数据存储器XDATA,C51同样提供了分页管理模式。

http://www.keil.com/support/docs/2103.htm C51: CONFIGURING XDATA BANKING

http://www.keil.com/appnotes/docs/apnt_130.asp Using the XDATA Bank Switching Location

 

需要注意的是,如果普通IO线用作存储器地址扩展,则该口的其它位无法用作它用。这是因为8位地址是一次写出的,不能选某几位输出。通过修改启动文件,可以回避该问题。

 

启动文件是汇编的,改起来还是有点心虚的。不仅如此,68013用哪个口哪几根线,还真是没谱。

 

方法二:用ASIC实现译码,用地址寻址方式换页。

 

32K每页的换页操作,可行。这在AMEGA128的扩展应用上也有见到。参见ETHERNUT 2.1设计。 

 

缺点是,每页最大32K,不能定义大于32K的数组。

 

方法三,对68013,使用GPIF接口实现RAM扩展。这种方法没有通用性。

 

参见cypress an57322.pdf

 

以上说法未经验证。

PARTNER CONTENT

文章评论1条评论)

登录后参与讨论

用户414337 2012-5-16 23:20

非常好
相关推荐阅读
sealove518_112732726 2012-12-14 13:16
同時兩個surfaceview camera 中的一些開發問題
問題1: 如何將camera surfaceview 顯示在最上層:用了this.setZOrderOnTop(true);這個方法 問題2: 如何用一個BUTTON來自由控制came...
sealove518_112732726 2012-12-14 11:22
Eclipse中导入android项目名前有红叉但项目内文件无错误问题解决方法
Eclipse中导入android项目名前有红叉但项目内文件无错误问题解决方法 Eclipse中,Android项目名称前有红叉,但项目内所有文件都无错误,通常发生在导入项目时。 先可以去...
sealove518_112732726 2012-09-05 10:29
android各种权限及说明
  android.permission.ACCESS_CHECKIN_PROPERTIES 允 许读写访问”properties”表在checkin数据库中,改值可以修改上传( Allow...
sealove518_112732726 2012-09-05 10:27
android各种权限及说明
android各种权限及说明 android.permission.ACCESS_CHECKIN_PROPERTIES 允 许读写访问”properties”表在checkin数据库中,改值...
sealove518_112732726 2012-09-04 08:54
android 获取当前程序路径
//  获取当前程序路径     getApplicationContext().getFilesDir().getAbsolutePath();   //  获取该...
sealove518_112732726 2012-01-11 09:40
mt.exe:general error c101008d 最终原因已查明
mt.exe:general error c101008d(最终原因已查明)_算法的天空_百度空间   2011-05-27 16:22:41|  分类: 坑爹软件问题 |  标签: |字号大...
EE直播间
更多
我要评论
1
6
关闭 站长推荐上一条 /3 下一条