Problemas de lectura / escritura de la tarjeta SD en modo SPI

5

Estoy trabajando en un controlador NEC v850ES / JH3 para probar un controlador de tarjeta SD en modo SPI. Conectamos la ranura de la tarjeta SD directamente al controlador v850ES / JH3 sin ninguna resistencia de arranque . ¿Tiene algún efecto negativo?

  1. Puedo inicializar la tarjeta SD en modo SPI. También recibo una respuesta 0x00 para CMD16.

  2. Después de la inicialización de la tarjeta SD, estoy cambiando la frecuencia del reloj a 4 MHz.

  3. Estoy comprobando si la tarjeta SD está ocupada o no (si la respuesta es 0xFF, entonces la tarjeta SD no está ocupada).

  4. Cuando estoy enviando un comando de lectura (CMD17) y datos ficticios, obtengo la respuesta 0xC1, y después de eso, el siguiente byte es 0x3F. Eso significa que el comando de lectura falló.

  5. Si no enviamos datos ficticios después del comando de lectura, obtengo la respuesta 0x04, lo que significa un comando ilegal. En este caso también, la lectura está fallando.

  6. Si no verificamos que la tarjeta SD esté ocupada o no, obtengo la respuesta 0x00 para el comando de lectura, lo que significa que se aceptó el comando de lectura. Y también recibo el token de inicio (0xFE), lo que significa que la tarjeta SD enviará un bloque de datos. Si leo 512 bytes de datos de bloque, obtengo todos ceros. Estoy tratando de leer el registro de arranque. Eso significa que hay algunos datos que no sean ceros.

  7. También tengo el mismo problema con la escritura de bloque de tarjeta SD.

¿Cuál es el problema y cómo puedo solucionarlo?

    
pregunta Peter Mortensen

1 respuesta

2

El "checkbusy" debe enviar 0xFF a la tarjeta SD (no queda claro en su pregunta). ¿Es este SD o SDHC? Estos últimos tienen algunas diferencias en las secuencias de inicialización y operación.

  

Si no enviamos datos ficticios después de leer ...

En SPI, debe enviar datos para poder leer desde el cliente. Recuerda que el maestro siempre maneja la línea del reloj. Los datos ficticios que envío cuando leo tarjetas SD también son 0xFF.

Los 512 bytes cero pueden ser datos reales del dispositivo. ¿Está seguro de que envió los bytes de dirección en el orden correcto? Las Especificaciones simplificadas de SD están disponibles en Asociación SD .

    
respondido por el Turbo J

Lea otras preguntas en las etiquetas