【问题标题】:Using an AT28C256 as non-volatile SRAM for a Z80使用 AT28C256 作为 Z80 的非易失性 SRAM
【发布时间】:2020-09-25 19:24:16
【问题描述】:

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

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

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

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

【问题讨论】:

标签: eeprom z80


【解决方案1】:

您可以像使用 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 引脚进行门控。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-11-07
    • 2018-01-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-07
    • 2015-04-23
    相关资源
    最近更新 更多