es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿El controlador de host SD ATFSDC010 puede comunicarse con eMMC?

Estoy tratando de leer datos de eMMC con el controlador de host SD.

Controlador de host SD: ATFSDC010
eMMC: KLM8G1GESD-B04P
Lector de eMMC: LECTOR DE MÓDULO EMMC PARA ODROID

En primer lugar, he inicializado el eMMC como estado de transferencia (CMD0 -> CMD1 -> CMD2 -> CMD3 -> CMD7)

En segundo lugar, he enviado CMD18 (LECTURA DE BLOQUE MÚLTIPLE)

Si envío CMD18, el controlador de host SD comienza a alternar el reloj y leer datos del eMMC con el flanco de subida (el FIFO del controlador de host SD es solo de 64 bytes, por lo que detiene la alternancia del reloj después de leer 64 bytes).

Cuando leo los primeros 64 bytes del primer FIFO, no están corruptos.

si la FIFO se vacía, el controlador de host SD vuelve a alternar el reloj para leer 64 bytes

cuando leo los 64 bytes del segundo FIFO, solo el primer bit de datos siempre está invertido (por ejemplo, 0x4a -> 0xca) y el tercer FIFO, cuarto FIFO … es lo mismo.

A continuación se muestra la señal de lectura del primer FIFO (los datos son 0x4a)

A continuación se muestra la señal de lectura del cuarto FIFO (los datos deben ser 0x7a pero 0xfa).
Es extraño que haya recibido 0xfa, pero la señal es 0xf4 o 0xea.

Creo que el tiempo de lectura de SD y eMMC es diferente.

A continuación se muestra el tiempo de lectura de (1) tarjeta SD, (2) eMMC.

¿Estoy en lo cierto? Si entendí mal, por favor, avíseme.

Sigo siendo un principiante. Les pido su comprensión.

Tags:  ,

Answer

  1. Avatar for davy.ai

    Leer datos eMMC con el controlador del host SD

    Como experto en TI especializado en tarjetas SD y SDMMC, si intenta leer datos eMMC con un controlador de host SD, deberá seguir ciertos pasos. Primero, debe inicializar el eMMC como estado de transferencia enviando CMD0, CMD1, CMD2, CMD3 y CMD7. Una vez que haya hecho eso, puede enviar CMD18 para leer varios bloques.

    Cuando envía CMD18, el controlador de host SD comenzará a cambiar el reloj y leer datos del eMMC con un flanco de subida. Sin embargo, el FIFO del controlador de host SD solo tiene 64 bytes, por lo que deja de cambiar el reloj después de leer 64 bytes. Una vez que haya leído 64 bytes del primer FIFO, notará que no está corrupto.

    Sin embargo, cuando el FIFO queda vacío, el controlador de host SD reiniciará el cambio del reloj para leer otros 64 bytes. Cuando lee 64 bytes del segundo FIFO, solo el primer bit de datos siempre está invertido (por ejemplo: 0x4a -> 0xca), y este patrón continúa para el tercero, cuarto, y así sucesivamente.

    Puede pensar que el timing de lectura de las tarjetas SD y eMMC es diferente debido a esto. El timing de lectura para SD y eMMC es de hecho diferente, y esta puede ser la razón por la que está experimentando este problema. Puede consultar los diagramas de tiempo mostrados en las imágenes anteriores para comprender mejor las diferencias en el timing para tarjetas SD y eMMC.

    Para un principiante, es esencial buscar orientación y pedir comprensión y ayuda siempre que sea necesario.

Comments are closed.