Anatomía y clonación del adaptador USB para tarjeta SD


... o cómo suministrar su proyecto de bricolaje con MIPS o ARM liviano con una tarjeta micro-SD rápida.
Buen día a toda la comunidad respetada. Me gustaría continuar mi historia sobre el dispositivo de caja , es decir, sobre cómo logró conectar una tarjeta micro-SD al puerto USB 2.

La raíz de todo el problema era que el USB 2, y no solo uno, tiene su módulo de procesador, pero lamentablemente, no tiene QSPI (QuadSPI) o una interfaz de tarjeta. ¿Cómo se relaciona este hecho triste con las tarjetas SD? Muy simple, cualquier tarjeta SD en la base física de su conexión tiene una interfaz SPI (SerialPeripheral). El SPI clásico utiliza una línea física para transmitir y recibir datos en serie. Simple y económico, tanto en términos de dinero como de miliamperios. Sin embargo, las desventajas, como saben, son una continuación de las ventajas, y para SPI, se convirtieron principalmente en una tasa de intercambio de datos relativamente baja. Para resolver este problema, se inventó un modo de intercambio de datos de cuatro bits con una tarjeta SD, que es un pariente cercano del protocolo QSPI. Cuando se usa este modo, el controlador del host y la tarjeta primero acuerdan los parámetros de intercambio en modo de un solo bit, y luego cambian al modo de cuatro bits cuando usan no una línea para recibir y transmitir, sino cuatro para todo (más uno más para indicar el comando).

¿Qué hacer si el equipo no admite directamente el protocolo de cuatro bits, pero aún necesita un intercambio rápido? La respuesta obvia es proporcionar al proyecto un puente de "interfaz rápida": una "tarjeta SD de cuatro bits".

Para resolver este problema, se compraron un par de adaptadores USB-SD y se los sometió a preparación (no se utilizó vivisección, no somos monstruos). Antes de calentar el soldador y el secador de pelo, se realizó una comprobación muy importante para ver si el módulo del procesador Debian ve el silbato del adaptador que se le ofrece. La prueba fue un gran éxito, bienvenido a la sala de operaciones. El silbato comprado se ve así:


Y así:


Después de desarmar la caja, se hizo posible distinguir la placa de circuito impreso (desde todos sus dos lados).



El circuito es simple, su base es el IC GL823F: un microcontrolador con un sistema de comando 8051 y con una memoria de máscara, equipado con una unidad de interfaz de hardware USB 2, aparentemente no de muy alta calidad (por eso digo esto: no veo la resistencia de polarización exacta de la parte analógica y el oscilador de cristal , lo que significa restaurar la frecuencia de la señal recibida basada en el generador interno calibrado). Funcionará, pero no HiFi, no. Todo lo demás es un kit de cuerpo mínimo: condensadores de bloqueo, resistencias pull-up y limitadores de corriente, LED y conectores, todo eso es ingeniería.

Eliminamos los componentes con un secador de pelo y examinamos la placa de circuito impreso. En muchos sentidos, el tablero es de doble cara con agujeros de chapado. Después de un breve examen de la placa en un microscopio, el bosquejo del diagrama de conexión y la comparación con la hoja de datos en los circuitos integrados relacionados con GL, restauramos el diagrama del circuito.



Y aquí estamos comenzando a ver una pequeña molestia. Que exactamente Nuestra caja está alimentada por un voltaje garantizado de 3.3V, y el circuito en el GL823 requiere 5 voltios. Bueno, según sea necesario, está muy acostumbrada, porque es mucho lo que USB le da. Micro SD en sí funciona con 3.3V, por lo que el estabilizador LDO incorporado se agrega al GL823. De ahí la pregunta, y si el circuito está alimentado desde 3.3V, ¿puede funcionar? Si LDO logra no dejar caer demasiado voltaje, puede, pero no todos los LDO son igualmente útiles. La hoja de datos da una pequeña pista: la salida que alimenta la tarjeta SD se llama PMOS. Esta abreviatura no puede sino alegrarse: se puede suponer que se utiliza el esquema HighSide PMOS, en el que la caída de voltaje a través del elemento de control puede ser muy pequeña. Sin embargo, todo esto es razonamiento, y el único argumento decisivo es la experiencia, él es el hijo de errores difíciles.

Entonces, ¿qué tipo de experiencia ofreceremos? Intentemos alimentar el IC con dos voltajes conmutados: de USB de 5 V o de 3.3 V, obtenidos por un estabilizador separado. Ahora tenemos suficiente conocimiento para dibujar un diagrama esquemático.


La numeración de componentes en el circuito es algo extraña por la razón de que se ordenó un pedido múltiple con varios circuitos de prueba más al fabricante de las placas de circuito impreso, y todos ellos tuvieron la numeración de los componentes. Mientras preparaba el artículo, traje el diagrama del circuito de acuerdo con la fotografía, y resultó lo que sucedió.

