我已经非常成功地使用AT28C256作为Z80项目的EEPROM"ROM"。由于AT28C256可以使用/WE引脚在5V电压下编程,我考虑将其用作非易失性SRAM的一种形式,而不是添加另一个芯片。
是的,AT28C256的大小只有32kB,所以我没有在Z80上使用整个16位地址空间,但我想知道这是否可能?
我可以把Z80上的/MREQ和/WR线放在一起,换成AT28C256上的/WE吗?还是我错过了什么?
然后,我可以将堆栈指针(SP(设置为32k边界,而不是通常的0xFFFF。
您可以像RAM一样使用EEPROM,但前提是要考虑其行为
您可以简单地连接:
- Z80-/MREQ到EEPROM-/CE,但您需要选通
- Z80-/WR到EEPROM-/WE
- Z80-/RD到EEPROM-/OE
需要考虑的事项,请参阅数据表了解详细信息:
-
如果您写入一个字节(或使用页面写入算法(,EEPROM将而不是在您读取时输出存储的值,直到经过自定时写入周期。
-
写入周期大约有几毫秒长。
-
EEPROM可能会在10k写入周期后出现故障(谢谢Stefan Paul Noack(。
由于第1点的原因,您不能将其用于更改芯片内容的程序。
由于第2点的原因,您不能将它用于堆栈或任何其他需要快速存储和检索的数据。
但是,您可以将它用于应用程序的数据。但是您需要另一个内存来运行程序。
如果你的程序需要一个堆栈或其他变量来快速写入,你将需要一个额外的RAM(注意:我记得一个Z80应用程序,它只使用简单的DRAM实现了打印机队列,只使用CPU的寄存器来处理程序的变量,只使用DRAM来缓冲数据。(
要将多个芯片作为内存,您需要根据这些内存的地址范围对其/CE引脚进行选通。