Reparando el Firmware de nuestro receptor con JTAG

Todos sabemos que los actuales Receptores de Satélite o TDT, son actualizables desde un puerto denominado, RS232 puerto serie. Realizar esta operación es en realidad una operación sencilla, pero a veces, si se nos va la luz en el proceso de carga. El desenlace es la “muerte??? del equipo. Pero gracias al JTAG y con un poco de pericia nosotros mismos, podemos reparar nuestro Set Top Box.
El JTAG reviste simplicidad y complejidad al mismo tiempo. Hasta su aparición en el campo de los receptores STB, es decir, hasta que no se comenzó a utilizar de forma masiva, para reparar los Boots de arranque de los actuales Receptores STB, el JTAG era un perfecto desconocido para todos nosotros. Pero no, como es evidente, dentro del área de trabajo de los ingenieros electrónicos. El dispositivo JTAG es en realidad “un puerto??? por el que puede acceder vía Microprocesador, al contenido de la Eeprom de arranque del sistema. Y una vez allí, podemos escribir, borrar o leer el contenido del mismo. Esto no es un descubrimiento fortuito, sino un estándar para los ingenieros adoptado para poder testear funciones complejas en sus sistemas electrónicos. En realidad para poder “trastear??? dentro del procesador y en la memoria que lleva todo el software para que el microprocesador funcione. Hasta el momento, modificar el contenido de esta eeprom, que normalmente viene como un Device externo, pero muy cercano al procesador, pasaba por desoldar la Flash y grabarla de nuevo en un programador de memorias externo “Tipo Willen???. Pero como tanto las utilidades para ello, como el tiempo necesario para realizar la operación, encarecían sobremanera la operación. Se mostró especial interés en crear un puerto de “urgencia??? para los ya estándares circuitos basados en un procesador multimedia y memoria eeprom, como es el caso de los Set Top Boxes. De esa necesidad nació el JTAG. En una primera etapa creado como un dispositivo caro y no comercial. Hasta que, un buen día un señor apodado Dave2 crea un programa muy interesante capaz de saltarse esas complicaciones antes citada, sólo con la ayuda de un simple circuito conectado al PC.

¿Cuándo interviene el JTAG?
El JTAG es el Hardware más simple y extendido entre todos nosotros en los últimos 2 años, desde que es posible cambiar el Firmware a los Receptores. Cuando éste proceso no se hace bien, entonces el Receptor «muere» y debemos reactivarlo con el JTAG. La mayoría de los procesadores que se montan en las placas base de los Set Top Boxes, poseen un modo de «reparación» a través del puerto JTAG. Esta es una opción que nos permite «cargar o escribir» en la Flash o Eeprom que siempre está sujeta a funcionar con el procesador. Ahí reside el firmware y el Boot-Loader. Es el sistema operativo del Receptor o mejor dicho, del procesador. A través del puerto serie podemos «actualizar» una zona de dicha Eprom a través del propio procesador, pero cuando las cosas se tuercen, es decir, cuando no existe boot-Loader. que es el que permite «arrancar» el STB, entonces tenemos un serio problema.
Existen dos opciones, o sacar «desoldar» la Eeprom y grabarla externamente o grabarla a través del puerto JTAG del Procesador o Placa base, según sea el hardware. Ya que, el Jtag existe en los STB y otros circuitos mas complejos. El puerto JTAG se compone de 20 pines los cuales tienen sus propias funciones. Llamamos también JTAG al pequeño Hardware que nos permite «conectarnos» con este puerto para reparar la Flash, el Boot-Loader o el Procesador.

La interfaz del JTAG, el Software

El JTAG es bien conocido como el programa Jkeys, que no debe ser así, pero esta es la realidad, pues el JTAG es en realidad la Interfaz de trabajo de este formato o dispositivo. Pero en los días que corren, se ha popularizado llamarle JTAG al software Jkeys junto con el WALL y el Hardware JTAG. Todo ello y las posibilidades que se nos brindan, son conocidas como JTAG a secas.
Para que el presente Software funcione debemos tener bien conectado el Hardware JTAG a nuestro Receptor, sino, nunca obtendremos ni siquiera la detección del procesador en el presente Software. Si todo esta bien conectado, el proceso de puesta en marcha del JTAG es la siguiente;

Al abrir el programa Jkeys debería detectarnos el “Device??? Micro de nuestro Set Top Box. A partir de aquí ya estamos preparados para ejecutar la aplicación Wall.exe, el cual nos permite “entrar??? al procesador. Retornamos al Jkeys y seguimos con el proceso de lectura o escritura del contenido de la Eeprom según sean nuestras necesidades. Mostrado así, todo parece un poco complicado de digerir, pero lo cierto es que en Internet existen muchos manuales que muestran paso a paso todo este proceso. El Software indica en todo momento el Trap, el modelo de procesador y la Eeprom detectada entre otras cosas. En este caso también podemos seleccionar la Eeprom desde un listado. Este listado lo podemos rellenar nosotros mismos editando el archivo llamado jkeys.def. Las Eeprom mas empleadas en los Receptores comerciales son los de Intel o Macronix. Por un lado las del tipo 28Fxx y 29LVxx respectivamente. Dentro de las opciones de la Eeprom, el programa nos permite realizar un buen número de tareas muy interesantes, como leer o escribir la Flash de la Eeprom.

