¿Cuál es la relación entre ACMD23 y CMD23 en las tarjetas SD?

0

La especificación simplificada de la capa física SD (se puede encontrar en

Sin embargo, según la especificación, el ACMD23 DEBE enviarse justo antes de CMD25 (WRITE_MULTIPLE_BLOCK). Y un CMD23 solo es efectivo para el siguiente lectura de bloque múltiple o el siguiente comando de escritura de bloque múltiple. Hace eso ¿Significa que no pueden ser usados juntos? Además, se RECOMIENDA para la host para usar ACMD23 antes de CMD25, pero la especificación no dice nada cómo se aplica esto cuando CMD23 está involucrado.

Parece que ACMD23 y CMD23 tienen diferentes propósitos, pero no deben ser utilizados juntos. La especificación dice que si no hay suficientes datos es recibida por la tarjeta durante una escritura de bloque múltiple, sin importar si la cantidad de datos a escribir es sugerida por un ACMD23 o CMD23, entonces el área no escrita PUEDE contener datos no definidos. Eso parece significar que un CMD23 antes de una escritura de bloque múltiple implica un ACMD23. Pero lo hice no se encuentra nada en la especificación que diga que las tarjetas DEBERÍAN pre-borrar el los bloques se escribirán en el caso de CMD23 como si se hubiera recibido un ACMD23. Y no encontré nada hablando de la relación entre ACMD23 y CMD23.

La Sección 4.3.4 dice esto acerca del ACMD23:

  

La configuración de una cantidad de bloques de escritura para ser borrados previamente (ACMD23) hará que   siguiendo la operación de escritura de bloque múltiple más rápido en comparación con el mismo   Funcionamiento sin ACMD23 precedente. El host utilizará este comando para   define la cantidad de bloques de escritura que se van a enviar en el   siguiente operación de escritura. Si el host terminará la operación de escritura.   (Utilizando la transmisión de parada) antes de que todos los bloques de datos [se envíen] al   El contenido de los bloques de escritura restantes no está definido (puede ser   borrado o aún tiene los datos antiguos). Si el anfitrión va a enviar más   Número de bloques de escritura que los definidos en ACMD23 que la tarjeta borrará   Bloque uno por uno (a medida que se reciben nuevos datos). Este número se restablecerá   al valor predeterminado (= 1) después de la operación de escritura en múltiples bloques.

     

Se recomienda usar este comando antes de CMD25, algunas de las   Las tarjetas serán más rápidas para la operación de Bloques de escritura múltiple. Tenga en cuenta que   el host debe enviar ACMD23 justo antes del comando WRITE si el host   Quiere utilizar la función de pre-borrado. Si no, el recuento de pre-borrado puede ser   se borra automáticamente cuando otro comando [sic] (por ejemplo: Seguridad   Los comandos de aplicación) se ejecutan.

Y la sección 4.15 dice esto sobre CMD23:

  

CMD23 se acepta en estado de transferencia y es efectivo para el   comando de lectura / escritura de múltiples bloques (CMD18 o CMD25) justo detrás de CMD23.   Si otro comando sigue a CMD23, se cancela el conteo de bloque establecido   (incluyendo CMD13). Si se produce un error de CRC de comando, la tarjeta no   devuelve la respuesta R1 para CMD23. En este caso, Set block count no es   Válido y se requiere reintento de CMD23. Si se emiten múltiples CMD23,   el último es válido.

     

Si se aborta un CMD25 y la cantidad de datos transferidos es menor que   la cantidad de datos indicada por el CMD23 anterior, luego el área   especificado por CMD23 que no está escrito puede contener datos no definidos. Si   La cantidad de datos transferidos es mayor que la cantidad de datos   indicado por el CMD23 anterior, entonces los datos adicionales no se escriben.

Mis preguntas son:

  • ¿Un CMD23 implica un ACMD23?

  • ¿ACMD23 y CMD23 tienen las mismas implicaciones de rendimiento?

  • ¿Se pueden usar ACMD23 y CMD23 juntos?

  • Si no, ¿cuál debería usarse con las tarjetas que admiten ambos?

  • Si se usa CMD23 antes que CMD18 o CMD25, si el host envía CMD12 incluso si se ha transferido la cantidad correcta de datos?

  • ¿Dónde se especifican todos estos?

pregunta kbrgrty3

0 respuestas

Lea otras preguntas en las etiquetas