AVR JTAG Programmer

Introduction

I have made my own JTAG programmer for AVR microcontrolers to be able to program an ATMEGA324P. It uses an ATMEGA32 programmed through the SPI from the PC parallel port with SP12. Th microcontroller is the interface between the PC serial port and the card you want to program through JTAG. I have also improved the board so I can also use it to program AVRs with the SPI.

Functionalities of the larvor board

The larvor board can be used to upload programs compiled with AVR GCC to AVRs through the JTAG or the SPI port.
Connect the PC to the larvor board using the serial port
Connect the target AVR to be programmed to the SPI or JTAG port of the larvor board
Use the windows program to upload the rom file into the AVR
The AVR can run at 5V or 3.3V (the serial port of the PC is interfaced with the AVR through a MAX3232 that can work at 5V or 3.3V)
The power of the larvor board can be selected on the board: 5V, 3.3V, external power (use the VCC from the AVR target)




Schematics

Microcontroller
Power 5V
Power 3.3V
Max3232


You can download the schematics and layout for Kicad: larvor_schematics.zip

Source code for the AVR

All the source code for the ATmega32 (C code compiled with win-avr): larvor_src_atmega32.zip
The ATMega32 of the larvor board can be programmed with SP12, using the "In situ" SPI programming port.
Jtag basic functions : jtag.c
Jtag functions to program the AVR : avrJtag.c

Source code windows interface

The C++ source code to communicate between the PC and the programmation board is written in C++ with QT.
Source code: larvor_src_pc.zip


Larvor Windows GUI