Вы находитесь на странице: 1из 4

Como identificar conexiones de EMMC cuando no tenemos circuito ni indicaciones

En principio sabemos que el bus de una EMMC normalmente consiste en 8 bits de datos, un clock
“CLK” y un comando “CMD” que suelen ser visualmente identificables porque en la mayoría de los
casos tienen resistencias en serie entre la memoria y el microprocesador, agrupadas cerca de la
misma memoria, sabiendo esto podemos tomar las mediciones en estos puntos tentativos.

Resistencias que suelen observarse, en la mayoría de los casos, en los buses de datos y comandos de
una memoria EMMC.

Entonces con el TV funcionando utilizando dos puntas del osciloscopio y configurando este en
modo Roll o Scan “lo que nos interesa es ver las ráfagas de datos, no los datos en sí” podremos
identificar los tiempos en los que están presente la información en cada una de estas líneas.

Siempre tomando mediciones en dos puntos a la vez y en el inicio de la comunicación, o sea en el


momento que enchufamos el TV o cuando lo encendemos en los casos de TVs que comienzan la
comunicación cuando se los enciende (ver Apendice-1).

Con este procedimiento vamos a notar que, las ráfagas en cada uno de los 8 datos parecen ser
idénticas, obviamente que no es la misma información en cada línea de datos, pero esto no es lo
que nos interesa, por lo tanto cuando se está transmitiendo un dato aparece esa nube de datos y
cuando no se transmiten datos solo se ve una línea a 3v3.

Si seguimos explorando con las dos puntas vamos a notar que encontraremos los 8 Lineas iguales
(Datos: D0, D1, D2, D3, D4, D5, D6, y D7) y dos líneas con ráfagas diferentes, estas dos diferentes
son CMD y CLK.

Para identificarlas, tenemos que tener en cuenta que el CLK tiene que estar presente tanto cuando
hay CMD como cuando hay DATOS, incluso puede estar presente el CLK cuando no están ninguna
de las dos pero, nunca a la inversa. “No puede haber CMD o DATOS sin que esté presente el CLK”
(ver oscilogramas).

Por lo tanto el CLK es el que más tiempo está presente, o sea se pueden ver ráfagas más largas.
Por descarte podemos saber cuál es el CMD pero, también podemos notar que este comienza a
mostrar información un tiempo antes que los Datos, prácticamente junto al CLK pero siempre con
ráfagas más cortas que el CLK.

En las imágenes, pueden verse los oscilogramas de dos modelos de TVs, (izquierda y derecha) si bien las
señales son muy diferentes entre sí, respetan los patrones descriptos.

Por último sabiendo cuales son los 8 datos, CMD y CLK, realizamos las conexiones. Como ya
sabemos, puenteando el cristal y conectándolo a GND, alimentando VCC (y VCCQ de ser necesario)
en la memoria, conectamos las líneas que deducimos CMD y CLK, sin conectar el D0 (en algunos
casos no es necesario sacar las resistencias).

Abrimos el programa del RT809H, con la memoria alimentada y mientras tomamos mediciones en
las líneas de datos con el osciloscopio, intentamos leer la memoria, obviamente nos aparecerá el
error de “Read timeout” porque faltaría conectar el D0, pero eso no importa.

Justo en el momento en que la grabadora intenta leer, si damos con el D0, el osciloscopio nos va a
mostrar una ráfaga de datos, ya que solo en el D0 la memoria responde a los comandos enviados
por la grabadora porque esta envía comandos para comunicación por una sola línea y esta es
justamente D0.
En mis primeras pruebas el D0 lo deduje por descarte, o sea probando conectarlos uno a uno
hasta que me permita leer, es importante tener en cuenta que por lo general el D0 suele ser el que
tiene la resistencia con menor número de serigrafía en la placa.

Conexiones de EMMC deducidas en Kenbrown KB32S2000SA

Este método me resultó también en placas con fallas de firmware, esto me llevó a la conclusión de
que incluso cuando existen problemas en el firmware siempre la comunicación con el micro inicia
de la misma manera.

Es importante aclarar algo obvio, si no existe comunicación con la memoria no tiene ningún
sentido grabarla ya que esto no solucionaría nada.
EN RESUMEN:

El clock siempre está presente tanto mientras haya DATO como CMD (si hay ambos obviamente
también está presente) incluso puede estar presente sin haber DATOS o CMD pero no a la
inversa.

La ráfaga del CMD es visualmente muy diferente la de las otras líneas, arranca antes que los
DATOS, prácticamente Junto al CLK y las ráfagas están dispuestas en tiempos diferentes a los 8
datos y son más cortas que las del CLK.

El D0, su ráfaga es igual a los otros 7 DATOS y sus ráfagas también son más cortas que las del
CLK.

Para identificar D0, conectar CLK y CMD a la grabadora realizando todas las conexiones
pertinentes, alimentado la memoria y este es el único dato que transmite, sin tener nada
conectado en él, cuando se intenta leer desde el Software del RT809H.

APENDICE 1

Dependiendo de la configuración de hardware y firmware elegida por el fabricante existen


diferentes topologías, por ejemplo, existen diseños que almacenan, los bootloader ( incluyendo el
u-boot), kerner de Linux e interfaz de usuario todo en la partición “User” de la misma EMMC (sin
usar las particiones boot1 y boot2), otros tienen los bootloader ( incluyendo el u-boot) dentro de
las particiones boo1 y boot2, y lo demás en la partición “User”, otros incluso tienen los botloader
en una “SPI” aparte, en estos TVs puede verse a través de UART que cargan el U-boot incluso sin
tener la NAND o EMMC colocada estos últimos serían los casos en los que la EMMC suele
alimentarse recién cuando se enciende el TV y en este momento comienza la comunicación.

Juan E. Chevasco 11/4/20

Вам также может понравиться