z80 的 SPI 硬件接口

SPI Hardware interface to z80

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

您真的可以在常规 IO 上使用 bit bang SPI。您只需要时钟信号的边沿中断和芯片的电平中断select。其他一切都可以在软件中完成。要发送,请将芯片 select 保持在低电平,并以所需的速率输出 MOSI 上的位。要接收,通过在时钟线上的所需边沿上从 MISO 采样位来处理芯片 select 变低。将所有内容放入缓冲区并在 chip select 线变回高电平时处理缓冲区。