I'm releasing the design files of a JTAG dongle. JTAG is a interface designed to test printed circuit boards (PCB) using boundary scan. But today, is also used to test Integrated Circuits (IC), in particular this interface is present in all (I think) ARM processors.
The JTAG dongle I designed, named uJTAG, is a minimalistic implementation with a 6 pin connector in contrast to the standard 20 pin connector. The purpose of this dongle is to flash and debug ARM microcontrollers. Especifically, this dongle has been tested with STM32 microcontrollers.
uJTAG old version
On the above image you can see the previous version of uJTAG I implemented. In the current version, I have removed the EEPROM memory, which I later figured was not necessary, as the default USB <-> UART configuration is enough. Also the components have been moved to the top layer.
As I mentioned previously the JTAG standard specifies a 20 pin connector shown below:
uJTAG connector uses only 6 pins. Pinout is shown below:
These four signals (TMS, TDI, TDO, TCK) are the minimum necessary to use JTAG on microcontrollers. Actually, the RESET signal is also important, but with these signals a RESET can be issued by software, i.e. as a combination of the other 4 signals.
I use this JTAG dongle with STM32 microcontrollers, specifically I use it with F4Dev, an open source development board for STM32F4 microcontrollers, and with openOCD 0.5.0., a software that enables a transparent JTAG communication from PC to microcontroller/processor via the USB protocol.
uJTAG mated with F4Dev
You can find all the design files in this repository.