USART is the serial port. The pins for it are RXD and TXD. They are not used directly for programming, but may be used to communicate with a bootloader (piece of software programmed on the AVR that downloads programs and stores them in memory). They are mainly used to communicate with a PC using the appropriate level shifter or interface.
JTAG is a diagnostic port. The pins for it are TDI, TDO, TMS, and TCK. They are not present on all of the AVR line, only on the larger parts. They are used, along with a special programmer like the AVR Dragon, to both program the AVR and to debug code, since JTAG can step through execution and set/query memory. If you want to use those pins as regular I/O pins instead, you need to clear the JTAGEN fuse or turn off JTAG in software.
ISP is a programming port. The pins for it are SCK, MISO, MOSI, and RESET (note that the pins are different on the Atmega103 derivatives). They are used with an external programmer to download programs to flash. They can also be used as an SPI interface or general I/O when the program is running.
So to program a new (never programmed) chip, you need to either use the ISP pins or the JTAG pins with the appropriate programmer. To program a chip that already has a bootloader on it (like the ones in an Arduino), you can use the serial USART port.
USART is a serial port. Actually a HARDWARE serial interface.
JTAG is a debugging/programming port, usually not on the serial i/o.
All the adruinos that you see that have bootloaders are programmable via the serial port ala upload a hex file and the bootloader takes care of the copying and starting the program.
Most all usb arduinos chain the usb to the serial. The Teensy however uses the built in usb i/o in a high-end avr chip.
To load a bootloader however, you need to use the ISP/JTAG interface to get that program loaded.
A JTAG programmer is a special device for interfacing your pc to an avr chip.
motopic:
USART is a serial port. Actually a HARDWARE serial interface.
JTAG is a debugging/programming port, usually not on the serial i/o.
All the adruinos that you see that have bootloaders are programmable via the serial port ala upload a hex file and the bootloader takes care of the copying and starting the program.
Most all usb arduinos chain the usb to the serial. The Teensy however uses the built in usb i/o in a high-end avr chip.
To load a bootloader however, you need to use the ISP/JTAG interface to get that program loaded.
A JTAG programmer is a special device for interfacing your pc to an avr chip.
Minor clarification: Many modules such as PJRC’s Teensy have the bootloader pre-installed. Unless you bork it, you won’t need an ISP/JTAG programmer.
Thanks for the information everybody. Helps me understand a little more about Atmegas.
I have, in my possession, an Atmega32 that I programmed with a parallel programmer, which required the use of a parallel port on an older computer. The computer isn’t too functional anymore.
The programmer connected the computer’s parallel port to an ISP jack on the AT-32’s dev board. The ISP jack is ten pin and uses the MOSI, MISO, SCK, AND RESET pins.
I have found where I can get a USB conversion programmer for the atmega-32 (http://www.wrighthobbies.net/catalog/pr … cts_id=172) that connects to the ISP port(MOSI, MISO, SCK, AND RESET) which is different from the Arduino method of connecting USB to TX, RX on atmega-168.