首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >实现SDIO与SPI设备接口

实现SDIO与SPI设备接口
EN

Stack Overflow用户
提问于 2013-10-09 20:12:07
回答 2查看 6.9K关注 0票数 2

人民,

我经常看到关于如何使用SPI接口来操作SD存储卡的参考资料。这是而不是我想要的。我需要做的正好相反。

我希望能够使用我的“主机”中的SDIO控制器(通过SD插槽)(任何具有SD卡接口的PC机)与我的设备(基本上是微控制器)交谈,这些设备只能“说”SPI。

如果我的理解不是太错误,我不能简单地告诉我的SD控制器在原始SPI模式下说话,但我可以教我的微控制器作为一个SDIO设备,可以由我的主机控制。

这样,我仍然面临着两个挑战:

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

实现SDIO设备似乎是遵循等级库的问题。不过,主机端驱动程序是我希望在Linux中使用一些现有内核空间驱动程序来实现的用户空间驱动程序。

这就是我来寻求帮助的要点。有谁能为我指出任何样本、文件或任何能帮助我完成任务的资源?

EN

回答 2

Stack Overflow用户

发布于 2013-10-21 06:15:25

在PC端,这就是您所需要的:http://sourceforge.net/projects/sdio-linux/

这可能对参考有用:http://www.varsanofiev.com/inside/WritingLinuxSDIODrivers.htm (虽然,我认为您不会编写驱动程序)

在微控制器方面,使用“位敲击”来实现SDIO规范。

但是,首先要考虑为什么要这样做。SDIO和SPI只是串行协议,USB也是如此;你不愿意做一个SPI到USB的桥接吗?USB在主机端更方便用户使用,而且更标准/更常见。如果你真的想要一个SPI到USB的桥接器,原来它已经存在了,SPI捷径 (可能还有其他选项,这只是第一个想到的)。

如果主机支持I2C (很多支持I2C ),那么编辑或者,你可以在微上咬一口砰的I2C。实际上,查看主机支持的每一个串行协议,看看您是否可以从微端轻松地支持它(通过位敲击,因为微协议可能没有内置的从模式)。RS232 (带有电平移位器)、I2C和SPI可能是首选选择。我认为,SDIO几乎是最后的选择。

票数 1
EN

Stack Overflow用户

发布于 2013-10-22 15:05:17

SDIO非常严格地指定。除非您的微控制器有一个SDIO块,用于作为设备而不是主机,否则我认为这是不可能的。我知道一些实现SDIO设备的特殊用途通信控制器,但我还没有遇到任何通用的微控制器。

您需要一个相当快的微控制器,才能在高达400 kHz的情况下进行大幅度的SDIO初始化。如果以180 MHz运行一个MHz,则只给出SDIO时钟周期之间的微控制器周期。如果主机在初始化后将时钟速度提高到最大的25 MHz,那么在SDIO时钟之间就会缩短到7个周期。

从SDIO规范的角度来看,您所链接的规范是一个简化的规范,它不包括总线的信令和定时。完整的规格要大很多倍。

正如我所提到的,可能有更好的替代方案来满足您的需要。如果SDIO主机支持SPI模式,那么大多数微控制器都有SPI外围设备,它们可以充当辅助设备而不是主机,因此这可能是一种没有外围设备的途径。如果您的数据速率足够低,一个简单的UART就足够了(您可以在短距离内合理地达到1 Mbit )。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19281662

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档