Como posso conectar esse leitor de cartão SD ao RaspberryPi?

11

Preciso adicionar um segundo leitor de cartão SD ao meu Raspberry Pi para o projeto www.samplerbox.org (o RPi será incorporado em uma caixa, portanto, preciso de um leitor de cartão SD do usuário ).

Aqui está o que eu gostaria de usar:

insira a descrição da imagem aqui

Como conectar isso ao RaspberryPi? Via GPIO? (se sim, como?) Via porta USB? (se sim, como conectar esses pinos a um plugue USB padrão?)

ATUALIZAÇÃO : Aqui estão os pinos 2 * 8 GND, 3V3, 5V, CS, MOSI, SCK, MISO, GND::

insira a descrição da imagem aqui

Basj
fonte
Você planeja inicializar a partir do cartão SD externo? Ou é o Pi para inicializar a partir do cartão SD interno. Para que o cartão SD externo será usado?
Joan
@joan Não, eu não pretendo inicializar nele, o cartão SD externo estará lá para permitir que o usuário carregue / salve alguns dados. O usuário não acessará o cartão SD interno (RPi incorporado em uma caixa). Mais fácil de entender com uma foto: www.samplerbox.org
Basj 13/03/2015
1
Você pode economizar muitos problemas se apenas der ao usuário um pen drive para dados. Implementar uma segunda interface de cartão SD será muito difícil. Basta levar uma porta USB para fora da sua caixa.
Joan
1
Além disso, você pode usar um adaptador SDCard para USB, que é uma troca entre os dois. Apenas google SDCard USB adapter.
user236012
4
Embora eu concorde que pode ser mais fácil usar um pendrive, não deve ser difícil fazer interface com um cartão SD. Todo SD suporta SPIe roda em 3.3V (muitas dessas placas possuem conversores de nível para interface com 5V). Eu usei um adaptador semelhante no Arduino e vou experimentar o Pi. Existe um software FAT para o Arduino. (NOTA não espero para acessá-lo via drivers do kernel padrão.)
Milliways

Respostas:

6

Parece que é um dispositivo SPI. Você deve primeiro habilitar o SPI usando raspi-config. Então você precisará conectar:

(Reader) GND  --  GND       (GPIO-Raspberry Pi2) 
         3V3  --  3.3 V (Pin 1)
         5V   --  NC
         CS   --  GPIO8 (Pin24)
         MOSI --  GPIO10 (Pin 19)
         SCK  --  GPIO11 (Pin 23)
         MISO --  GPIO9 (Pin 21)
         GND  -- NC
KeremE
fonte
2
Alguma idéia de como ter uma taxa de transferência melhor que 1 megabyte / s com essa técnica? Existe outra maneira, além do leitor USB SD, de permitir 10 MB / s?
Basj
altas velocidades são cerca de mais de uma linha para um dos dados do cartão SD, parece que você não tê-los aqui, e não é uma configuração simples-fiação através da interface SPI
Alexey Vesnin
6

Pinagem de framboesa pi

Você deve conectar GND, 5V e 3V3 aos pinos apropriados no pi. Em seguida, MOSI e MISO também são marcados na imagem; o SCK deve conectar-se ao SCLK (este é o relógio de 10 MHz que deve ser acionado pelo pi) e finalmente conectar o pino CS ao CS0 (Chip-Select, para que você possa conectar 2 SD ou outros dispositivos compatíveis com SPI).

De acordo com a primeira resposta deste segmento , se você estiver executando a versão do kernel superior a 3.2.20, ele deverá suportar o hardware SPI na placa e fornecer 1 MB / s de taxa de transferência com pouca carga de CPU, o que é impressionante.

Se o seu kernel é de uma versão superior, mas é compilado sem o suporte a dispositivos SPI, recompile-o com uma configuração apropriada (consulte o thread mencionado novamente).

Yigal
fonte
2
Obrigado por esta resposta! Mas 1 MB / s é muito baixo (em comparação com um leitor USB) e, para o meu projeto, preciso carregar 100 MB em um tempo muito curto (isso é possível no leitor RPi microSD, possível em um leitor de cartão USB SD, portanto Eu preciso o mesmo a partir deste leitor SD PCB)
Basj
Você não verá uma taxa mais rápida com este leitor SD e a combinação pi. É alcançado 1 MB / s utilizando o hardware da interface SPI especializada no pi. Se você usar outros conectores GPIO, precisará implementá-lo com a CPU, atingindo taxas muito mais baixas, em torno de 180 KB / s. Se você precisar de taxas mais rápidas, use um leitor USB, como sugerido por outros, o que, pelo que me lembro, me custou cerca de 4 MB / s, mas talvez outros possam fornecer números mais precisos.
Yigal
1
Arghh ... Tão triste que não podemos obter mais de 1 MB / s com este leitor. É possível transformar este leitor em um leitor USB SD (com componentes additionnal?)
Basj
1
Você pode obter um módulo que lida com SPI (e outros protocolos) para USB como esse por cerca de US $ 20: digikey.co.il/product-search/en?v=768&mpart=VA800A-SPI Mas eu não seguiria esse caminho. Eu não li as especificações, então não sei se o módulo se identifica como classe de armazenamento em massa ou alguma outra classe USB mais genérica; nesse caso, você precisará envolvê-lo com seu próprio driver. Vai ser muito mais fácil conseguir um simples leitor de cartão SD USB.
Yigal
1
Claro, mas eu preciso de um leitor de cartão SD USB que possa ser montado no PCB (não apenas para mim, mas para o meu projeto samplerbox.org será de código aberto, então eu quero que seja fácil para qualquer pessoa
adquirir
1

Sem saber muito sobre o próprio leitor de cartões, darei a melhor resposta possível.

O leitor parece ter marcações próximas aos pinos do GPIO. Conecte-os aos pinos correspondentes no RPI usando alguns cabos de ligação fêmea-fêmea (ou um método mais permanente para sua aplicação). Se eles não tiverem um pino correspondente, conecte-os a um pino livre no pi e anote-o.

A API do leitor pode precisar de algumas configurações extras para permitir a transferência de arquivos através dos outros pinos, mas não posso ajudá-lo nesta parte.

Espero que isso funcione!

angussidney
fonte
Eu adicionei os rótulos dos pinos e a foto na pergunta. É possível ir desses pinos para GPIO ou USB?
Basj
1

Com base na descrição de sua necessidade e na visita à página do projeto, uma alternativa seria fazer com que o seu RPi inicializasse em um pendrive e use o leitor de cartão interno para aceitar cartões do usuário.

Bruno Bronosky
fonte
Obrigado pela sua resposta. Pode ser uma ideia, precisamos pensar nisso. A inserção / remoção do cartão microSD pode ser muito pequena / difícil para o uso diário. Para o meu projeto, preciso que seja tão útil quanto inserir / remover um cartão SD de uma câmera digital. Vou pensar nisso ... PS: você poderia adicionar um link sobre "como inicializar um pendrive" em um RPi na sua resposta, para referência futura?
Basj 12/07