将AT28C256用作Z80的非易失性SRAM

问题描述

我一直非常成功地将AT28C256用作Z80项目的EEPROM“ ROM”。由于可以使用/ WE引脚将AT28C256编程为5V,因此我在考虑将其用作非易失性SRAM的形式,而不是添加其他芯片。

是的,AT28C256的大小仅为32kB,所以我没有在Z80上使用整个16位地址空间-但我想知道是否可行?

我可以将AT80C256上的/ WE与Z80上的/ MREQ和/ WR行一起使用吗?还是我错过了什么?

然后我可以将堆栈指针(SP)设置为32k边界,而不是通常的0xFFFF。

解决方法

您可以使用像RAM这样的EEPROM,,但前提是要考虑到其行为。

您可以简单地连接:

  • Z80- / MREQ到EEPROM- / CE,但是您需要对此进行门控
  • Z80- / WR到EEPROM- / WE
  • Z80- / RD到EEPROM- / OE

注意事项,有关详细信息,请查阅数据表:

  1. 如果您写入一个字节(或使用页面写入算法),则EEPROM在读取后将 输出存储的值,直到定时的写入周期已经过去。

  2. 写入周期约为几毫秒。

  3. EEPROM可能会在几万次写入周期后失败(谢谢Stefan Paul Noack)。

由于第1点,您不能将其用于更改芯片内容的程序。

由于第2点,您不能将其用于堆栈或需要快速存储和检索的任何其他数据。

但是,您可以将其用于应用程序的数据。但是您将需要另一个内存才能运行程序。

如果您的程序需要堆栈或其他变量来快速写入,则将需要额外的RAM。 (注意:我记得一个Z80应用程序通过一个简单的DRAM实现了打印机队列,仅将CPU的寄存器用作程序变量,而仅将DRAM用于缓冲数据。)

要使用多个芯片作为存储器,您将需要根据它们的地址范围对这些存储器的/ CE引脚进行门控。

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...