与 z80 的 SPI 硬件接口

问题描述 投票:0回答:2

我正在尝试使用 z80 制作一台复古计算机,理想情况下希望让它能够从 SD 卡启动。我 100% 决定使用 z80,并且不想使用具有内部 SPI 硬件接口的微控制器。我想了解计算机的硬件和软件方面,因此 arduino 和微控制器不在考虑之列,因为硬件方面在您购买之前就已完成。无论如何,我的主要问题是是否可以将移位寄存器、一些解码逻辑和软件结合起来通过 SPI 模式从 SD 卡读取数据?我在互联网上搜索了几个小时并阅读了几篇文章,但似乎找不到教程。我了解 SPI 协议,但是,缺乏有关硬件方面的信息,因为微控制器往往内置所有硬件。我计划将 SD 卡的 SOMI 连接到移位寄存器 SIMO 的串行输入引脚将SD卡的串行输出引脚连接到移位寄存器的串行输出引脚,然后将一些数据引脚连接到一些触发器,中间有一些解码逻辑,这样如果我输出到特定端口,它将切换触发器。触发器将充当 SD 卡的时钟和芯片使能线。我还将 z80 的一个引脚连接到移位寄存器的锁存器引脚(同样在中间有解码逻辑),这样如果我输出到特定端口,它将锁存移位寄存器的数据。我不关心速度/效率,只要我能准确地从 SD 卡读取数据即可。另外,我是否可以将移位寄存器时钟输入连接到与 SD 卡连接的同一时钟?任何有关如何实现这一点的建议将不胜感激,谢谢!

sd-card spi z80 retro-computing shift-register
2个回答
2
投票

您确实可以在常规 IO 上对 SPI 进行位操作。您所需要的只是时钟信号的边沿中断和片选的电平中断。其他一切都可以在软件中完成。要发送,请将片选保持为低电平,并以所需的速率输出 MOSI 上的位。为了接收,通过在时钟线上的所需边沿对 MISO 采样位来处理片选变低的情况。将所有内容粘贴到缓冲区中,并在片选线返回高电平时处理缓冲区。


0
投票

我有一个快速但肮脏的解决方案,让我的 Z80 将标准文件从 SD 卡读取到我的 z80 将运行的 RAM 中。至少对我来说这让事情变得简单多了。我注意到您提到没有 arduino,但是您可以仅将其用于 SDCARD,它充当控制器从 SDCARD 中提取数据并沿着一组不超过 3 行(就像您在内部工作不暴露于 z80 系统的旧软盘驱动器)。它的另一个好处是可以为您管理 FAT 文件系统,至少在您能够开发自己的 z80 文件系统之前是这样。不过,请注意 SD 分配单元/块大小,这是我需要研究的 arduino 软件库上的一些内容。

© www.soinside.com 2019 - 2024. All rights reserved.