如何使用spidev控制SD卡读卡器

时间:2014-08-26 13:37:44

标签: linux usb udev

我有一台运行Debian Wheezy的三星RF711 Core i7笔记本电脑带有集成的usb多功能闪存阅读器,但这个问题适用于任何带有SD卡读卡器的系统。 这就是lsusb所说的

  

总线004设备004:ID 058f:6366 Alcor Micro Corp.多闪存读取器

我想使用旧的SD卡并在其上焊接一些电线,以便在我将其插入SD卡端口时通过SPI与PIC通信。

我知道SD卡电压为3.3v,并且需要一个电压电平转换器来连接5v SPI器件。

我编译了一个自定义内核来生成spidev内核模块,现在是什么? 我知道这与udev规则有关,usb_modeswitch?但我无法看到树木的木材。

理想情况下,解决方案是一个程序,我们称之为sdcard-spi。 当程序启动时,它会翻转驱动程序并在/ dev中创建一个spidev设备。 当它退出时,它恢复插槽功能,以便能够再次读取SD卡。 它可能是一个守护进程 - 启动它转换插槽,停止它将插槽转换回SD卡读卡器。

似乎spidev的编写者很容易做到,因为SD卡最初是在SPI模式下探测的。

为了清楚起见,我想在SPI模式下打开SD读卡器,因此没有检测到卡,我可以使用spidev设备节点进行SPI通信,例如/dev/spidev.0。

1 个答案:

答案 0 :(得分:1)

你不能通过编写linux驱动程序来做到这一点。

您必须重写读卡器的固件。读卡器内部有一个同步串行接口,但读卡器和Linux计算机之间的接口不是通用串行接口,而是USB大容量存储设备。