Estoy tratando de leer una tarjeta microSD a través de una ranura SD sin marca y una FPGA Basys3. La tarjeta microSD, Kingston microSD HC 8GB Clase 4, se usa a través de un adaptador de tarjeta SD, también Kingston.
Tengo problemas para superar el CMD8 del proceso de inicialización. Después de enviar CMD0 , respondió con 0x01 , lo cual es normal. Después de CMD0 envié el comando CMD8 ; respondió con 0x000000021F . No pude encontrar nada relacionado con este código en ninguna documentación.
Para probar, probé con un SanDisk Ultra SDHC 32GB Class 10 con el mismo código. Se inicializó con éxito.
Otras cosas que he intentado:
-
Enviando relojes de emergencia antes y después del comando con
CSALTO . -
Siempre / No siempre enviando
SCLK.
Por favor ayuda.
Formas de onda
El primero muestra todo el proceso de inicialización. SD_CD es Card Detect (Active Low) y SD_WP es Write Protect (Active Low). SD_CLK se ejecuta a 390 kHz, 256 veces más lento que _cpuClock . Tenga en cuenta que los SD_MISO , SD_CD , SD_WP y _cpuClock se simulan manualmente (es decir, no recibe ninguna señal del módulo SD). Una vez detectada la tarjeta, se espera 1 milisegundo, seguido de 74 SD_CLK 's.
LasegundaimagenesunzoomdeCMD0ysurespuesta.

LaterceraimagenesunacercamientodeCMD8ysurespuesta.

LaimagenfinalesunacercamientodeCMD55ysurespuesta.

Actualización1(Antesde@AnnoymousAnswer)Melasarregléparaponerenmismanosunpardecartasmás.Despuésdelaprueba,parecequesoloSanDiskClass10SDHC(tantoSDcomomicroSD)devuelveunestadofinalizadodeinicialización.ElKingstonClass4SDHCSDdevuelveuntiempodeesperadespuésdeCMD0,mientrasqueelKingstonClass4SDHCmicroSDdevuelveun0x000000021F.Cambiareladaptadornohizoningunadiferenciaentodosloscasos.Enlaimagendeabajo,losexitososestánenverdeylosnoexitososestánenrojo.
Actualización 2 (Respuesta a @Annoymous Answer) Después de cambiar MOSI de posedge a negedge , la tarjeta SD de la Clase 4 de Kingston parece haberse inicializado (lo que anteriormente se había agotado). Sin embargo, la tarjeta microSD Clase 4 de Kingston aún responde con 0x000000021F .