Resumiendo todo el proceso
Lejos de ser un manual, el presente articulo es un repaso al JTAG, donde se explica de forma muy sencilla y rápida sus funciones, para que sirve y el cómo funciona. Queda claro que el JTAG es una Interface mucho mas compleja de la que aquí se ha presentado. Pero la importancia de tener una solución menos costosa a los “cuelgues??? de los miles de Receptores, tras una mala actualización del Firmware, ha hecho pensar a mas de uno un poco mas de la cuenta, y gracias ellos, se puede tener lo que se acaba de mostrar. El interés de todos por “actualizar??? sus equipos ha disparado la presencia de estos en los citados talleres de electrónica. La complejidad “en aquel entonces??? para repararlos y la audacia de algunos, ha hecho que sea posible descubrir un modo más elegante de hacerlo uno mismo. El famoso Error 0, Error E, ya es popular entre todos nosotros. Hablar del Boot y del Firmware mal cargado, ya es una frase habitual. Y utilizar el pequeño Hardware mostrado aquí junto con el Jkeys, es ya obligatorio. En menos de un año se ha pasado, y en el mejor de los casos, cuando el receptor quedaba inservible, de los 100 euros que costaba dicha reparación mas los portes, a los 20 euros actuales que cuesta todo el Kit JTAG.

El JTAG, el conector, los pins y el Hardware.
En este bloque os vamos a explicar o mejor dicho, mostrar, cómo es el JTAG, su pines de conexionado, los diferentes modelos de JTAG, done está localizado el conector en la placa base de receptor e incluso el esquemático del mismo.
En la imagen vemos los Pin Out del conector JTAG en este caso de un ARM. Estos valores son estándares.

Existen versiones de 16 y 10 Pines específicos para Microcontroladores Atmel.
Aquí vemos el JTAG tal y como lo conocemos en nuestra jerga habitual. Este es el modelo que podemos adquirir en cualquier tienda de electrónica. Este es el Hardware que nos permitirá conectar nuestro PC al puerto JTAG de nuestro Set Top Box. En las imágenes podemos ver dos modelos claramente identificados, el que funciona con la sola presencia de un pila, para no tomar la corriente del propio Receptor, y el que además, lleva incluido un regulador ya que se alimenta de un transformador externo, fabricado por TodoElectronica.
Aquí vemos el esquema del Interfaz JTAG que es como deberíamos llamarlo. Como se puede ver el circuito es muy simple y esta basado en el omnipresente 74244 que actúa como Buffer y adaptador de señal Y/O Nivel. La alimentación del circuito esta lejos de ser los 5 voltios estándar, por lo que debemos alimentarlo a 3.3 voltios para que funcione en la mayoría de STB. Por ello, esta Interfaz se vende con una Pila endosada o con regulador incluido, como se puede ver arriba.

Volviendo al propio conector JTAG, tomemos como ejemplo las siguientes fotografías, donde se puede apreciar este conector que muchas veces, solo se encuentra disponible en el PCB pero sin conector. Ya qué, es un puerto para Test y reparaciones, y el fabricante opta por reducir costes en la placa obviando este conector. En las imágenes vemos el antes y el después de colocar un conector físico en una de las placas base de un Set Top Box.

Aquí vemos la zona del Jtag, está a la izquierda del PCB


Y aquí vemos el conector «físico» para poder conectar nuestro JTAG sin soldaduras.
Cuando tenemos adaptado el conector «A veces ya viene puesto» entonces ya disponemos de toda la libertad para programar y reparar nuestro Receptor con la Interfaz JTAG arriba mostrada y con el Software pertinente en cada ocasión.

Glosario de Términos;
Jkeys : Se trata del programa “no oficial??? que corre bajo Windows, el cual nos permite leer y escribir en la Flash de la Eeprom. El nombre viene de la posibilidad de leer ciertos datos “privados??? de un Firmware de un STB USA hace unos años. En la actualidad esta función ha quedado obsoleta.
WALL : WALL es la aplicación que debe hacerse funcionar junto con Jkeys, para poder “entrar??? con éxito en la Flash de la Eeprom desde el puerto JTAG del procesador.
JTAG : Es en realidad una Interface de trabajo, un Puerto de “rescate??? por donde analizar y testear funciones especificas del procesador o modificar el contenido de la eeprom que la “alimenta??? sin necesidad de desoldarla entre otras cosas.
Firmware : Se trata del Software o programa que hace que un Receptor de Satélite, TDT, Cable, DVD, Divx, etc… funcione. Se basa en un menú que muestra las funciones del equipo. Con el Firmware es importante el Boot de arranque.
Boot : Se trata del primer núcleo que se carga nada mas encender el descodificador, receptor. El Boot inicia un chequeo del sistema, carga las primeras rutinas de trabajo y procura el seguimiento de la carga del Firmware.
Eeprom : Es la memoria tipo Flash “marca Intel, Macronix, NEC, etc…??? que contiene el Firmware para que el equipo electrónico funcione correctamente. El Firmware es leído e interpretado por el procesador que trabaja directamente con este contenido.
STB : Son las siglas de Set Top Box. Responde a lo que es un Receptor de Satélite inicialmente pero desde ya, a los receptores de Cable y TDT.
Articulo escrito por Claudio Hernández 2006-06-12
Artículo escrito por Claudio Hernández
Claudio Hernández Diesl.com
Blog patrocinado por Diesl.com