¿El restablecimiento completo de la tarjeta SD se interconectó con FPGA?

2

Por lo tanto, he podido conectar con éxito una tarjeta SD de Sandisk con Spartan 3 FPGA (usando verilog). La tarjeta después del encendido se inicializa correctamente y puede leer y escribir datos del sector correctamente. El único problema que queda es que después del encendido, si presiono el botón de reinicio, la tarjeta se bloquea y deja de funcionar. Tampoco he podido averiguar qué significa un restablecimiento completo para la tarjeta SD. ¿Debería reinicializarse de alguna manera? ¿Qué comando debo enviar a la tarjeta para eso? Cualquier ayuda es apreciada.

    
pregunta Candy

2 respuestas

1

Tendrá que simular el código de Verilog o usar el analizador para ver las cosas que están sucediendo en el sistema en vivo.

En mi opinión, solo hay dos circunstancias en que la tarjeta SD aparece "colgada":

  • mala implementación de la especificación, cuando la tarjeta no entiende lo que está pasando o no puede comprender que se debe cancelar el comando anterior. Sin embargo, la tarjeta debe, de todos modos, decirle algo distinto al 1 durante la ejecución de estos comandos; por ejemplo, durante la lectura de bloque múltiple, se transmite CRC, que contendrá ceros, durante el host de escritura de bloque múltiple debe transmitir CRC. 0s. Su tarea aquí es verificar el conjunto de comandos de la tarjeta SD que usa su controlador y ajustar la secuencia de inicialización (número de ciclos de reloj de repuesto antes de proceder a CMD0) en consecuencia;

  • su máquina de estado FPGA falla después de presionar restablecer. Por ejemplo, el reloj deja de funcionar en el pin de entrada del reloj de la tarjeta SD, MOSI se atasca, etc. Esto es lo más sospechoso de las tarjetas colgadas, ya que la tarjeta SD no generará nada si el reloj no se alterna, o no hay activación de CS y no es útil información sobre la línea MOSI.

respondido por el Anonymous
0

Una vez que la tarjeta SD esté encendida e inicializada, pero luego reinicia su FPGA, es probable que el código comience la nueva inicialización de la tarjeta ya inicializada. La interfaz SD no tiene ninguna línea de reinicio especial. El único reinicio difícil en SD es el reinicio de encendido, por lo que la mejor manera de poner una tarjeta SD en el estado preinicializado es apagar y encender la alimentación.

    
respondido por el Ale..chenski

Lea otras preguntas en las etiquetas