¿Es posible usar el modo de 4 pines para una tarjeta SD con un microcontrolador en lugar del modo SPI?

7

¿Es posible utilizar el modo de 4 pines de una tarjeta SD al diseñar una interfaz con un microcontrolador, o debe usar siempre el modo SPI? Estoy pensando particularmente en un microcontrolador como un PIC24. El modo SPI es más lento, obviamente, y estoy tratando de encontrar mejores maneras de mejorar el rendimiento del dispositivo.

    
pregunta James

2 respuestas

6

Eso es lo que he encontrado:

  

El protocolo SD de 1 bit es un síncrono   protocolo serie con una línea de datos,   utilizado para transferencias de datos a granel, uno   línea de reloj para sincronización, y   Una línea de comando, utilizada para enviar   marcos de comando. El protocolo SD de 1 bit.   explícitamente soporta compartir bus. UNA   arbitraje simple de un solo maestro   esquema permite múltiples tarjetas SD para   Comparte un solo reloj y línea DAT0.   El protocolo SD de 4 bits es casi   Idéntico al protocolo SD de 1 bit.   La diferencia principal es el ancho del bus.   transferencias de datos a granel se producen a través de un 4 bits   Bus paralelo en lugar de un solo cable.   Con un diseño adecuado, este tiene la   potencial para cuadruplicar el rendimiento   para transferencias de datos a granel. Tanto la sd   Protocolos de 1 bit y 4 bit por defecto   Requiere protección CRC de datos a granel   traslados Un CRC, o redundancia cíclica   Check, es un método simple para   Detectando la presencia de simples.   Errores de inversión de bits en una transmisión   bloque de datos. En modo SD de 4 bits, la   los datos de entrada se multiplexan sobre el   Cuatro líneas de bus (DAT) y el de 16 bits.   CRC se calcula independientemente para   cada una de las cuatro líneas. En una   implementación de todo el software,   calculando el CRC bajo estos   Las condiciones pueden ser tan complejas que la   la sobrecarga computacional puede mitigar   Los beneficios del bus de 4 bits más ancho. UNA   El CRC paralelo de 4 bits es trivial para   implementar en hardware, sin embargo, por lo que   ASIC personalizado o lógica programable   las soluciones son más propensas a ser benet   desde el bus más ancho.

enlace

Creo que no tendrías suficiente poder para calcular crc32 en modo de 4 bits. Pero sin CRC podría ser posible.

    
respondido por el BarsMonster
6

mejora el rendimiento en modo de 1 bit

Existe una gran variación en el rendimiento de la tarjeta SD a otra.

(a) Todas las tarjetas dan una respuesta "ocupada" a un comando hasta que esté listo para manejar el siguiente. Una tarjeta aún puede cumplir con los estándares incluso si toma un segundo escribir un bloque de datos. Tal vez podría probar algunas tarjetas diferentes y ver cuál funciona mejor para usted: el mejor rendimiento neto, la latencia más baja, la menor cantidad de energía para despertarse y almacenar los datos y volver a dormir, o lo que sea más Importante para tu proyecto. Si el rendimiento es lo más importante, querrá elegir el adecuado Clasificación de clase de velocidad de la tarjeta SD : la velocidad más alta que puede pagar, o al menos la clase más baja que ofrece el rendimiento adecuado .

(b) Si bien el estándar requiere que todas las tarjetas SD manejen las comunicaciones a hasta 25 Mbit / s en modo de 1 bit, parece que algunas tarjetas funcionan con mucho más alto tasas de bits : tal vez pueda probar algunas tarjetas diferentes y aumentar su velocidad de bits a algo más rápido que funcione con esa tarjeta en particular. (¿Hay algo como "detección automática de velocidad en baudios" para usar automáticamente la velocidad máxima admitida por cualquier tarjeta que esté actualmente conectada?)

usando el modo de 4 pines

Un microcontrolador puede admitir el uso del modo de transferencia SDI de cuatro bits. Las 2 opciones que conozco son:

(a) Conecte la tarjeta a un adaptador de tarjeta SD USB que use el modo de transferencia SDI de cuatro bits. Conecte el adaptador a un conector de host USB conectado a un microcontrolador que pueda actuar como un host USB, como el PIC24FJ32GB002.

(b) Enchufe la tarjeta en una ranura para tarjeta SD conectada directamente a un microcontrolador. ¿Debo pagar regalías a los usuarios de la tarjeta SD si mi dispositivo" simplemente pasa "a ser compatible con las tarjetas SD? Durante mucho tiempo, varias patentes y secretos comerciales requerían que una persona que diseñara dicha interfaz de controlador de host firmara un NDA y adquiriera una licencia de patente de la SD Card Association. Pero escuché que el estándar de la interfaz SD se está volviendo más abierto desde 2006 .

    
respondido por el davidcary

Lea otras preguntas en las etiquetas