SDHC sobre SPI: Lectura de registro OCR 0x000000FF, nBusy bit 0 incluso después de que IN_IDLE_STATE se borra a cero

1

¿Alguien más ha explicado este problema antes?

Estoy usando un STM32F105VC, puerto SPI 1 a una velocidad de ~ 100kHz, ~ 200kHz y ~ 800kHz. He intentado usar una Sandisk microSDHC de 16 GB y una MicroSDSC de Transcend de 2 GB que proporcionan los mismos resultados.

Tengo el bit de Soporte de Capacidad de Host (HCS) establecido cuando envío ACMD41, que se repite hasta que el bit de estado inactivo en la respuesta R1 ya no se establece (generalmente después de 3 repeticiones; ¿parece demasiado rápido?).

He intentado con el SS alternar entre cada transacción Tx / Rx y con mantenerlo bajo durante todo el procedimiento de inicio, no hizo ninguna diferencia. Cosas de bits como 0 o 1 no hicieron ninguna diferencia. El envío de alrededor de 1 ACMD41 antes de comprobar el OCR no hizo ninguna diferencia.

Si crees que puedes ayudarme, dame un grito para obtener más información sobre mi configuración. O si puede pensar en algún error obvio que pueda haber cometido, ¡todo sería muy apreciado!

    
pregunta Chris Paine

2 respuestas

0

Disculpas, obtuve una visión de túnel en este error. El problema era en realidad un error tipográfico en el código; enviar CMD8 en lugar de CMD58 (ambos devuelven respuestas de 5 bytes). ¡Espero que esto no le pase a nadie más, pero voy a dejar esto aquí por si acaso!

    
respondido por el Chris Paine
0

El comando que lee el OCR de la tarjeta SD es CMD58, no lo menciona en su pregunta.

El comando Leer OCR da una respuesta R3 de 32 bits, y antes de esta tarjeta de respuesta da el estado R1. De las cosas que dices solo puedo adivinar eso

  

Lectura de registro OCR 0x000000FF

el valor que menciona incluye el código de respuesta R1, por lo que el OCR que está leyendo es en realidad 00_00_ff_xx, donde XX - para leer después de ff, es 0, o probablemente 80.

Verifique su código para manejar adecuadamente los comandos de respuesta tipo R3.

    
respondido por el Anonymous

Lea otras preguntas en las etiquetas