ISP Programming

4 programming


Target Socket Section

ISP Programming

In-System Programming uses the Atmel AVR internal SPI (Serial Peripheral Interface) to download code into the flash and EEPROM memory of the AVR. ISP programming requires only VCC , GND, RESET and 3 signal lines for programming. All AVR devices except AT90C8534, Attiny11 and ATtiny28 can be ISP programmed. The AVR can be programmed at the normal operating voltage, normally 2.7V-6.0V. No high voltage signals are required. The ISP programmer can program both the internal flash and EEPROM. It also programs fuse bits for selecting clock options, startup time and internal Brown Out Detector (BOD) for most devices.

Note that the ISP frequency (SCK) must be less than 1/4 of the target clock. However this requires a 50/50 dutycycle on both target clock and ISP clock. Running a ISP frequency at 1/5 or less than target clock is recommended on Atmel STK500. The ISP frequency is set by the board tab of the STK500 user interface.

High-Voltage programming can also program devices that are not supported by ISP programming. Some devices require High-Voltage programming for programming certain fuse bits. See the High-Voltage programming section for instruction how to use High-Voltage programming.

Because the programming interface is placed on different pins from part to part, 3 programming headers are used to route the programming signals to the correct pins. A 6-wire cable is supplied for connecting the ISP signals to the target ISP header. A color coding system, and a number system, is used to explain which target ISP header is used for each socket.

During ISP programming the 6-wire cable must always be connected to the header marked ISP6PIN. When programming parts in the blue sockets, connect the other end of the cable to the blue SPROG1 target ISP header. When programming parts in the green socket, use the green SPROG2 target ISP header. And when programming parts in the red sockets, use the red SPROG3 target ISP header. The table below shows which socket suits which AVR device, and which SPROG target ISP header to use for ISP programming.

The 6-wire cables should be connected directly from the ISP6PIN header to the correct SPROG target ISP header. The cable should not be twisted. A colored wire on the cable indicates pin one. Confirm that this is connected to pin one on each of the headers.

When programming 8-pin devices, note the following: Pin 1 is used both as RESET and as PB5 on some devices (ATtiny11, ATtiny12, ATtiny13, ATtiny15 and ATtiny45). Pin 1 on the 8-pin sockets SCKT3400D1 and SCKT3600A1 are connected to PB5. The RESET signal used during ISP programming is therefore not connected to pin 1 on these sockets. This signal must be connected by placing a wire between RST on the PORTE header and PB5 on the PORTB header. Use one 2-wire cable to connect the PB3 pin (pin 4) on the PORTB header to the XT1 pin (pin 7) on the PORTE/AUX header. This will connect the clock system to the AVR device.

Connect RST on PORTE to PB5 on PORTB.

Connect XT1 on PORTE to PB3(XTAL1 on 2323) on PORTB.

SPROG3. These are MCS51 core compatible parts, they do not contain an AVR core. Only ISP programming is supported on these devices, no other functionality.

Connect RST on PORTE to PB5 on PORTB.

[a] This device is also supported on the STK505 Top Module

The figure below shows an example of how ATmega8515 can be In-System Programmed. The 6-wire cable is connected from the ISP6PIN header to the red SPROG3 target ISP header, and the ATmega8515 part is inserted in the red socket marked SCKT3000D3.

It is not necessary to remove the 6-wire cable from it’s ISP position while running a program in the AVR. The port pins used for ISP programming can be used for other purposes in your program.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.