HappyJTAG2 - JTAG AND SPI AVR8 interface EMBEDDED JTAG ! EMBEDDED SPI !
New version released ! V2.45 (Check version list for details)
This construction is based on HappyJTAG Idea, to implement JTAG interface into target avr system and debug it remotly via USB, without specific JTAGICE hardware. All job is done by PC softraware. HappyJTAG version is easy , but not powerfull enough.There is barriere with performance, if you are manipulating with bits via USB interface. USB trafic is to huge to be effective.
This is why I have realized more poverfull version HappyJTAG2.This version uses specialized FT2232 ( or FT2232H ) chip, which has integrated JTAG interface on chip. It radically reduces USB interface communication and speed up overall process. There are two channels in FT2232, Channel A is used for JTAG and channel B is still free for standart serial communication between target and host PC.
Unfortunatly, the FT2232 chip requires more external components than FT232 chip. For example, external crystal oscillator, few more resistors and so on. But the result is balanced, because of overall performance is 100 times better if you compere with original HappyJTAG version.
HappyJTAG2 hardvare is standart published in datasheets, as you can see from schematic file. The main idea is to integrate FT2232 in target board and to use USB interface as standart target board interface for all communication, serial as well as JTAG or SPI. But there is also possible to replace target AVR8 with JTAG or SPI connector and to operate this interface as standart AVR JTAG or SPI interface ( remember, there is not in/out signals level convertors and so on, you have to add them to interface in this case )
All logic is covered by PC application. This application has two connection One is via USB to target and second is via TCP to AVRStudio. All commands are interpreted to FT2232 commands and sended to target FT2232 chip to process JTAG and SPI data integrchange. This PC software works in two modes:
The first mode alows run as independent software. There is support for connecting target via JTAG or SPI, read signature, reset target, download software (*.hex) into tagrget and to manage target fuses (read, write).
The second mode is AVRstudio mode. In this mode PC software interprets AVRStudio requests and communicate with target via JTAG or SPI. For AVRStudio it works as JTAGICEMK2 emulation.
Since version 2.31, there is no need for external Virtual Serial Port emulator. The HappyJTAG2 emulates one of serial port COM1-COM4 byself. You just have to start HappyJTAG2, select "ComX port emulation" radiobutton and open AVRStudio. In AVR Studio choose COMx ( pre-set in menu ) port for JTAGICEMKII device. Its all !
The first mode alows run as independent software. There is support for connecting target via JTAG or SPI, read signature, reset target, download software (*.hex) into tagrget and to manage target fuses (read, write).
The second mode is AVRstudio mode. In this mode PC software interprets AVRStudio requests and communicate with target via JTAG or SPI. For AVRStudio it works as JTAGICEMK2 emulation.
Since version 2.31, there is no need for external Virtual Serial Port emulator. The HappyJTAG2 emulates one of serial port COM1-COM4 byself. You just have to start HappyJTAG2, select "ComX port emulation" radiobutton and open AVRStudio. In AVR Studio choose COMx ( pre-set in menu ) port for JTAGICEMKII device. Its all !
Since 2.33 version, HappyJTAG2 supports also GDB debugger. The interface is TCPIP, port 2232.
HappyJTAG2 PC software was developed for ATMega32 target, however , current version supports more AVR8 modifications. My future plan is to enhance this software for the others AVR devices. There is also Boundary scan, so you can see physical pin states in graphical presentatoion, which is equal to ATMega32 DIP40 target.
Here is list of currently supported AVR8 models :
JTAG
- ATmega16
- ATmega32
-ATMega128
-ATMega640 (Not tested yet)
-ATMega644 (Not tested yet)
-ATMega644P
-ATMega1280 (Not tested yet)
-ATMega2560 (Not tested yet)
-ATMega1281 (Not tested yet)
-ATMega2561
-AT90CAN128
-AT90USB128 (Not tested yet)
-ATXMEGA128A1
SPI
- ATtiny13
- ATmega48 (Not tested yet)
- ATmega88
- ATmega168
- ATmega16
- ATmega32
- ATmega640 (Not tested yet)
- ATmega644 (Not tested yet)
- ATmega644P
- ATmega128
- ATmega1280 (Not tested yet)
- ATmega1281 (Not tested yet)
-ATMega2560
-ATMega2561
-AT90CAN128
-AT90USB128 (Not tested yet)
JTAG
- ATmega16
- ATmega32
-ATMega128
-ATMega640 (Not tested yet)
-ATMega644 (Not tested yet)
-ATMega644P
-ATMega1280 (Not tested yet)
-ATMega2560 (Not tested yet)
-ATMega1281 (Not tested yet)
-ATMega2561
-AT90CAN128
-AT90USB128 (Not tested yet)
-ATXMEGA128A1
SPI
- ATtiny13
- ATmega48 (Not tested yet)
- ATmega88
- ATmega168
- ATmega16
- ATmega32
- ATmega640 (Not tested yet)
- ATmega644 (Not tested yet)
- ATmega644P
- ATmega128
- ATmega1280 (Not tested yet)
- ATmega1281 (Not tested yet)
-ATMega2560
-ATMega2561
-AT90CAN128
-AT90USB128 (Not tested yet)
As one of the benefits of this solution (FT2232) is, that this software can operate with third party hardware as well as with this embedded chip. As good example is Amontec JTAGkeyhardware. You can use JTAGkey also for AVR8 chips in this case ! Its tested and it runs !
The first prototype :