Documentation:Avr8ProgInterfaces
From AVRFreaks Wiki
Programming Interfaces for the Atmel 8-Bit AVR.
Programming Interfaces are hardware devices that (with suitable software tools) enable ISP, JTAG and/or high-voltage programming of Atmel 8-Bit AVR microcontrollers. Separate sections discuss development kits, prototype boards, board-level products and debugging interfaces. The loading of application firmware using special "bootloader" firmware already in the microcontroller is also not discussed in this section as it requires no special hardware device (typically, a serial port connection would be used).
Contents |
[edit] Atmel
[edit] AVR Dragon
The AVR Dragon (USD 50) is a recently introduced low-cost multi-mode programmer. It can program the entire range of AVRs using any of the available methods (ISP, JTAG and serial and parallel high-voltage). It also allows on-chip debugging using the JTAG and debugWire interfaces, however JTAG operation is limited to AVRs with less than or equal to 32 KiB of flash ROM (this is probably for marketing, rather than technical reasons, so as not to cut into sales of the USD 300 JTAG ICE MkII). Support for the Dragon was added to AVR Studio in service packs 3 and 4 of version 4.12, so an update may be necessary to use this programmer. The AVR Dragon can be used as a development platform similar to the STK500 when mated with the Dragon Rider 500.
[edit] JTAG ICE
The JTAG ICE is the original Atmel JTAG programming and debugging interface. There are a lot of clones available, most of which run the Atmel firmware distributed with AVR Studio. The build quality and prices of the clones vary. The main drawback of the JTAG ICE and its clones is that they work only with the older chips that have JTAG support, including the ATmega16, 162, 169, 32, 323, 64, 128 and their low-voltage counterparts. However, unlike the AVR Dragon, debugging is not limited to 32 KiB devices, making this a better low-cost choice for the ATmega64 and ATmega128.
[edit] JTAG ICE MkII
The number one jtag interface, it is good with both 8-bit and 32-bits AVR.
[edit] AVRISP
[edit] AVRISP MkII
[edit] STK500
The STK500 (see development kits) includes ISP and high-voltage programming capabilities. ISP can be used for both on-board and external devices. High-voltage programming is best used only for on-board devices due to the lack of level converters and the application of 12 volts to the reset line.
[edit] Third-Party
[edit] AVR ICE-Cube
The AVR ICE-Cube (USD 40) from ECROS Technology functions as a replacement for the Atmel JTAG ICE. Although target-powered and not suitable for use below 3.0 volts, it is extremely small, sitting on top of the JTAG header. The lack of a cable to the target and careful attention to EMC in design makes the ICE-Cube suitable for use in situations prone to electrical interference. When you receive your ICE-Cube it contains only a "bootloader" and must be programmed with the Atmel JTAG ICE firmware using AVRProg or compatible programming software (this is so as not to violate Atmel license restrictions). Just like the JTAG ICE, its firmware will be updated automatically by AVR Studio. Device support is exactly the same as for the Atmel JTAG ICE, so it includes the ATmega128 (missing in the AVR Dragon) but lacks support for the newest JTAG devices and debugWIRE.
[edit] AVR PRESTO
The PRESTO (software UP can be free downloaded from the web) is a flexible USB ISP/ICSP/JTAG programmer for large variety of microcontrollers (AVR, AT89, PIC, eCOG1), serial eeproms/flash (I2C,SPI,MicroWire) and CPLDs/FPGAs (JTAG). Devices supported: Listing
[edit] Homegrown
Simple programmers can easily be homemade, however they have several drawbacks (incompatible with official Atmel software, not always reliable, slow). Despite this they are extremely easy and cheap to make, and for this reason remain popular amongst frugal AVR hobbyists.
More advanced homemade programmers can be constructed, usually complying to the same protocol as the official Atmel programmers - thus making them compatible with AVRStudio and other official Atmel software tools. Examples of such programmers:
- ButtLoad - Based on the AVRButterfly Atmel board
- AVRUSB500 V2
[edit] USBprog
The USBprog is a free programming adapter. You can easily install different firmware versions from an "online pool" over USB. The adapter can be used for programming and debugging AVR and ARM processors, as USB to RS232 converter, as JTAG interface or as simple I/O interface (5 lines). Source files and Schematics are provided at the website. It's also possible to order kits and pre-assembled units.
The firmware pool includes:
- AVR ISP 2 clone
- OpenOCD Interface (ARM Debugging)
- AT89 Programmer
- SimplePort (10 I/O lines)
- USB to RS232 converter (without drivers!!)
- JTAGICE mk2 clone (under development)
[edit] See Also
- Atmel Tools Overview (a nice writeup of the different official AVR development tools in the AVRfreaks tutorials forum)
- This "Avr8ProgInterfaces" document should, eventually, answer all the questions raised on the "Programming Hardware Matrix?" thread.
