linux - 实现 SDIO 接口(interface) SPI 设备

标签 linux linux-device-driver microcontroller sd-card spi

人,

我一直看到有关如何使用 SPI 接口(interface)操作 SD 存储卡的引用资料。 这不是我想要的。我需要做恰恰相反的事情。

我希望能够在我的“主机”(任何具有 SD 卡接口(interface)的 PC)中使用 SDIO Controller (通过 SD 插槽)来与我只能“使用”SPI 的设备(基本上是微 Controller )通信。

如果我的理解不太错误,我不能简单地告诉我的 SD Controller 以原始 SPI 模式进行通信,但我可以教我的微 Controller 作为一个可由我的主机控制的 SDIO 设备。

这样我还有两个挑战:

  1. 在我的微 Controller 中正确实现通用 SDIO 设备。
  2. 在主机中实现/配置正确的驱动程序,以便能够与我的设备交互。

实现 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/

相关文章:

Linux 上的 Asp.net 核心 - dotnet ef 数据库更新失败并出现版本错误

linux - glibc 文档和字节顺序

c++ - 在 Linux 机器上从源代码构建 Qt-4.3.2

linux - 如何更改 Linux 显示驱动程序中支持的刷新率?

linux - 如何使现有套接字失败?

linux - 构建根问题

linux - 内核模块编译和 KBUILD_NOPEDANTIC

c - ADC 移动平均线

c - 如何在c中为微 Controller 定义新端口

microcontroller - AVRISPmkII 连接状态 : Unknown status 0x00