Electronic – DIY AVR JTAG programmer using AVR

armavrjtagprogrammer

I have an AVR Dragon and several AVR MCUs. I recently purchased a BeagleBone Black (Cortex-A8). I'm trying to write my own bootloader. However, this would require a programmer.

Can I use an AVR MCU to be the medium to communicate between a USB port and a JTAG port? If so, how would I do it? Do I simply redirect the data stream? Is there anything else I need to implement in order to make it work?

Best Answer

If I understand you correctly, you have an AVR board with USB on it and you want to use that to take the output of a programmer on your PC and toggle the JTAG pins on an ARM board. This can certainly be done but it is not as easy as taking USB packet data and redirecting it to the JTAG pins.

The schematic is simple enough. This one uses serial instead of USB but the concept is the same.

AVR to JTAG schematic

If you really want an adventure, you can read through the 244 page ARM Debug Interface v5 Architecture Specification and write code to implement all the necessary commands, registers, and state machines. But luckily there is an open source project that has already done all that called OpenOCD.

You can take their source and port it yourself but there are a few projects out there that have already done this to the AVR architecture and would probably be a better starting point.

Estick-JTAG
USBProg-JTAG
USBVLab-JTAG