¿Qué vemos en el diagrama? Claramente, el núcleo es GL823F. El conector micro-SD obviamente está conectado a él. Lo único que debe tenerse en cuenta: el pin 9 en el conector es el contacto deslizante de la tarjeta en la ranura, cuando la tarjeta está en su lugar, está en cortocircuito a tierra. C7-C10 - condensadores de bloqueo en los circuitos de alimentación. Si desea aumentar ligeramente la inmunidad al ruido, entonces los pines 2 y 16 DD1 se pueden conectar a través de un estrangulador de ferrita. R4 limita la corriente a través de HL1, R5 tira de la línea GPIO a una en ausencia de una tarjeta en la ranura. DA2, C11 y C12 forman un regulador de voltaje lineal de 3.3V.

Dado que en ese momento cuando se dibujaba el circuito, por un lado, no estaba claro cuánto consumiría, y por otro había una experiencia desagradable al usar algunas unidades flash USB (no señalaría con un dedo) que consumían 400 mA al grabar, se decidió agregar R6. En general, esta es una técnica estándar: con un consumo notable de LDO lineal en el circuito (las palabras clave aquí son LowDropout), coloque una resistencia de baja resistencia con mayor potencia en la entrada y disipe parte del calor en ella, y no en el estabilizador. Sin embargo, la experiencia ha demostrado que no hay necesidad de R6, y aún lo verá en la foto de la pizarra.

XS4 está diseñado para realizar un experimento: cambiar la potencia DD1 entre 5 y 3,3 voltios. XS2 es un conector USBB estándar para que pueda colocarlo frente a usted y no subir a los puertos USB libres debajo de la mesa a la PC.

Esto es lo que sucedió después del rastreo, fabricación de software e instalación:



Como puede ver, el lado inferior del tablero es completamente sencillo, y el lado superior no es mucho más complicado.

No voy a retrasar el final de la trama, diré de inmediato que la experiencia ha demostrado que es posible alimentar el GL823F desde una fuente de 3.3 V, cambiar XS4 no afecta nada excepto el consumo de energía (no actual)

Para asegurarnos de que la placa fabricada funciona correctamente, medimos la velocidad de grabación y la corriente consumida en este caso para tres tarjetas micro SD diferentes. Foto concursantes - en el estudio!


La evaluación del consumo de corriente (midiendo lo que se ha hecho, mi lengua no se puede llamar) se llevó a cabo utilizando un medidor combinado de la cantidad de corriente-voltaje-cantidad de carga de la batería. Hablando francamente, resultó ser una sorpresa que él también transmita datos USB.


Utilizamos solo la indicación de la corriente consumida, el precio de división de esto, por así decirlo, el instrumento es 0.01A, más al menos un error de muestreo de 1 unidad del dígito menos significativo sigue siendo 0.01A. Por lo tanto, la tabla muestra solo los rangos de indicaciones, entre los cuales saltó la cifra de la corriente consumida. Sin embargo, espero que para aquellos que estén interesados ​​en aplicar GL823 en sus decisiones, aún sea posible evaluar la barra de consumo superior.

Además de probar la placa realizada, para aumentar la objetividad, se realizaron un par de mediciones de control utilizando otro lector de tarjetas SD. Aquí hay uno:


Esta muestra no estaba preparada, la tomé prestada de mi hija durante 5 minutos, y si la hubiera destripado, me habrían destripado de inmediato. Una cosa es segura: el chip que contiene no pertenece a la familia GL823, cuyos miembros pueden trabajar tanto con el estándar SD, un multi-estándar es demasiado difícil para ellos.

Las velocidades de lectura y escritura se midieron de la manera más simple: el mismo archivo con un tamaño de 1,058,268 kB fue escrito y leído desde la tarjeta de prueba. El experimento de control (en otro lector) se llevó a cabo solo para excluir los errores del sistema por uno u otro orden decimal, los datos no se procesaron, solo me convencí de que aproximadamente los tiempos y las corrientes de consumo superaron a los obtenidos en la etapa anterior.


Si desea aplicar el circuito descrito en su proyecto, entonces, al estimar el consumo, corrija el hecho de que la corriente de suministro proviene de un voltaje USB de 5 voltios, pero el GL823 se alimentó con un voltaje de 3.3 V, y la diferencia es 5-3.3 = 1.7 (y esto es 50 % de 3.3) se perdió en DA2. Cuando se alimenta desde una fuente centralizada (y, espero, pulsada) de 3.3 voltios, obtenemos ahorros decentes.

Source: https://habr.com/ru/post/es403199/


All Articles