首页 > 解决方案 > 使用 AT28C256 作为 Z80 的非易失性 SRAM

问题描述

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

是的,AT28C256 的大小只有 32kB,所以我没有使用 Z80 上的整个 16 位地址空间——但我想知道这是否可能?

我可以将 Z80 上的 /MREQ 和 /WR 线 OR 一起用于 AT28C256 上的 /WE 吗?还是我错过了什么?

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

标签: eepromz80

解决方案


您可以像 RAM 一样使用 EEPROM,但前提是您必须考虑到它的行为。

您可以简单地连接:

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

需要考虑的事项,请参阅数据表了解详细信息:

  1. 如果您写入一个字节(或使用页面写入算法),那么如果您读取它,EEPROM 将不会输出存储的值,直到自定时写入周期过去。

  2. 写周期大约是几毫秒长。

  3. EEPROM 可能会在几个 10k 写入周期后出现故障(感谢 Stefan Paul Noack)。

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

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

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

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

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


推荐阅读