我正在尝试从在 +D 接口(interface)上格式化的 3.5"软盘中提取 ZX 频谱的数据。它与 PC 很接近,但不完全相同。我过去使用过编写软件来执行此操作BIOS 来访问软盘。
但是有些磁盘很旧并且有坏扇区。我正在尝试创建一个软盘驱动器 Controller 来以位级别读取磁盘以恢复尽可能多的数据。我完全知道这可能有多困难。不过,我编写了一个磁盘实用程序,它与原始 Spectrum 计算机上的机器代码级别的接口(interface)进行交互,用 Z80 汇编软件编写,以模拟 MSDOS 来访问文件并将文件写入 FAT12 软盘。访问这些磁盘的原始计算机使用 3.4MHz 处理器,因此我考虑使用的 Rasperry Pi 应该足够快。我什至可以从 Linux 运行它,但如果不能,我已经想出使用不需要任何内核来运行它的汇编语言来访问 GPIO 端口、屏幕、键盘和 SD 卡。我已经阅读了软盘驱动器如何读取和写入数据,并看到了一些如何操作软盘(不仅仅是步进电机)的基本示例。
我做了一些研究,但有一些问题我似乎找不到答案,想知道这里的人是否知道。
1) 读取数据引脚 (30)。这是否返回读取头下方的逻辑高/低值(向上或向下舍入为逻辑高或低),还是模拟?我之所以这么问,是因为如果它是模拟的,取回任何输入将使我能够更好地尝试恢复损坏的扇区,但会使接口(interface)电路更难制作,并且根据所使用的 ADC,使与 GPIO 的接口(interface)变得更难、更慢。
2) 我知道+5V 和+12V 的摩尔功率。但是软盘期望的电流是多少?
3) 我假设软盘上带状电缆的控制引脚在 0 或 +5V 下工作,但人们似乎能够在 +3.3V 下运行它们。有谁知道他们应该在什么条件下运行,以及他们的电流容差是多少:输入期望的电压和电流,以及输出提供的电流/电压?
非常感谢您提供的任何相关信息/知识。
最佳答案
有点晚了,但如果其他人感兴趣:
1) 软盘的数据输出为集电极开路。因此,您可以将其拉至 3.3 伏,就可以了。
2) 600 mA @ 12V、500 mA @ 5V 应该是安全的
3) 考虑 TTL 输入,预计高电平电压为 2.4 伏。 (根据 NEC 3.5 英寸软盘驱动器为 2.5V)。
关于raspberry-pi - 直接控制软盘驱动器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21125896/