Cómo conectar correctamente una tarjeta MicroSD a un dispositivo FPGA

Quiero preguntar cómo conectar correctamente una tarjeta MicroSD a un dispositivo FPGA (no a la versión spi), tenga en cuenta que todos los pines FPGA estarán flotando durante un tiempo antes de que se configure FPGA. He encontrado muchas configuraciones diferentes con MCU, como la versión SPI, todos los pines con pull up, algunos pines con pull down, resistencias en algunas líneas, etc. muchas son para SD y no para MicroSD (no sé si esto asunto).

¿Alguien puede decirme un cableado que funcione y sea compatible con todas las MicroSD? (Posiblemente probado)

Puede consultar los esquemas de las placas de desarrollo o creación de prototipos de FPGA existentes. También se les llama diseños de referencia, porque los desarrollos pueden tener una idea de cómo resolver la integración de FPGA y cómo realizar la conectividad.
Lo intenté, pero solo encontré un adaptador de tarjeta SD para FPGA o MicroSD con interfaz SPI.
Para muchos FPGA, el estado de pin predeterminado es Entrada con pull-up débil. Acceder a un sistema de archivos en una tarjeta SD sería un poco complicado de desarrollar, y es más fácil y económico (el tiempo es dinero) simplemente usar un chip de interfaz para la tarjeta (micro)SD. La única diferencia entre microSD y SD es mecánica: son eléctricamente iguales.
Las especificaciones de la tarjeta SD se pueden encontrar aquí sdcard.org/downloads/pls

Respuestas (2)

Durante las operaciones normales, CLK siempre se controla, mientras que CMD y DATA son bidireccionales. CMD debe levantarse ya que los marcos comienzan con un bit de inicio bajo y terminan con un bit de parada alto.

DATA[0] se usa como una señal de ocupado y también se debe poner alto.

Las otras líneas de datos DATA[1:3] podrían dejarse desconectadas, pero es mejor cuando las E/S CMOS no se dejan en el estado "medio" de alta impedancia. Se debe usar un pullup o un keeper débil, los que están dentro de la FPGA pueden ser suficientes.

Siempre que el reloj no oscile mucho durante el encendido, se puede dejar como está. Hay una larga secuencia de inicialización que necesita muchos ciclos de reloj (a 400kHz...) de todos modos.

Los pull-ups en FPGA generalmente no están destinados a polarizar componentes externos, solo los pines propios de FPGA. Así que una resistencia externa es mejor.

Las resistencias en serie (por ejemplo, 50 ohmios) permiten reducir los sobreimpulsos y fallas. Es particularmente útil para el reloj. También puede configurar una corriente de salida baja para los pines FPGA (pero degradará el retraso Tdo).

Finalmente, los adaptadores SD a microSD son completamente pasivos (como los adaptadores PCMCIA a CompactFlash...)

Hay algunas explicaciones en este antiguo documento de SanDisk: http://cdn.sparkfun.com/datasheets/Components/General/SDSpec.pdf

Echa un vistazo al siguiente artículo ECLAMP2410P que es un dispositivo de protección destinado a tarjetas microSD con pull-ups incluidos.

Hay pull-ups en DAT[0..3] y CMD pero no en CLK.