Here’s a design circuit for simplest AVR ISP circuit is shown here, with some
notes. Ground and VCC must be connected to programmer, either to power
programmer or to provide a reference voltage for lower voltage circuits. This
is the figure of the circuit;
Most AVR microcontrollers use MOSI,
MISO and SCK SPI pins for programming, but some such as ATmega128 use SCK and
then UART TX and RX pins instead. The capacitor connected between Reset and
Ground, and the resistor from Reset to Vcc should be fitted to give a slight
delay to allow AVR to power up properly. These values are not critical, but if
they are too large then the ISP programmer will need to be slowed down. The
programming lines (SCK, MISO and MOSI) are best left just for programming, but
if these pins must be used by the application, then resistors should be used to
isolate the application circuitry, typically
4K7. This is especially important if TXD/RXD are used for programming,
as UART chips tend to hold the lines. This should be fine for SPI or UART use
or where pins are inputs but if you have to use these lines for higher current,
then a multiplexer circuit may be needed, see STK200 schematics. Capacitors on
the programming lines can cause problems, especially on SCK. If they have to be
fitted, then they should be below 10nF
and fitted as close as possible to AVR microcontroller pins. Some low cost
programmers will have problems with even a 10nF capacitor on SCK or MOSI, so
smaller is better.