人,
我一直看到有关如何使用 SPI 接口(interface)操作 SD 存储卡的引用资料。 这不是我想要的。我需要做恰恰相反的事情。
我希望能够在我的“主机”(任何具有 SD 卡接口(interface)的 PC)中使用 SDIO Controller (通过 SD 插槽)来与我只能“使用”SPI 的设备(基本上是微 Controller )通信。
如果我的理解不太错误,我不能简单地告诉我的 SD Controller 以原始 SPI 模式进行通信,但我可以教我的微 Controller 作为一个可由我的主机控制的 SDIO 设备。
这样我还有两个挑战:
- 在我的微 Controller 中正确实现通用 SDIO 设备。
- 在主机中实现/配置正确的驱动程序,以便能够与我的设备交互。
实现 SDIO 设备似乎是遵循 spec 的问题. 不过,主机端驱动程序是我希望通过 Linux 中的用户空间驱动程序使用一些已经存在的 SDIO 内核空间驱动程序来完成的。
这就是我来寻求帮助的意义所在。 任何人都可以指点我可以帮助我完成任务的任何示例、文档或任何类型的资源吗?
最佳答案
在 PC 端,这就是您所需要的:http://sourceforge.net/projects/sdio-linux/
这可能对引用有用:http://www.varsanofiev.com/inside/WritingLinuxSDIODrivers.htm (虽然,我不认为你会写一个驱动程序)
在微 Controller 方面,使用“bit-banging”来实现 SDIO 规范。
但是,首先要考虑为什么要这样做。 SDIO和SPI只是串口协议(protocol),USB也是;你不想制作一个 SPI 到 USB 的桥接器吗? USB 在主机端更加用户友好,并且更标准/更常见。如果你真的想要一个 SPI 到 USB 的桥,结果它已经存在了,SPI Shortcut (可能还有其他选择,这只是第一个想到的)
编辑 或者,如果主机支持 I2C(许多支持),您可以在微型计算机上对 I2C 进行位冲击。实际上,检查主机支持的每个串行协议(protocol),看看您是否可以从微端轻松支持它(通过位敲打,因为微端可能没有内置该协议(protocol)的从属模式)。 RS232(带电平转换器)、I2C 和 SPI 可能是首选。我认为 SDIO 几乎是最后的选择。
关于linux - 实现 SDIO 接口(interface) SPI 设备,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19281662/