Atmel’s AVR microcontroller chips are in-system programmable (ISP), i.e. these can be programmed directly in the target circuit.
A special programmer software is used to download the program from the PC into the AVR’s flash memory. Atmel offers a software package called the Atmel AVR ISP that allows programming of the AVR microcontrollers in the circuit using a simple dongle. A dongle is nothing but an adaptor cable that connects the PC’s parallel port with the ISP pins of the AVR chip for programming.
For programming, the four lines daptor (dongle) are:
1. MOSI (Master Out, Slave In): Data being transmitted to the AVR being programmed is sent on this pin
2. MISO (Master In, Slave Out): Data received from the AVR being programmed is sent on this pin
3. SCK (Shift Clock): Serial clock generated by the programmer from the PC.
4. RST (Reset): Reset (low pulse) generated by the program. The AVR is programmed while in reset state.
Here’s a dongle circuit for in-system programming of Atmel’s AVR chip AT90S8515 using such software packages as Atmel ISP 2.65 and PonyProg2000. Though not exactly the same, a similar dongle circuit can be found at the Website ‘www.iready.org/projects/uinternet/ispdongle.pdf.’
The PC’s parallel-port pins 4 and 5 drive buffer IC 74LS244 by enabling its pins 19 and 1, respectively. A low pulse on these pins will allow the passing of the serial clock and data during programming. MOSI, LED, SCK and RST outputs are buffered from the parallel port’s pins 7, 8, 6 and 9, respectively. The MISO input from the AVR is fed into pin 10 of the parallel port.
IC 74LS244 (IC1) acts as a buffer as well as an isolator circuit when the AVR is not in programming mode. In idle mode, all the outputs are tristated so as not to affect the operation of the target system.