2014-08-26 2 views
0

У меня есть ноутбук Samsung RF711 Core i7, работающий под управлением Debian Wheezy с интегрированным USB-накопителем Multi Flash Reader, но этот вопрос может быть применен к любой системе с SD-кард-ридером на USB-накопителе порт. Вот что говорит lsusbКак управлять устройством чтения с SD-карт с помощью spidev

Bus 004 Device 004: ID 058f: 6366 Alcor Micro Corp. Мульти флэш Считыватель

Я хочу использовать старую сд карту и припаять несколько проводов на него, чтобы его для связи с ПОС через SPI, когда я подключаю его к порту SD-карты.

Я знаю, что напряжение на SD-карте составляет 3,3 В и что для взаимодействия с устройством 5В SPI потребуется преобразователь уровня напряжения.

Я скомпилировал пользовательское ядро ​​для создания модуля ядра spidev, что теперь? Я знаю, что это как-то связано с правилами udev, usb_modeswitch? но я не вижу дерева для деревьев.

В идеале решение было бы программой, назовем ее sdcard-spi. Когда программа запускается, она переворачивает драйверы и создает устройство spidev в/dev. Когда он завершает работу, он восстанавливает функциональность слота, чтобы иметь возможность читать sdcards еще раз. Это может быть процесс демона - его запуск преобразует слот, останавливая его, превращая слот обратно в устройство чтения SD-карт.

Похоже на то, что авторы spidev могут легко сделать, так как SD-карты первоначально исследуются в режиме SPI.

Для того, чтобы быть чистым, я хочу открыть SD-карту в режиме SPI, поэтому никакая карта не обнаружена, и я могу осуществлять связь SPI с помощью узла устройства spidev, например /dev/spidev.0.

ответ

1

Вы не можете сделать это, написав драйвер linux.

Вам придется переписать прошивку устройства для чтения карт. Внутри устройства чтения карт есть синхронный последовательный интерфейс, но интерфейс между устройством чтения карт и компьютером Linux не является универсальным последовательным интерфейсом, а USB-запоминающим устройством USB.

+0

Er, nope. Нет массового устройства хранения до тех пор, пока вы не поместите SD-карту в слот, после чего правила udev оживают и создают узлы (ы) устройства для разделов на SD-карте. –

+0

@PhilipAshmore: На самом деле, он представляет собой профиль устройства массовой памяти, но со статусом медиа-не-настоящего. Не то, чтобы была какая-либо разница, если устройство не перечислило без присутствия карты. Вы по-прежнему не можете отправлять произвольные передачи SPI, а только команды USB-хранения, которые декодируются прошивкой считывателя. –

+0

Устройства Pic USB (http://www.microchip.com/pagehandler/en-us/technology/usb/home.html) могут «разговаривать» с spi на SD-карточках, поэтому я мог бы просто использовать один из них (у меня есть 3 образца PIC18F14K50-I/P на своем пути). Ядро Linux сопоставляет идентификатор устройства с модулем ядра, поэтому различные правила udev будут удерживать соответствие устройства с помощью usb_storage, указывая его как устройство, которое может использовать модуль spidev. –

Смежные вопросы