¿Cómo puedo conectar este lector de tarjetas SD a RaspberryPi?

11

Tengo que añadir un segundo lector de tarjetas SD a mi Raspberry Pi para el proyecto www.samplerbox.org (RPI se integrará en una caja, por lo que necesito un usuario lector DT-tarjeta).

Esto es lo que me gustaría usar:

ingrese la descripción de la imagen aquí

¿Cómo conectar esto a RaspberryPi? Vía GPIO? (si es así, ¿cómo?) ¿A través del puerto USB? (Si es así, ¿cómo conectar estos pines a un enchufe USB estándar?)

ACTUALIZACIÓN : Aquí están los pines 2 * 8 GND, 3V3, 5V, CS, MOSI, SCK, MISO, GND::

ingrese la descripción de la imagen aquí

Basj
fuente
¿Planea arrancar desde la tarjeta SD externa? O es el Pi para arrancar desde la tarjeta SD interna. ¿Para qué se utilizará la tarjeta SD externa?
joan
@joan No, no planeo arrancarlo, la tarjeta SD externa estará allí para permitir al usuario cargar / guardar algunos datos. El usuario no accederá a la tarjeta SD interna (RPi incrustado en una caja). Más fácil de entender con una imagen: www.samplerbox.org
Basj
1
Puede ahorrarse muchos problemas si solo le da al usuario una memoria USB para datos. Implementar una segunda interfaz de tarjeta SD será muy difícil. Simplemente traiga un puerto USB al exterior de su caja.
Joan
1
Además, puede usar un adaptador SDCard a USB, que es una compensación entre ambos. Solo google SDCard USB adapter.
user236012
44
Si bien estoy de acuerdo en que puede ser más fácil usar una memoria USB, no debería ser difícil conectar una tarjeta SD. Todos los SD son compatibles SPIy funcionan con 3.3V (muchas de estas placas tienen convertidores de nivel para conectarse a 5V). He usado un adaptador similar en Arduino, y voy a probar Pi. Hay software FAT para Arduino. (NOTA: no espero acceder a través de los controladores de kernel estándar).
Milliways

Respuestas:

6

Parece que es un dispositivo SPI. Primero debe habilitar SPI usando raspi-config. Entonces necesitarás cablear:

(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
fuente
2
¿Alguna idea sobre cómo tener una mejor velocidad de transferencia que 1 megabyte / seg con esta técnica? ¿Hay otra forma que el lector USB SD que permita 10 MB / seg?
Basj
las altas velocidades son aproximadamente más de una línea para los datos de una tarjeta SD, parece que no los tiene aquí, y no es una configuración de cableado simple a través de la interfaz SPI
Alexey Vesnin
6

Pinout de frambuesa pi

Debe conectar GND, 5V y 3V3 a los pines apropiados en el pi. Luego MOSI y MISO también están marcados en la imagen, SCK debe conectarse a SCLK (este es el reloj de 10MHz que debe ser controlado por el pi) y finalmente conectar el pin CS a CS0 (Chip-Select, para que pueda conectar 2 SD o otros dispositivos compatibles con SPI).

De acuerdo con la primera respuesta en este hilo , si está ejecutando una versión de kernel superior a 3.2.20, debería admitir el hardware SPI en la placa y debería proporcionarle un rendimiento de 1 MB / s con poca carga de CPU, lo cual es impresionante.

Si su núcleo es de una versión superior pero está compilado sin compatibilidad con dispositivos SPI, debe volver a compilarlo con una configuración adecuada (consulte el hilo mencionado nuevamente).

Yigal
fuente
2
Gracias por esta respuesta! Pero 1 MB / s es demasiado bajo (en comparación con un lector USB), y para mi proyecto, necesito cargar 100 MB en muy poco tiempo (esto es posible desde el lector microSD RPi, posible desde un lector de tarjetas SD USB, así que Necesito lo mismo de este lector de PCB SD)
Basj
No verá una tasa más rápida con este lector SD y la combinación pi. 1 MB / s se logra utilizando el hardware especializado de interfaz SPI en el pi. Si usa cualquier otro conector GPIO, deberá implementarlo con la CPU, logrando velocidades mucho más bajas, alrededor de 180 KB / s. Si necesita tasas más rápidas, use un lector USB como lo sugirieron otros, lo que, según recuerdo, me dio alrededor de 4 MB / s, pero tal vez otros puedan dar números más precisos.
Yigal
1
Arghh ... Tan triste que no podemos obtener más de 1 MB / s con este lector. ¿Es posible convertir este lector en un lector USB SD (con componentes additionnal?)
Basj
1
Puede obtener un módulo que maneje SPI (y otros protocolos) a USB como el suyo por aproximadamente $ 20: digikey.co.il/product-search/en?v=768&mpart=VA800A-SPI Pero no iría de esa manera. No leí la especificación, así que no sé si el módulo se identifica como clase de almacenamiento masivo, o alguna otra clase de USB más genérica, en cuyo caso deberá envolverlo con su propio controlador. Será MUCHO más fácil obtener un simple lector de tarjetas SD USB.
Yigal
1
Claro, pero necesito un lector de tarjetas SD USB que pueda montarse en PCB (no solo para mí, sino que mi proyecto samplerbox.org será de código abierto, por lo que quiero que sea fácil para cualquiera obtener los componentes)
Basj
1

Sin saber mucho sobre el lector de tarjetas, daré la mejor respuesta que pueda.

El lector parece tener marcas junto a los pines GPIO. Conéctelos a los pines correspondientes en el RPI usando algunos cables de puente hembra-hembra (o un método más permanente para su aplicación). Si no tienen un pin correspondiente, conéctelos a un pin libre en el pi y tome nota de ello.

La API para el lector puede necesitar alguna configuración adicional para permitir la transferencia de archivos a través de los otros pines, pero no puedo ayudarlo con esta parte.

¡Ojalá esto funcione!

angussidney
fuente
Agregué las etiquetas de los pines y la foto en la pregunta. ¿Es posible pasar de estos pines a GPIO o USB?
Basj
1

Según su descripción de su necesidad y visitando la página de su proyecto, una alternativa sería hacer que su RPi arranque desde una memoria USB y usar el lector de tarjetas interno para aceptar tarjetas del usuario.

Bruno Bronosky
fuente
Gracias por su respuesta. Podría ser una idea, tenemos que pensarlo. Insertar / extraer la tarjeta microSD puede ser demasiado pequeño / difícil para un uso diario. Para mi proyecto, necesito que sea tan útil como insertar / quitar una tarjeta SD de una cámara digital. Lo pensaré ... PD: ¿podría agregar un enlace sobre "cómo arrancar una memoria USB" en un RPi en su respuesta, para referencia futura?
Basj