Come costruire una interfaccia JTAG (rev. 1.0 - 13/12/2008) by roleo
Questo breve
tutorial descrive la procedura per l'autocostruzione di una interfaccia di comunicazione
JTAG che utilizza la porta parallela.
Una interfaccia di questo tipo vi serve per collegare un dispositivo tipo router, telefono, etc...
a una porta parallela di un PC (RS232) e avere così accesso in lettura e scrittura alla memoria flash.
In realtà la funzionalità di accesso alla flash dipende molto dal processore che si trova
dentro al vostro dispositivo e dal software che utilizzate per eseguire l'operazione.
Tipicamente si è costretti a utilizzare un sistema di questo tipo per ripristinare un dispositivo
che ha subito danni per la scrittura non riuscita di un firmware (in gergo "debrick").
JTAG
Trovate centinaia di pagine in rete che ne parlano. Vi dico comunque che potete utilizzare interfacce diverse (xilinx, jkeys, wiggler) visto che il software le supporta.
Riporto lo schema delle interfacce più note: xilinx e wiggler poiché la loro costruzione richiede solo una manciata di componenti e costa probabilmente meno di 1 euro.
Xilinx
Wiggler
Potete trovare una descrizione più ampia sul sito http://wiki.openwrt.org/OpenWrtDocs/Customizing/Hardware/JTAG_Cable da cui ho prelevato le immagini.
Nota bene: per l'interfaccia Xilinx il cavo deve essere il più corto possibile, meglio se < 20 cm perché si tratta di una interfaccia non bufferizzata.
I connettori che vedete disegnati negli schemi
sono differenti perchè esistono due varianti possibili dello standard: la variante a
12 pin e quella a 14 pin.
Nei due casi la piedinatura è la seguente:
Segnale |
PIN |
PIN |
Segnale |
TRST |
1 |
2 |
GND |
TDI |
3 |
4 |
GND |
TDO |
5 |
6 |
GND |
TMS |
7 |
8 |
GND |
TCK |
9 |
10 |
GND |
SRST |
11 |
12 |
GND |
Segnale |
PIN |
PIN |
Segnale |
TRST |
1 |
2 |
GND |
TDI |
3 |
4 |
GND |
TDO |
5 |
6 |
GND |
TMS |
7 |
8 |
GND |
TCK |
9 |
10 |
GND |
SRST |
11 |
12 |
N.C. |
N.C. |
13 |
14 |
VCC |
Per il corretto funzionamento con la Xilinx (che diciamocelo è quella che usano tutti) è sufficiente utilizzare i pin che ho evidenziato in giallo.
I software che maggiormente si usano per eseguire il debrick sono:
che riprende il lavoro di HairyDairyMaid e lo porta avanti
programma pił completo ma anche pił complesso
Il primo funziona nativamente sia sotto linux che sotto Windows, il secondo necessita invece di Cygwin se lo si vuole usare sotto Windows.
Esistono poi diverse versioni customizzate, soprattutto del tool originale di HairyDairyMaid adattate ai vari modelli di processore/flash.