我正在尝试使用z80制作复古计算机,理想情况下,它希望能够从SD卡启动它。我100%使用z80,不想使用带有内部SPI硬件接口的微控制器。我想了解计算机的硬件和软件方面,因此arduinos和微控制器已经摆脱桌面,因为硬件方面在您购买之前已经完成。无论如何,我的主要问题是可以将移位寄存器,一些解码逻辑和软件组合在一起,通过SPI模式从SD卡读取吗?我已经在互联网上搜索了几个小时并阅读了几篇文章,似乎无法找到一个教程。我理解SPI协议,然而,缺乏有关硬件方面的信息,因为微控制器往往内置所有硬件。我计划将SD卡的SOMI连接到移位寄存器的串行输入引脚,即SIMO将SD卡连接到移位寄存器的串行输出引脚,然后将几个数据引脚连接到一些触发器,其间有一些解码逻辑,这样如果我输出到特定端口,它将切换触发器。触发器将用作SD卡的时钟和芯片使能线。我还将z80的一个引脚连接到移位寄存器的锁存引脚(再次使用中间的解码逻辑),这样如果我输出到一个特定的端口,它将锁存移位寄存器的数据。我不关心速度/效率,只要我能准确地从SD卡读取数据。另外,我将移位寄存器时钟输入连接到与连接SD卡相同的时钟吗?关于如何实现这一点的任何建议将不胜感激,谢谢!
答案 0 :(得分:2)
你真的可以在普通的IO上点击SPI。您所需要的只是时钟信号的边沿中断和芯片选择的电平中断。其他一切都可以用软件完成。要发送,请将芯片选择保持为低电平,并以所需的速率在MOSI上输出位。要接收,通过在时钟线上的所需边沿上对MISO进行采样来处理芯片选择变低。将所有内容粘贴在缓冲区中,并在芯片选择线返回高电平时处理缓冲区。