STK500 User's Guide: Introduction

STK500 Starter Kit User's Guide

Congratulation with your STK500 AVR® Flash MCU Starter Kit. The STK500 is a complete starter kit and development system for the AVR Flash Microcontroller from Atmel Corporation. It is designed to give designers a quick start to develop code on the AVR, combined with advanced features for using the starter kit to prototyping and testing of new designs.

The current release of the AVR Studio requires the firmware on old STK500 boards to be upgraded. The new firmware is embedded in this release of the AVR Studio, and the upgrade process will start when you connect to the STK500 board (you will be asked to perform the procedure). If for some reason the automatic upgrade fails, use the manual upgrade procedure found here.

Introduction
Features
Device Support
What's New
Known Issues
Getting Started
Unpacking the System
System Requirements
Quick Start

Hardware Description
Description of User LEDs
Description of User Switches
Connection of LEDs and Switches
Port Connectors
Description of User RS232 Interface
Description of Dataflash Pins
Target Socket Section
ISP Programming
High Voltage Programming
Parallell High Voltage Programming
Serial High Voltage Programming
Jumper Settings
Target VCC Settings, TVCC
Analog Reference Voltage, AREF
Reset Settings, RESET
Clock Settings, XTAL1 and OSCSEL
BSEL2 Jumper
Expansion Connectors
Prog Ctrl and Prog Data Headers
Misc

Using AVR Studio with STK500
Command Line Software
In-System Programming of an External Target
Trouble Shooting Guide

STK500 Firmware Upgrade Procedure
Technical Support
Example Applications
Schematic

See Also

Return to Main Index


STK500 User's Guide: Features

The Starter Kit has the Following Features
  • AVR Studio ® Compatible
  • RS232 Interface to PC for Programming and Control
  • Regulated Power Supply for 10-15V DC Power
  • Sockets for 8-pin, 20-pin, 28-pin, and 40-pin AVR Devices
  • Parallel and Serial High-Voltage Programming of AVR devices
  • Serial In-System Programming (ISP) of AVR devices
  • In-System Programmer for Programming AVR devices in External Target System
  • Reprogramming of AVR devices
  • 8 Push-buttons for General Use
  • 8 LEDS for General Use
  • All AVR I/O Ports Easily Accessible Through Pin Header Connectors
  • Additional RS232 Port for General Use
  • Expansion Connectors for Plug-In Modules and Prototyping Area
  • On-board 2Mbit Dataflash for Non-Volatile Data Storage*

*NOTE: The AT45D021 Dataflash is obsolete and is therefore not mounted on later STK500 boards.

Note: Some devices requires extra adapters to work with the STK500. Check the Device Support for these devices and adapters.

See Also
  • STK500 Starter Kit User's Guide
  • Device Support


STK500 User's Guide: Device Support

Device Support

The system software currently has support for the following devices in all speed grades:

  • ATtiny11

  • ATtiny12

  • ATtiny13

  • ATtiny15

  • ATtiny22

  • ATtiny2313

  • ATtiny245

  • ATtiny25

  • ATtiny268

  • ATtiny2618

  • ATtiny28

  • ATtiny43U*

  • ATtiny445

  • ATtiny45

  • ATtiny4618

  • ATtiny48

  • ATtiny845

  • ATtiny85

  • ATtiny8618

  • ATtiny88

  • ATtiny167

  • AT90S1200

  • AT90S2313

  • AT90S2323

  • AT90S2333

  • AT90S2343

  • AT90S4414

  • AT90S4433

  • AT90S4434

  • AT90S8515

  • AT90S8535

  • ATmega8

  • ATmega16

  • ATmega32

  • ATmega32HVB*

  • ATmega48

  • ATmega48P

  • ATmega641

  • ATmega88

  • ATmega88P

  • ATmega88PA

  • ATmega1031

  • ATmega1281

  • ATmega12803

  • ATmega12811

  • ATmega1284P

  • ATmega16HVA*

  • ATmega161

  • ATmega162

  • ATmega163

  • ATmega164P

  • ATmega1652

  • ATmega165P2

  • ATmega168

  • ATmega168P

  • ATmega1692

  • ATmega169P2

  • ATmega323

  • ATmega324P

  • ATmega3252

  • ATmega325P2

  • ATmega328P

  • ATmega3292

  • ATmega329P2

  • ATmega32C112

  • ATmega32M112

  • ATmega32U4*

  • ATmega4069

  • ATmega6403

  • ATmega644

  • ATmega644P

  • ATmega6452

  • ATmega6492

  • ATmega25603

  • ATmega25611

  • ATmega32504

  • ATmega3250P4

  • ATmega32904

  • ATmega3290P4

  • ATmega64504

  • ATmega64904

  • ATmega8515

  • ATmega8535

  • AT90CAN326

  • AT90CAN646

  • AT90CAN1286

  • AT90PWM27

  • AT90PWM2B7

  • AT90PWM2167

  • AT90PWM3167

  • AT90PWM37

  • AT90PWM3B7

  • AT90USB8211

  • AT90USB16211

  • AT90USB64610

  • AT90USB64710

  • AT90USB128610

  • AT90USB128710

  • AT86RF401

1 with support from the STK501 adapter.
2 with support from the STK502 adapter.
3 with support from the STK503 adapter.
4 with support from the STK504 adapter.
5 with support from the STK505 adapter.
6 with support from the STK501 and ATADAPCAN1 adapters.
7 with support from the STK520 adapter.

8 in addition to be supported on the STK500 motherboard, this part is also supported on the STK505 Top Module for easier strapping.

9 ATmega406 pinout is not supported by the motherboard or any topmodule. However High Voltage Parallel Programming is included in the STK500 FW.

10 with support from the STK525 adapter.

11 with support from the STK526 adapter.

12 with support from the STK524 adapter.

*Only ISP support, not socket on STK500 supports this device

In addition STK500 supports ISP programming of AT89S51 and AT89S52.

Support for new AVR devices may be added in new versions of AVR Studio. Latest version of AVR Studio is always available from www.atmel.com

See Also
  • STK500 Starter Kit User's Guide
  • Features


STK500 User's Guide: What's New

What's New

Note: The new communication protocol used with v2 of the firmware is described in application note AVR068. Please visit the Atmel web site for more information.

February 20th, 2008 - FW v2.0A (Released with AVR Studio 4.14)

  • Added full device support for ATtiny88

  • Added isp support for ATtiny167, ATmega32M1, ATmega32C1 and ATmega32U4

November 21st, 2007 - FW v2.0A (Released with AVR Studio 4.13 SP2)

  • Added full device support for ATtiny48 and ATmega1284P

  • Added isp support for ATtiny43U and ATmega32HVB

August 10th, 2007 - FW v2.0A (Released with AVR Studio 4.13 SP1)

  • Added full device support for AT90USB82, Attiny48, AT90PWM216, AT90PWM316, ATmega328P and ATmega16HVA

February 26th, 2007 - FW v2.0A (Released with AVR Studio 4.13)

  • Added full device support for ATmega88P, ATmega168P and AT90USB162

February 15th, 2007 - FW v2.0A

  • Added full device support for AT90PWM2B, AT90PWM3B, AT90CAN64, AT90USB162, AT90USB646, AT90USB647, AT90USB1286, AT90USB1287

September 18th, 2006 - FW v2.0A

  • Added full device support for ATmega48P, ATmega644P

  • Firmware fixes:

    • Fixed red blinking on status LED that may occur on power up

    • Changed some timing in PP/HVSP programming mode

August 3rd, 2006 - FW v2.07

  • Added full device support for ATmega325P, ATmega3250P, ATmega329P and ATmega3290P

May 24th, 2006 - FW v2.07

  • Added full device support for ATtiny84

March 30th, 2006 - FW v2.07

  • Added full device support for ATtiny461

March 17th, 2006 - FW v2.07

  • Added full device support for ATmega165P and ATmega169P

February 24th, 2006 - FW v2.07

  • Added full device support for ATmega164P and ATmega324P

  • Added full device support for ATtiny85

  • Firmware fixes:

    • Made more robust ISP programming to handle skew on the ISP lines

    • Fixed bug with EEPROM > 256bytes HVSP programming

December 7th, 2005 - FW v2.04

  • Added full device support for ATtiny25

November 21th, 2005 - FW v2.04

  • Added full device support for ATtiny44

October 11th, 2005 - FW v2.04

  • Added full device support for ATtiny861 and AT90CAN32

  • Firmware fixes:

    • Fixed HVSP OSC calbyte readout error. Now possible to read different osccal bytes.

    • Fixed problem with the STK500 releasing the target RESET after programming even though the RESET button is held down

September 2th, 2005 - FW v2.01

  • Added full device support for ATmega1280

Ausgust 24th, 2005 - FW v2.01

  • Added full device support for ATmega1281

April 11th, 2005 - FW v2.01

  • Added full device support for ATmega644

February 2nd, 2005 - v2.01

  • Added full device support for ATtiny24 (requires STK505)

  • Added full device support for ATmega645/ATmeg6450 (requires STK502/STK504)

  • Added full device support for ATmega649/ATmeg6490 (requires STK502/STK504)

December 6th, 2004 - v2.00

  • Added full device support for ATmega2560 (requires STK503)

  • Added full device support for ATmega2561 (requires STK503)

October 11th, 2004 - v1.53

  • Added full device support for AT90PWM2 and AT90PWM3 (requires STK520)

  • Added full device support for ATtiny45

August 4th, 2004 - v1.51

  • Added full device support for ATmega3250 (requires STK504)

  • Added full device support for ATmega3290 (requires STK504)

July 23rd, 2004 - v1.50

  • Added full device support for ATmega325 (requires STK502)

  • Added full device support for ATmega329 (requires STK502)

July 8th, 2004 - v1.49

  • Added full device support for ATtiny2313 rev C

  • Added full device support for ATmega168

  • Added support for calibration of the internal RC oscillator according to appnote AVR053

  • Fixed High Voltage Serial Programming of ATtiny13 rev D

May 5th, 2004 - v1.47

  • Added full device support for ATmega165 (requires STK502)

March 8th, 2004 - v1.46

  • Added full device support for ATmega88.

  • Added full device support for AT90CAN128.


STK500 User's Guide: Known Issues

Known Issues of Latest Release

Note that the v02.XX of the STK500 FW will not work with AvrStudio before 4.11, as it supports the v2 communication protocol implemented in AvrStudio 4.11 and later. Application note AVR068 describes the new communication protocol. The application note can be found on the Atmel web site: www.atmel.com/avr.

Pull-up on reset line:

The pull up on the STK500 target reset line is to strong in relation to that other programmers is using STK500 as a target board.

Work around: Remove the Reset jumper when using external programmers to program targets on the STK500.

Part related issues:

ATtiny13 programming issues: Users of ATtiny13 please read here.

ATtiny2313 programming issues: Users of ATtiny2313 please read here.

ATmega169 programming issues: Users of ATmega169 please read here.

Firmware Upgrade

In order to achieve successful firmware upgrade, make sure that all cables and devices are removed from the target area of the STK500.


STK500 User's Guide: Unpacking the System

Unpacking the System
The box contains:
  • STK500 starter kit evaluation board
  • Cables for STK500:
    • 2 pcs 10-wire cables for I/O ports and Parallel mode programming
    • 1 pcs 6-wire cable for In-System Programming
    • 4 pcs 2-wire cable for UART and dataflash connections
  • 9-pin RS-232 Cable DC Power Cable
  • Atmel CD-ROM with datasheets and Software
  • AT90S8515-8PC sample microcontroller

See Also

  • STK500 Starter Kit User's Guide
  • System Requirements
  • Quick Start
  • Connecting the Hardware
  • Programming the Target AVR Device


STK500 User's Guide: System Requirements

System Requirements
The minimum hardware and software requirements are:

  • Pentium-class CPU

  • 64MB RAM (windows 9x)/128MB RAM (Windows NT/2000/XP) (recommend doubling this)

  • 100MB free hard disk space (AVR Studio)

  • 115200 baud RS-232 port (COM port)

  • 10-15V DC power supply, 500mA min

See Also

  • STK500 Starter Kit User's Guide
  • Unpacking the System
  • Quick Start
  • Connecting the Hardware
  • Programming the Target AVR Device


STK500 User's Guide: Quick Start

Quick Start

The STK500 starter kit is shipped with an AT90S8515-8PC microcontroller in the socket marked SCKT3000D3. The default jumper settings will allow the microcontroller to execute using the clock source and voltage regulator system on the STK500 board.

The microcontroller is programmed with a test program that toggles the LEDS. The test program in the AT90S8515 is similar to the example application code described in section "Example Applications". Connect the LEDS and switches, and power up the STK500 to run the test program in the AT90S8515.

Use the supplied 10-pin cables to connect the header marked PORTB with the header marked LEDS, and connect the header marked PORTD with the header marked SWITCHES. The connections are shown on the figure below.

An external 10-15V DC power supply is required. The input circuit is a full bridge rectifier, and the STK500 automatically handles both positive or negative center connector, if a positive center connector is used, it can in some cases be impossible to turn the STK500 off since the power switch then disconnects the GND terminal, in this case GND can be supplied through the RS-232 cable shield if connected or through alternative GND connections. Connect the power cable between a power supply and the STK500. Apply 10-15 VDC to the power connector. The power switch turns the STK500 main power on and off. The red LED is lit when power is on, and the status LEDS will go from red, via yellow to green. The green LED indicates that the Target V CC is present. The program now running in the AT90S8515 will respond to pressed switches by toggling the LEDs.

See Also

  • STK500 Starter Kit User's Guide
  • Unpacking the System
  • System Requirements
  • Connecting the Hardware
  • Programming the Target AVR Device


STK500 User's Guide: Connecting the Hardware

Connecting the Hardware

Connection to STK500

To program AT90S8515, connect the supplied 6-wire cable between the ISP6PIN header and the SPROG3 target ISP header. "ISP Programming" describes the programming cable connections.

Connect a serial cable to the connector marked RS232CTRL on the evaluation board to a COM port on the PC as shown in the figure. Install AVR Studio software on the PC.

When AVR Studio is started the program will automatically detect which COM port STK500 is connected to.

See Also

  • STK500 Starter Kit User's Guide
  • Unpacking the System
  • System Requirements
  • Quick Start
  • Programming the Target AVR Device


STK500 User's Guide: Programming the Target AVR Device

Programming the Target AVR Device

STK500 is controlled from AVR Studio, version 4.0 and higher.

To program a hex file into the target AVR device, select "Program AVR" and then "Connect..." from the "Tools" menu in AVR Studio. This will display a dialog where you can select STK500 from a list of supported tools.

A descriptions of using the STK500 interface in AVR studio is explained in the Programming Dialog section of the AVR Studio user's guide.

See Also

  • STK500 Starter Kit User's Guide
  • Unpacking the System
  • System Requirements
  • Quick Start


STK500 User's Guide: STK500 Block diagram

Block Diagram


STK500 User's Guide: Description of user LEDs

Description of user LEDs

The STK500 starter kit includes 8 yellow LEDS and 8 push button switches. The LEDS and switches are connected to debug headers that are separated from the rest of the board. They can be connected to the AVR devices with the supplied 10-wire cable to the pin header of the AVR I/O ports. The figure in section "Connection of LEDs and Switches" shows how the LEDS and switches can be connected to the I/O ports header. The cables should be connected directly from the port header to the LED or switch header. The cable should not be twisted. A red wire on the cable indicates pin one. Confirm that this is connected to pin one on each of the header. The figure below shows how the LED control is implemented. This solution will give the same amount of light from the LED for all target voltages from 1.8V to 6.0V.

See Also

  • STK500 Starter Kit User's Guide
  • STK500 Block Diagram
  • Description of User Switches
  • Connection of LEDs and Switches
  • Port Connectors
  • Description of User RS232 Interface
  • Description of Dataflash Pins
  • Target Socket Section
  • ISP Programming
  • High Voltage Programming
  • Parallell High Voltage Programming
  • Serial High Voltage Programming
  • Jumper Settings
  • Target VCC Settings, TVCC
  • Analog Reference Voltage, AREF
  • Reset Settings, RESET
  • Clock Settings, XTAL1 and OSCSEL
  • BSEL2 Jumper
  • Expansion Connectors
  • Prog Ctrl and Prog Data Headers
  • Misc


STK500 User's Guide: Description of User Switches

Description of User Switches

The Switches connected to the debug headers are implemented as shown in the figure below.

Pushing a switch causes the corresponding SWx to be pulled low, while releasing it will result in VTG on the appropriate Switch header connector. Valid target voltage range is 1.8V < VTG < 6.0V.

Note:
In the AVR you can enable internal pull-ups on the input pins, removing the need for an external pull-up on the push button. In the STK500 design we have added an external 10K pull-up to give all users a logical '1' on SWn when the push button is not pressed. The 150R resistor is to limit the current going into the AVR.

See Also

  • STK500 Starter Kit User's Guide
  • STK500 Block Diagram
  • Description of User_LEDs
  • Connection of LEDs and Switches
  • Port Connectors
  • Description of User RS232 Interface
  • Description of Dataflash Pins
  • Target Socket Section
  • ISP Programming
  • High Voltage Programming
  • Parallell High Voltage Programming
  • Serial High Voltage Programming
  • Jumper Settings
  • Target VCC Settings, TVCC
  • Analog Reference Voltage, AREF
  • Reset Settings, RESET
  • Clock Settings, XTAL1 and OSCSEL
  • BSEL2 Jumper
  • Expansion Connectors
  • Prog Ctrl and Prog Data Headers
  • Misc


STK500 User's Guide: Connection of LEDs and Switches

Connection of LEDS and Switches

Any I/O port of the AVR can be connected to the LEDS and switches using the 10-wire cables. The headers are supplied with VTG (Target VCC) and GND lines in addition to the signal lines.

See Also

  • STK500 Starter Kit User's Guide
  • STK500 Block Diagram
  • Description of User_LEDs
  • Description of User Switches
  • Port Connectors
  • Description of User RS232 Interface
  • Description of Dataflash Pins
  • Target Socket Section
  • ISP Programming
  • High Voltage Programming
  • Parallell High Voltage Programming
  • Serial High Voltage Programming
  • Jumper Settings
  • Target VCC Settings, TVCC
  • Analog Reference Voltage, AREF
  • Reset Settings, RESET
  • Clock Settings, XTAL1 and OSCSEL
  • BSEL2 Jumper
  • Expansion Connectors
  • Prog Ctrl and Prog Data Headers
  • Misc


STK500 User's Guide: Port Connectors

Port Connectors

The pinout for the I/O ports headers is explained in the figure below. The square marking indicates pin 1.

The PortE/Aux header serves some special signals and functions. The pinout of this header is shown below:

The special functions of this port are:

PE0-PE2:
Port E Connections
 | ATmega161 | AT90S4414/AT90S8515
PE0 | PE0/ICP/INT2 | ICP
PE1 | PE1/ALE | ALE
PE2 | PE2/OC1B | OC1B
REF:

Analog Reference voltage. This pin is connected to the AREF pin on devices having a seperat analog reference pin.

XT1:

XTAL 1 pin. The internal main clock signal to all sockets. If the XTAL1 jumper is disconnected this pin can be used as external clock signal.

XT2:

XTAL 2 pin. If the XTAL1 jumper is disconnected this pin can be used for external crystal with the XT1 pin.

The header for the LEDS and switches use the same pinout as the I/O port headers. The pinouts of the switches header and the LEDS headers are explained in the figure below. The square marking indicates pin 1.

See Also

  • STK500 Starter Kit User's Guide
  • STK500 Block Diagram
  • Description of User_LEDs
  • Description of User Switches
  • Connection of LEDs and Switches
  • Description of User RS232 Interface
  • Description of Dataflash Pins
  • Target Socket Section
  • ISP Programming
  • High Voltage Programming
  • Parallell High Voltage Programming
  • Serial High Voltage Programming
  • Jumper Settings
  • Target VCC Settings, TVCC
  • Analog Reference Voltage, AREF
  • Reset Settings, RESET
  • Clock Settings, XTAL1 and OSCSEL
  • BSEL2 Jumper
  • Expansion Connectors
  • Prog Ctrl and Prog Data Headers
  • Misc


STK500 User's Guide: Description of User RS232 Interface

Description of User RS232 Interface

The STK500 includes two RS232 ports. One RS232 port is used for communication with AVR Studio. The other RS232 can be used for communication between the target AVR microcontroller in the socket and a PC serial port connected to the RS232. To use the RS232, the UART pins of the AVR needs to be physically connected to the RS232.

The 2-pin header marked “RS232 SPARE” can be used for connecting the RS232 converter to the UART pins on the target AVR microcontroller in the socket. Use the 2-wire cable to connect the UART pins to the RS232. The connection is shown in below.

This is the block schematic of the RS232 connection.

See Also

  • STK500 Starter Kit User's Guide
  • STK500 Block Diagram
  • Description of User_LEDs
  • Description of User Switches
  • Connection of LEDs and Switches
  • Port Connectors
  • Description of Dataflash Pins
  • Target Socket Section
  • ISP Programming
  • High Voltage Programming
  • Parallell High Voltage Programming
  • Serial High Voltage Programming
  • Jumper Settings
  • Target VCC Settings, TVCC
  • Analog Reference Voltage, AREF
  • Reset Settings, RESET
  • Clock Settings, XTAL1 and OSCSEL
  • BSEL2 Jumper
  • Expansion Connectors
  • Prog Ctrl and Prog Data Headers
  • Misc


STK500 User's Guide: Description of Dataflash Pins

Description of Dataflash Pins

NOTE: The AT45D021 Dataflash is obsolete and is therefore not mounted on later STK500 boards.

An AT45D021 2Mbit dataflash is included on the STK500 for non-volatile data storage. A dataflash is a high-density flash memory with SPI serial interface. Detailed datasheet of the dataflash can be obtained from the Flash memory section of the Atmel CD-ROM, or from the Atmel web site.

The dataflash can be connected to the I/O pins of the microcontroller sockets. The 4-pin header marked "DATAFLASH" can be used for connecting the SPI interface of the dataflash to the I/O pins on the target AVR microcontroller in the socket. 2-wire cables are included with STK500 for connecting the dataflash to the I/O pins. The supplied 10- wire cables can also be used if the dataflash is connected to the hardware SPI interface on PORTB of the AVR microcontroller. The connection of the I/O pins is shown on the picture below.

The block schematic of the dataflash connection is shown below, for connection of the dataflash to the AVR hardware SPI interface.

The SPI interface pinout is shown here.

See Also

  • STK500 Starter Kit User's Guide
  • STK500 Block Diagram
  • Description of User_LEDs
  • Description of User Switches
  • Connection of LEDs and Switches
  • Port Connectors
  • Description of User RS232 Interface
  • Target Socket Section
  • ISP Programming
  • High Voltage Programming
  • Parallell High Voltage Programming
  • Serial High Voltage Programming
  • Jumper Settings
  • Target VCC Settings, TVCC
  • Analog Reference Voltage, AREF
  • Reset Settings, RESET
  • Clock Settings, XTAL1 and OSCSEL
  • BSEL2 Jumper
  • Expansion Connectors
  • Prog Ctrl and Prog Data Headers
  • Misc


STK500 User's Guide: Target Socket Section

Target Socket Section
The programming module consists of the 8 sockets in the white area in the middle of the starter kit. In these sockets the target AVR devices can be inserted for programming and used in the application.

Note: Only one AVR device should be inserted in the sockets at a time.

The AVR flash memory is guaranteed to be correct after 1000 programming operations, the typical lifetime of the flash memory is much longer.

Note: When inserting a device in the socket, notice the orientation of the device.

The notch on the short side of the part must match the notch on the socket. If the device is inserted the wrong way, it may damage the part and the starter kit.

The socket section is used for both running application and target device programming.

The part inserted in the socket can be programmed in the system from AVR Studio with two different methods:

  1. AVR In-System Programming (ISP) running at the parts normal supply voltage.
  2. High voltage programming, where the supply voltage is always 5 volts.

4 general nets (Vtarget, RESET, XTAL1, and AREF) can be connected to the socket section.

The following sections describe how to use both programming methods. For instruction of using the AVR studio programming software, see "Using AVR Studio".

See Also

  • STK500 Starter Kit User's Guide
  • STK500 Block Diagram
  • Description of User_LEDs
  • Description of User Switches
  • Connection of LEDs and Switches
  • Port Connectors
  • Description of User RS232 Interface
  • Description of Dataflash Pins
  • ISP Programming
  • High Voltage Programming
  • Parallell High Voltage Programming
  • Serial High Voltage Programming
  • Jumper Settings
  • Target VCC Settings, TVCC
  • Analog Reference Voltage, AREF
  • Reset Settings, RESET
  • Clock Settings, XTAL1 and OSCSEL
  • BSEL2 Jumper
  • Expansion Connectors
  • Prog Ctrl and Prog Data Headers
  • Misc


STK500 User's Guide: ISP Programming

ISP Programming

In-System Programming uses the 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 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.

AVR devices | STK500 socket | Color | Number | Target ISP header
AT90S1200 AT90S2313 ATtiny2313 | SCKT3300D3 | Red | 3 | SPROG3
AT90S2323 AT90S2343 ATtiny12 ATtiny13 ATtiny22 ATtiny25 ATtiny45 ATtiny85 | SCKT3400D1 | Blue | 1 | SPROG1. Connect RST on PORTE to PB5 on PORTB. Connect XT1 on PORTE to PB3(XTAL1 on 2323) on PORTB.
ATtiny11 | SCKT3400D1 | Blue | 1 | High-Voltage programming only
ATtiny28 | SCKT3500D- | None | - | High-Voltage programming only
AT90S4414 AT90S8515 ATmega161 ATmega8515 ATmega162 | SCKT3000D3 | Red | 3 | SPROG3
AT89s51 AT89s52 | SCKT3000D3 | Red | 3 | 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.
AT90S4434 AT90S8535 ATmega16 ATmega163 ATmega164P ATmega32 ATmega323 ATmega324P ATmega644 ATmega644P ATmega1284P ATmega8535 | SCKT3100A3 | Red | 3 | SPROG3
AT90S2333 AT90S4433 ATtiny48 ATtiny88 ATmega48(P) ATmega8 ATmega88(P) ATmega168(P) ATmega328P | SCKT3200A2 | Green | 2 | SPROG2
ATtiny15 | SCKT3600A1 | Blue | 1 | SPROG1. Connect RST on PORTE to PB5 on PORTB.
ATtiny26* ATtiny261* ATtiny461* ATtiny861* | SCKT3700A1 | Blue | 1 | SPROG1 Connect RST on PORTE to PB7 on PORTB. Connect XT1 on PORTE to PB4 on PORTB
ATmega64 ATmega103 ATmega128 ATmega1281 ATmega2561 AT90CAN32 AT90CAN64 AT90CAN128 | Use the STK501 Top Module
ATmega165 ATmega165P ATmega169 ATmega169P ATmega325 ATmega325P ATmega329 ATmega329P ATmega645 ATmega649 | Use the STK502 Top Module
ATmega640 ATmega1280 ATmega2560 | Use the STK503 Top Module
ATmega1650 ATmega1690 ATmega3250 ATmega3250P ATmega3290 ATmega3290P ATmega6450 ATmega6490 | Use the STK504 Top Module
ATtiny24 ATtiny44 ATtiny84 | Use the STK505 Top Module
AT90PWM2 AT90PWM2B AT90PWM3 AT90PWM3B | Use the STK520 Top Module
AT90USB646 AT90USB647 AT90USB1286 AT90USB1287 | Use the STK525 Top Module
AT90USB82 | AT90USB162 | Use the STK526 Top Module
AT86RF401 | No socket support. External ISP-programming support through the AT86RF401-EK1 evaluation kit.

*This device is also supported on the STK505 Top Module

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

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.

See Also

  • STK500 Starter Kit User's Guide
  • STK500 Block Diagram
  • Description of User_LEDs
  • Description of User Switches
  • Connection of LEDs and Switches
  • Port Connectors
  • Description of User RS232 Interface
  • Description of Dataflash Pins
  • Target Socket Section
  • High Voltage Programming
  • Parallell High Voltage Programming
  • Serial High Voltage Programming
  • Jumper Settings
  • Target VCC Settings, TVCC
  • Analog Reference Voltage, AREF
  • Reset Settings, RESET
  • Clock Settings, XTAL1 and OSCSEL
  • BSEL2 Jumper
  • Expansion Connectors
  • Prog Ctrl and Prog Data Headers
  • Misc


STK500 User's Guide: High Voltage Programming

High Voltage Programming

For High-Voltage programming a 12V programming voltage is applied to the RESET pin of the AVR device. All AVR devices can be programmed with High-Voltage programming, and the target device can be programmed while it is mounted in its socket.

Two different methods are used for High-Voltage programming: 8-pin parts use a serial programming interface, while other parts use a parallel programming interface. The programming signals are routed to the correct pins of the target device using the cables supplied with STK500.

The table below summarizes the programming method and special considerations when using High-Voltage programming.

AVR devices | STK500 socket | Color | Number | High voltage programming method
AT90S1200 AT90S2313 ATtiny2313 | SCKT3300D3 | Red | 3 | Parallel High-Voltage programming. Connect PROG CTRL header to PORTD and PROG DATA to PORTB as shown in the figure in section "Parallell High-Voltage Programming"
AT90S4414 AT90S8515 | SCKT3000D3 | Red | 3
AT90S4434 AT90S8535 | SCKT3100A3 | Red | 3
ATtiny28 | SCKT3500D- | None | -
ATmega161 ATmega162 ATmega8515 | SCKT3000D3 | Red | 3 | Parallel programming as above, mount the BSEL2 jumper. See section BSEL2 Jumper.
ATmega16 ATmega163 ATmega164P ATmega32 ATmega323 ATmega324P ATmega644 ATmega644P ATmega1284P ATmega8535 | SCKT3100A3 | Red | 3
AT90S2333 AT90S4433 | SCKT3200A2 | Green | 2 | Parallel programming as above, mount PJUMP jumpers. See section PJUMP Jumpers.
ATtiny48 ATtiny88 ATmega48(P) ATmega8 ATmega88(P) ATmega168(P) ATmega328P | SCKT3200A2 | Green | 2 | Parallel programming as above, mount PJUMP jumpers, and mount BSEL2 terminal to PC2. See section BSEL2 Jumper, and section PJUMP Jumpers.
AT90S2323 AT90S2343 ATtiny11 ATtiny12 ATtiny13 ATtiny22 ATtiny25 ATtiny45 ATtiny85 | SCKT3400D1 | Blue | 1 | Serial High-Voltage programming.
ATtiny15 | SCKT3600A1 | Blue | 1
ATtiny26* ATtiny261* ATtiny461* ATtiny861* | SCKT3700A1 | Blue | 1 | Look here for details on how to Parallell High Voltage program an ATtiny26. Special cabling is required. *Alternatively use the STK505 Top Module.
ATmega64 ATmega103 ATmega128 ATmega1281 ATmega2561 AT90CAN32 AT90CAN64 AT90CAN128 | Use the STK501 Top Module. See the STK501 user guide
ATmega165 ATmega165P ATmega169 ATmega169P ATmega325 ATmega325P ATmega329 ATmega329P Tmega645 ATmega649 | Use the STK502 Top Module. See the STK502 user guide
ATmega640 ATmega1280 ATmega2560 | Use the STK503 Top Module. See the STK503 user guide
ATmega1650 ATmega1690 ATmega3250 ATmega3250P ATmega3290 ATmega3290P ATmega6450 ATmega6490 | Use the STK504 Top Module. See the STK504 user guide
ATtiny24 ATtiny44 ATtiny84 ATtiny26* ATtiny461* ATtiny861* | ATtinyX4, use the green section of the STK505 Top Module. ATtinyX6, use the blue section of the STK505 Top Module. See the STK505 user guide *ATtinyX6 also fits directly on the STK500, but requires special strapping.
AT90PWM2 AT90PWM2B AT90PWM3 AT90PWM3B AT90PWM216 AT90PWM316 |  |  | Use the STK520 Top Module.
AT90USB646 AT90USB647 AT90USB1286 AT90USB1287 | Use the STK525 Top Module.
AT90USB82 AT90USB162 |  | Use the STK526 Top Module

*This device is also supported on the STK505 Top Module for easier strapping

See Also

  • STK500 Starter Kit User's Guide
  • STK500 Block Diagram
  • Description of User_LEDs
  • Description of User Switches
  • Connection of LEDs and Switches
  • Port Connectors
  • Description of User RS232 Interface
  • Description of Dataflash Pins
  • Target Socket Section
  • ISP Programming
  • Parallell High Voltage Programming
  • Serial High Voltage Programming
  • Jumper Settings
  • Target VCC Settings, TVCC
  • Analog Reference Voltage, AREF
  • Reset Settings, RESET
  • Clock Settings, XTAL1 and OSCSEL
  • BSEL2 Jumper
  • Expansion Connectors
  • Prog Ctrl and Prog Data Headers
  • Misc


STK500 User's Guide: Parallel High Voltage Programming

Parallel High Voltage Programming

To use High-Voltage programming the programming signal must be routed to the AVR I/O pins. The two 10-wire cables supplied with the STK500 can be used to connect the PROG DATA header to the PORTB header and connecting the PROG CTRL header to the PORTD header as shown below.

Some of the jumper settings on STK500 must be changed when using High-Voltage programming. The next figure explains these jumper settings.

HW setup for Parallel High-Voltage programming:

  1. Switch power off
  2. Place the device to program in its socket according to table in the "High Voltage Programming" section.
  3. Connect the headers PROGDATA and PORTB with the 10-wire cable
  4. Connect the headers PROGCTRL and PORTD with the 10-wire cable
  5. Mount jumper OSCSEL on pin 1 and 2 to select SW controlled clock
  6. Mount jumper XTAL1 to route the oscillator signal to the device
  7. Mount jumpers VTARGET and RESET
  8. When programming AT90S2333, AT90S4433, ATtiny48, ATtiny88, ATmega48, ATmega8, ATmega88 or ATmega168, mount both PJUMP jumpers. The 2-wire cables can be used instead of jumpers. See PJUMP Jumpers.
  9. Connect BSEL2 for the devices that requires that. See BSEL2 Jumper.
  10. Disconnect target system
  11. Switch power on
  12. Ensure that VTarget is between 4.5V and 5.5V before programming.

For complete description of jumper settings, see section "Jumper settings".

Note: Remove the HW setup for High-Voltage programming before starting a debug session.

See Also

  • STK500 Starter Kit User's Guide
  • STK500 Block Diagram
  • Description of User_LEDs
  • Description of User Switches
  • Connection of LEDs and Switches
  • Port Connectors
  • Description of User RS232 Interface
  • Description of Dataflash Pins
  • Target Socket Section
  • ISP Programming
  • High Voltage Programming
  • Serial High Voltage Programming
  • Jumper Settings
  • Target VCC Settings, TVCC
  • Analog Reference Voltage, AREF
  • Reset Settings, RESET
  • Clock Settings, XTAL1 and OSCSEL
  • BSEL2 Jumper
  • Expansion Connectors
  • Prog Ctrl and Prog Data Headers
  • Misc


STK500 User's Guide: Serial High Voltage Programming

Serial High Voltage Programming

The 8 pin AVRs have too few pins to use parallel communication during High-Voltage programming. They use serial communcation instead. This means that less signals have to be routed. HW setup for serial High-Voltage programming is:

  1. Switch power off
  2. Place the device to program in its socket according to the table in the High Voltage Programming section.
  3. Mount jumper OSCSEL on pin 1 and 2 to select SW controlled clock
  4. Mount jumper XTAL1 to route the oscillator signal to the device
  5. Mount jumpers VTARGET and RESET
  6. Use on 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.
  7. Use another 2-wire cable to connect the PB5 pin (pin 6) on the PORTB header to the RST pin (pin 4) on the PORTE / AUX header. This will connect the reset system to the AVR device.
  8. Use a third 2-wire cable to connect the PB0 and PB2 pins (pins 4 and 3) on the SPROG1 header to the DATA0 and DATA2 pins (pins 1 and 3) on the PROG DATA header.
  9. Use the last 2-wire cable to connect the PB1 pin (pin 1) on the SPROG1 header to the DATA1 pin (pin 2) on the PROG DATA header.
  10. Switch power on and you are ready to program
  11. Ensure that VTarget is between 4.5V and 5.5V before programming.

All connections are shown the figure below.

See Also

  • STK500 Starter Kit User's Guide
  • STK500 Block Diagram
  • Description of User_LEDs
  • Description of User Switches
  • Connection of LEDs and Switches
  • Port Connectors
  • Description of User RS232 Interface
  • Description of Dataflash Pins
  • Target Socket Section
  • ISP Programming
  • High Voltage Programming
  • Parallell High Voltage Programming
  • Jumper Settings
  • Target VCC Settings, TVCC
  • Analog Reference Voltage, AREF
  • Reset Settings, RESET
  • Clock Settings, XTAL1 and OSCSEL
  • BSEL2 Jumper
  • Expansion Connectors
  • Prog Ctrl and Prog Data Headers
  • Misc


STK500 User's Guide: Jumper Settings

Jumper Settings

A master MCU and 8 jumpers control the hardware settings of the starter kit. During normal operation these jumpers should be mounted in the default position. To configure the starter kit for advanced use the jumpers can be removed or set to new positions. The jumper settings and usage are explained in the following section. The default setting of the jumpers are shown in the figure below.

Jumper | Description of default setting
VTARGET: | On-board VTARGET supply connected
AREF: | On-board Analog Voltage Reference connected
RESET: | On-board reset system connected
XTAL1: | On-board clock system connected
OSCSEL: | On-board oscillator selected
BSEL2: | Unmounted. See BSEL2 Jumper for a list over devices that requires this mounted
PJUMP: | Unmounted. See PJUMP Jumpers for a list over devices that requires this mounted

See Also

  • STK500 Starter Kit User's Guide
  • STK500 Block Diagram
  • Description of User_LEDs
  • Description of User Switches
  • Connection of LEDs and Switches
  • Port Connectors
  • Description of User RS232 Interface
  • Description of Dataflash Pins
  • Target Socket Section
  • ISP Programming
  • High Voltage Programming
  • Parallell High Voltage Programming
  • Serial High Voltage Programming
  • Target VCC Settings, TVCC
  • Analog Reference Voltage, AREF
  • Reset Settings, RESET
  • Clock Settings, XTAL1 and OSCSEL
  • BSEL2 Jumper
  • Expansion Connectors
  • Prog Ctrl and Prog Data Headers
  • Misc


STK500 User's Guide: Target VCC Settings, VTARGET

Target VCC Settings, VTARGET

VTARGET controls the supply voltage to the target AVR microcontroller sockets. It can either be controlled from AVR Studio or supplied from an external source. If the VTARGET jumper is mounted, the On-board supply voltage is connected. The On-board supply voltage can be adjusted to 0 - 6V from AVR Studio. Always verify the respective datasheet for the AVR device operating voltage before adjusting VTARGET voltage.

Using the on-board supply voltage, approximately 0.5A can be delivered to the target section. See STK500 Block Diagram to understand what is covered by target section.

If the VTARGET jumper is disconnected, target VCC must be supplied from an external source at one of the VTG pins on the PORT headers. The figure below explains VTARGET jumper options.

When using an external source for VTARGET, the user must control that VTARGET is at a higher voltage level than AREF (Analog Reference Voltage). Always connect common ground (GND) when using an external VTARGET voltage.

The STK500 master MCU controls the target voltage using the internal PWM, Figure 3- 22 below shows the internal connection of the VTARGET signal.

Note: The green LED will light when there is a voltage available on the VTG net. It’s impossible to use the debug or programming area of STK500 without VTG.

The internal VTarget has a short circuit protection. If VTarget is set to be higher than 0.3V and the Master MCU measures it to be below 0.3V for a duration of 80 ms, the Master MCU will shut off the VTarget and the Internal AREF. When this happens, the status LED will blink quickly.

If an external VTarget is used and the external VTarget is turned off, this will also be detected by the STK500 as a (false) short circuit. The latter case can be avoided by lowering the internal VTarget below 0.3V.

See Also

  • STK500 Starter Kit User's Guide
  • STK500 Block Diagram
  • Description of User_LEDs
  • Description of User Switches
  • Connection of LEDs and Switches
  • Port Connectors
  • Description of User RS232 Interface
  • Description of Dataflash Pins
  • Target Socket Section
  • ISP Programming
  • High Voltage Programming
  • Parallell High Voltage Programming
  • Serial High Voltage Programming
  • Jumper Settings
  • Analog Reference Voltage, AREF
  • Reset Settings, RESET
  • Clock Settings, XTAL1 and OSCSEL
  • BSEL2 Jumper
  • Expansion Connectors
  • Prog Ctrl and Prog Data Headers
  • Misc


STK500 User's Guide: Analog Reference Voltage, AREF

Analog Reference Voltage, AREF

The Analog Reference voltage (AREF) can supply the reference voltage to the on-chip A/D converter on the AVR. If the AREF jumper is mounted, the on-board Analog Reference voltage is connected to the AVR’s AREF. The On-board Analog Reference voltage can be adjusted from AVR Studio to 0 - 6.0V, but not above VTARGET.

When the AREF jumper is disconnected, AREF voltage must be supplied from an external source at the AREF pin on the PORTE/AUX header. The figure below explains AREF jumper options.

When using external an source for AREF, the user must control that VTARGET is at a higher voltage level than AREF. This can be controlled easily by reading the VTG value from AVR Studio before setting AREF.

The STK500 master MCU controls the Analog Reference Voltage using the internal PWM. The AVR’s AREF signal is also accessible on the PORTE header; this pin can also be used for external AREF signal. The figure below shows the internal connection of the AREF signal.

The AVR Studio controlled Analog Reference Voltage can also be used as an input to the analog comparator or for ADC measurements on the AVR. AVR’s AREF signal can then be connected to VTG.

The internal AREF has a short circuit protection. If an AREF value is set up to be higher than 0.3V and the Master MCU measures it to be below 0.3V for a duration of 80 ms, the master MCU will shut off the AREF. When this happens, the status LED will blink slowly.

The AREF will also be shut down by the Master MCU if a short circuit is detected on VTarget (in addition to shutting down VTarget). In this case, the status LED will blink quickly.

See Also

  • STK500 Starter Kit User's Guide
  • STK500 Block Diagram
  • Description of User_LEDs
  • Description of User Switches
  • Connection of LEDs and Switches
  • Port Connectors
  • Description of User RS232 Interface
  • Description of Dataflash Pins
  • Target Socket Section
  • ISP Programming
  • High Voltage Programming
  • Parallell High Voltage Programming
  • Serial High Voltage Programming
  • Jumper Settings
  • Target VCC Settings, TVCC
  • Reset Settings, RESET
  • Clock Settings, XTAL1 and OSCSEL
  • BSEL2 Jumper
  • Expansion Connectors
  • Prog Ctrl and Prog Data Headers
  • Misc


STK500 User's Guide: Reset Settings, RESET

Reset Settings, RESET

The RESET jumper controls the RESET signal to the STK500. When the RESET jumper is mounted, the master MCU controls the RESET signal of the AVR. When the RESET jumper is not mounted, the RESET signal is disconnected. This is useful for prototype applications with an external reset system.

The RESET jumper must always be mounted when High-Voltage programming an AVR device. When using an external reset system it must allow the reset line to be controlled by the master MCU reset system during programming. The RESET button is disconnected if the RESET jumper is not mounted. The figure below explains the RESET jumper options.

The STK500 master MCU controls the RESET signal to the target AVR. The RESET signal is accessible on the PORTE/AUX header; this pin can also be used for external RESET signal. The figure below shows the internal connection of the RESET signal.

Note: During High-Voltage Programming, STK500 applies 12V to the AVR’s RESET line. Thus, an external reset circuit not capable of handling this must be disconnected before High-Voltage programming the AVR.

When connected to an external system, there is often an external pullup resistor connected to the reset line. A typical reset connection is shown in the Figure.

Figure. External Reset Connection

If the external pullup resistor is too low (<4.7k), STK500 will not be able to pull the RESET line low.

See Also

  • STK500 Starter Kit User's Guide
  • STK500 Block Diagram
  • Description of User_LEDs
  • Description of User Switches
  • Connection of LEDs and Switches
  • Port Connectors
  • Description of User RS232 Interface
  • Description of Dataflash Pins
  • Target Socket Section
  • ISP Programming
  • High Voltage Programming
  • Parallell High Voltage Programming
  • Serial High Voltage Programming
  • Jumper Settings
  • Target VCC Settings, TVCC
  • Analog Reference Voltage, AREF
  • Clock Settings, XTAL1 and OSCSEL
  • BSEL2 Jumper
  • Expansion Connectors
  • Prog Ctrl and Prog Data Headers
  • Misc


STK500 User's Guide: Clock Settings, XTAL1 and OSCSEL

Clock Settings, XTAL1 and OSCSEL

STK500 includes several clock options for the target AVR. Setting the jumpers XTAL1 and OSCSEL controls the clock selections. OSCSEL determines what signal to route to the XTAL1 pin of the AVR.

When XTAL1 jumper is connected, the STK500 internal clock system is used as main clock to the target AVR. When XTAL1 jumper is not mounted, the internal clock system is disconnected. This allows external clock signals or crystals to be used as target clock source for the AVR. The figure below explains the XTAL1 jumper option.

When the XTAL1 jumper is not mounted, an external clock source or crystal can be connected to the PORTE header. This is shown in the figure on the bottom of the page.

When the XTAL1 jumper is mounted, the STK500 internal clock system is used as main clock to the target AVR. The internal clock system can either use a crystal in the on-board crystal socket, or a software generated clock from the master MCU. The frequency of the software generated clock can be set from 0 to 3.68Mhz. The default value is 3.68Mhz. Section "Oscillator" explains how to set the clock frequency from AVR Studio.

When using the STK500 software generated clock system as main clock, the target AVR microcontroller fuses should be configured for "external clock" as clock source. This gives shortest start-up time for the microcontroller. For details of start-up time, see the datasheet for the AVR microcontroller. Explanation of clock source fuses configuration, see "Fuse settings". Not all AVR devices have fuses for selection between using a crystal or oscillator as clock source.

The internal clock system is selected with the OSCSEL jumper. The figure at the bottom of the page explains the jumper options for OSCSEL.

The On-board oscillator will work with ceramic resonators or crystals between 2-20MHz (AT-cut, fundamental, and parallel resonant crystals).

When programming AVR in High-Voltage programming mode, OSCSEL should be mounted on pin 1 and 2 to give the master MCU control of the target clock. This is explained in detail in High Voltage Programming.

Note: In a real application with only one AVR connected to the crystal, there is no need for an external oscillator circuit. The STK500 has 8 different AVR sockets connected to the same clock system. The long signal lines in this system makes it difficult to drive a crystal with the on-chip oscillators on the AVR. The oscillator on STK500 is designed to operate on all target voltages from 1,8 to 6,0 V.

See Also

  • STK500 Starter Kit User's Guide
  • STK500 Block Diagram
  • Description of User_LEDs
  • Description of User Switches
  • Connection of LEDs and Switches
  • Port Connectors
  • Description of User RS232 Interface
  • Description of Dataflash Pins
  • Target Socket Section
  • ISP Programming
  • High Voltage Programming
  • Parallell High Voltage Programming
  • Serial High Voltage Programming
  • Jumper Settings
  • Target VCC Settings, TVCC
  • Analog Reference Voltage, AREF
  • Reset Settings, RESET
  • BSEL2 Jumper
  • Expansion Connectors
  • Prog Ctrl and Prog Data Headers
  • Misc


STK500 User's Guide: BSEL2 Jumper

BSEL2 Jumper

The BSEL2 jumper connects the Byte Select 2 signal for high-voltage programming of the devices listed below.

The BSEL2 jumper should be mounted when high-voltage programming:

  • ATmega8515

  • ATmega8535

  • ATmega16

  • ATmega161

  • ATmega162

  • ATmega163

  • ATmega164P

  • ATmega165

  • ATmega165P

  • ATmega1650

  • ATmega169

  • ATmega169P

  • ATmega1690

  • ATmega32

  • ATmega324P

  • ATmega325

  • ATmega325P

  • ATmega3250

  • ATmega3250P

  • ATmega329

  • ATmega329P

  • ATmega3290

  • ATmega3290P

  • ATmega323

  • ATmega64

  • ATmega640

  • ATmega644

  • ATmega644P

  • ATmega645

  • ATmega6450

  • ATmega649

  • ATmega6490

  • ATmega103

  • ATmega128

  • ATmega1280

  • ATmega1281

  • ATmega1284P

  • AT90CAN32

  • AT90CAN64

  • AT90CAN128

  • ATmega2560

  • ATmega2561

  • AT90USB162

  • AT90USB646

  • AT90USB647

  • AT90USB1286

  • AT90USB1287

When using ATtiny48, ATtiny88, ATmega48(P), ATmega8, ATmega88(P), ATmega168(P) or ATmega328P connect the right BSEL2 pin to PC2. See Figure 1. For descriptions of the Byte Select 2 signal, see the programming section of the corresponding parts datasheet.

Figure 1. BSEL2 Connection for ATmega48/8/88/168.

See Also

  • STK500 Starter Kit User's Guide
  • STK500 Block Diagram
  • Description of User_LEDs
  • Description of User Switches
  • Connection of LEDs and Switches
  • Port Connectors
  • Description of User RS232 Interface
  • Description of Dataflash Pins
  • Target Socket Section
  • ISP Programming
  • High Voltage Programming
  • Parallell High Voltage Programming
  • Serial High Voltage Programming
  • Jumper Settings
  • Target VCC Settings, TVCC
  • Analog Reference Voltage, AREF
  • Reset Settings, RESET
  • Clock Settings, XTAL1 and OSCSEL
  • Expansion Connectors
  • Prog Ctrl and Prog Data Headers
  • Misc


STK500 User's Guide: PJUMP Jumpers

PJUMP Jumpers

The PJUMP jumpers route the programming pin to the programming lines when using high-voltage programming of:

-AT90S2333

-AT90S4433

-ATmega48(P)

-ATmega8

-ATmega88(P)

-ATmega168(P)

-ATmega328P

-ATtiny48

-ATtiny88

The PJUMP jumpers should be mounted in the "horizontal" direction, i.e. the same direction as e.g. the BSEL2 jumper.

Note: The PJUMP jumpers should only be mounted when using high-voltage programming of these devices. During debugging, high-voltage programming of other parts and ISP programming, these jumpers should not be mounted.

See Also

  • STK500 Starter Kit User's Guide
  • STK500 Block Diagram
  • Description of User_LEDs
  • Description of User Switches
  • Connection of LEDs and Switches
  • Port Connectors
  • Description of User RS232 Interface
  • Description of Dataflash Pins
  • Target Socket Section
  • ISP Programming
  • High Voltage Programming
  • Parallell High Voltage Programming
  • Serial High Voltage Programming
  • Jumper Settings
  • Target VCC Settings, TVCC
  • Analog Reference Voltage, AREF
  • Reset Settings, RESET
  • Clock Settings, XTAL1 and OSCSEL
  • Expansion Connectors
  • Prog Ctrl and Prog Data Headers
  • Misc


STK500 USer's Guide: ATtiny26 High Voltage Programming

ATtiny26/861 High Voltage Programming

The STK500 has two headers for usage when configured for parallel programming. These two headers are labeled ‘PROG DATA’ and ‘PROG CTRL’. For the ATtiny26/861 the cable for the ‘PROG CTRL’ will have to be modified as the shown on the table and drawing below, and the cable from ‘PROG DATA’ will have to be connected to PORTA.

Note: The ATtiny26/861 is also supported by the STK505 Top Module for easier strapping.

Parallell programming pin mapping:
PORTB | PROG CTRL | PORTE
Pin 1 | Pin 3 |
Pin 2 | Pin 4 |
Pin 3 | Pin 5 |
Pin 4 | Pin 6 |
Pin 5 |  | Pin 7 (XT1)
Pin 6 | Pin 8 |
Pin 7 | Pin 7 |
Pin 8 |  | Pin 4 (RST)

Parallell programming Connections:

Note the following :

· PROG DATA must be connected to PORTA on the STK500 target area.

· Do NOT mount the BSEL2 jumper

· The ATtiny26/861 must be placed in the socket SCKT3700A1 on the STK500


STK500 USer's Guide: ATtiny26 High Voltage Programming

ATmega406 Programming

The ATmega406 is supported by STK500 in FW only. This means that the STK500 motherboard nor any top module supports the ATmega406 pinout. And it is only High Voltage Parallel Programming that is support as ATmega406 does not have ISP interface. The primary programming interface for ATmega406 is JTAG, supported by JTAGICE mkII. High Voltage Parallel Programming of ATmega406 is only meant to be used in the case where the JTAG interface is disabled by fuse on the ATmega406.

This section describes which pins from STK500 that must be strapped to the ATmega406 in order to be able to High Voltage Parallel Program the device.

The following jumpers on the STK500 must be mounted:

1 VTARGET

2 RESET

3 XTAL1

4 OSCSEL, between pin 1 and pin 2

5 BSEL2

Connect these pins from STK500 to the ATmega406:

STK500 | ATmega406
PROG DATA [0..7] | PORTB [0..7]
PROG CTRL [1..7] | PORTA [1..7]
PA0 (PORTA) | PA0
RESET (PORTE/AUX) | RESET
XTAL1 (PORTE/AUX) | XTAL1
VTG (4.5-5.5V) | VCC
GND | GND


STK500 User's Guide: Expansion Connectors

Expansion Connectors

STK500 has two expansion connectors, one on each side of the programming module. All AVR I/O ports, programming signals, and control signals are routed to the expansion connectors. The expansion connectors allow easy prototyping of applications with STK500. The pinout of the expansion connectors is shown in the figure below.

Signal Description

The signals AUXI1, AUXI0, AUXO1 and AUXO0 are intended for future use. Do not connect these signals to your application.

The DATA[7:0] and CT[7:1] signals are also found on the Prog Data and Prog Ctrl connectors. These signals and connectors are explained in "Prog Ctrl and Prog Data Headers".

The BSEL2 signal is the same that is found on the BSEL2 jumper. This jumper is explained in BSEL2 Jumper.

The SI, SO, SCK and /CS signals are connected to the dataflash. Use of the dataflash is described in Description of Dataflash Pins.

NC means that this pin is not connected.

The remaining signals are equal to those found on the PORT connectors explained in Port Connectors.

Note: DATA, CT and AUX signals are based on 5V CMOS logic. No voltage conversion to adapt to VTG is done on these signals.

See Also

  • STK500 Starter Kit User's Guide
  • STK500 Block Diagram
  • Description of User_LEDs
  • Description of User Switches
  • Connection of LEDs and Switches
  • Port Connectors
  • Description of User RS232 Interface
  • Description of Dataflash Pins
  • Target Socket Section
  • ISP Programming
  • High Voltage Programming
  • Parallell High Voltage Programming
  • Serial High Voltage Programming
  • Jumper Settings
  • Target VCC Settings, TVCC
  • Analog Reference Voltage, AREF
  • Reset Settings, RESET
  • Clock Settings, XTAL1 and OSCSEL
  • BSEL2 Jumper
  • Prog Ctrl and Prog Data Headers
  • Misc


STK500 User's Guide: Prog Ctrl and Prog Data Headers

Prog Ctrl and Prog Data Headers

The Prog Ctrl and Prog Data headers are used for High-Voltage programming of the target AVR device. The placement of the headers is shown in the figure above. During parallel High-Voltage programming, the Prog Ctrl signals are routed to PORTD of the target device. The Prog Data signals are routed to PORTB. See High Voltage Programming for complete description of High-Voltage programming. The pinouts of the Prog Ctrl and Prog Data headers are shown in the figure below. For more information about High-Voltage programming of AVR devices, see the programming section of each AVR datasheet.

Note: ProgCtrl and Data connector are connected directly to the master MCU without level converters. This means that these signals are always 5V logic.

The Prog Ctrl signals are normally used for the control signals when parallel High-Voltage programming an AVR device. The Prog Data signals are used for the data bus when parallel High-Voltage programming an AVR device. During ISP programming DATA5 is as MOSI, DATA6 is used as MISO and DATA7 is used for SCK.

Note: All Prog Ctrl and Prog Data signals are based on 5V CMOS logic. No voltage conversion to adapt to VTG is done on these signals.

See Also

  • STK500 Starter Kit User's Guide
  • STK500 Block Diagram
  • Description of User_LEDs
  • Description of User Switches
  • Connection of LEDs and Switches
  • Port Connectors
  • Description of User RS232 Interface
  • Description of Dataflash Pins
  • Target Socket Section
  • ISP Programming
  • High Voltage Programming
  • Parallell High Voltage Programming
  • Serial High Voltage Programming
  • Jumper Settings
  • Target VCC Settings, TVCC
  • Analog Reference Voltage, AREF
  • Reset Settings, RESET
  • Clock Settings, XTAL1 and OSCSEL
  • BSEL2 Jumper
  • Expansion Connectors
  • Misc


STK500 User's Guide: Misc

Misc

STK500 has two push buttons and three LEDS for special functions and status indication. The following section explains these features. The figure above shows the placement of these functions.

RESET Push Button

The RESET push button resets the target AVR device when pushed. The master MCU is not controlled by the RESET pushbutton. When the RESET jumper is not mounted the RESET push button is disabled.

PROGRAM Push Button

Future versions of AVR Studio may upgrade the master MCU on STK500. AVR Studio will then detect old software versions of STK500 and update the Flash program memory of the master MCU. To do this the user is required to push the PROGRAM button when powering on STK500. AVR studio issues instructions on how to perform the upgrade during the upgrade process.

Main Power LED

The red power LED is directly connected to the STK500 main power supply. The power LED is always lit when power is applied to STK500.

Target Power LED

The target power LED is connected to Vcc lines (VTG) on the target AVR devices in the sockets. The target power LED is lit when power is applied to the target AVR device.

Status LED

The PROGRAM LED is a three-color LED. During programming the LED has yellow color. When the target AVR device is successfully programmed the LED will turn green. If programming fails the LED will turn red to indicate that programming failed. When programming fails check the troubleshooting guide. During start up the status LED will shift from red, through yellow to green to indicate that the master MCU is ready.

See Also

  • STK500 Starter Kit User's Guide
  • STK500 Block Diagram
  • Description of User_LEDs
  • Description of User Switches
  • Connection of LEDs and Switches
  • Port Connectors
  • Description of User RS232 Interface
  • Description of Dataflash Pins
  • Target Socket Section
  • ISP Programming
  • High Voltage Programming
  • Parallell High Voltage Programming
  • Serial High Voltage Programming
  • Jumper Settings
  • Target VCC Settings, TVCC
  • Analog Reference Voltage, AREF
  • Reset Settings, RESET
  • Clock Settings, XTAL1 and OSCSEL
  • BSEL2 Jumper
  • Expansion Connectors
  • Prog Ctrl and Prog Data Headers


STK500 User's Guide: Using AVR Studio with STK500

Using AVR Studio with STK500

The programming tool in AVR Studio is the frontend for STK500. The tool can be used to program devices placed in the target section of STK500, and also external devices. It can also set the various hardware settings as clock frequency, target voltage etc.

For more information, see Programming Dialog section in AVR Studio user's guide.

See Also
  • STK500 Starter Kit User's Guide


STK500 User's Guide: Command Line Software

Command Line Software

The DOS command line version of the STK500 software is useful for programming STK500 from external editors or for use in production programmers. Simple batch files can be made for automatic programming. Type STK500 -? for help.

Note: There should be no space between the parameter literal and the argument for any of the command line parameters that takes sub arguments. I.E. it should be -dAT90S8518 and not -d AT90S8515.

The program returns ERRORCODE 0 if the operation was successful, and ERRORCODE 1 if the operation failed.

Command Line Switches:

[-d device name] [-m s|p|d] [-if infile] [-ie infile] [-of outfile]

[-oe outfile] [-s] [-O address] [-Sf addr] [-Seaddr] [-e] [-p f|e|b]

[-r f|e|b] [-v f|e|b] [-l value] [-L value] [-y] [-f value] [-E value]

[-F value] [-G value] [-q] [-Y] [-Z address] [-c port] [-ut value]

[-Wt value] [-ua value] [-wt] [-wa] [-b h|s] [-! freq] [-t] [-I freq]

[-J] [-h] [-XE value] [-XV value] [-?]

Examples:

STK500.EXE -dATmega128 -e -ifFlash.hex -pf -vf

STK500.EXE -dATmega128 -fF73A -FF73A -EFF -GFF

Note that there are no spaces between switches and their parameters

and that hexadecimal values do not have a '0x' prefix.

Parameters:

d Device name. For a list of supported devices use STK500.EXE -?

m Select programming mode; serial (s), parallel/high-voltage (p) or

pdi(d).

Serial mode is the default mode if this parameter is ommitted.

ip Name of ELF input file. Required for programming or verification

of ALL memory types. The file format is AVR-8 bit ELF.

if Name of FLASH or user signature input file. Required for programming or

verification of the FLASH or user signature memory. The file format is

Intel Extended HEX.

ie Name of EEPROM input file. Required for programming or verification

of the EEPROM memory. The file format is Intel Extended HEX.

of Name of flash or user/production signature output file. Required for

readout of the FLASH or user/production signature memory.

The file format is Intel Extended HEX.

oe Name of EEPROM output file. Required for readout of the EEPROM

memory. The file format is Intel Extended HEX.

s Read signature bytes.

O Read oscillator callibration byte. 'address' is the address of the

calibration byte as decribed in the data sheet of the device.

Sf Write oscillator call. byte to FLASH memory. 'addr' is byte address

Se Write oscillator call. byte to EEPROM memory. 'addr' is byte address

e Erase device. If applied with another programming parameter, the

device will be erased before any other programming takes place.

p Program device; ALL memory types (a), FLASH (f), EEPROM (e), both (b) or

user signature (u). Corresponding input files are required.

r Read out device; FLASH (f), EEPROM (e), both (b), user signature (u) or

production signature (p). Corresponding output files are required

v Verify device; ALL memory types (a), FLASH (f), EEPROM (e) or both (b).

Can be used with -p or stand alone. Corresponding input files are required.

l Set lock byte. 'value' is an 8-bit hex. value.

L Verify lock byte. 'value' is an 8-bit hex. value to verify against.

y Read back lock byte.

f Set fuse bytes. 'value' is a 16-bit hex. value describing the

settings for the upper and lower fuse.

E Set extended fuse byte. 'value' is an 8-bit hex. value describing the

extend fuse settings.

XE Set xmega fuse bytes 4 and 5. 'value' is a 16-bit hex. value describing the

settings for last 2 xmega fuses.

XV Verify xmega fuse bytes 4 and 5. 'value' is a 16-bit hex value to verify

against.

F Verify fuse bytes. 'value' is a 16-bit hex. value to verify against.

G Verify extended fuse byte. 'value' is an 8-bit hex. value describing

the extend fuse settings.

q Read back fuse bytes.

af FLASH address range. Specifies the address range of operations. The

default is the entire FLASH. Addresses are byte oriented.

ae EEPROM address range. Specifies the address range of operations.

The default is the entire EEPROM. Byte addresses.

Y Perform the oscillator calibration sequence. See appnote AVR053 for more

information.

Z Loads a value from an EEPROM location prior to chip erase which then

can be programmed into FLASH or EEPROM using the S option. Address is

a hex value. See appnote AVR053 for more information.

c Select communication port; 'COM1' to 'COM8' for STK500 or AVRISP, 'USB'

or 'USB:<sernum>' for AVRISP mkII. If this parameter is ommitted the

program will scan the COM ports for STK500/AVRISP only.

ut Set target voltage VTARGET in Volts. 'value' is a floating point

value between 0.0 and 6.0, describing the new voltage.

ua Set adjustable voltage AREF in Volts. 'value' is a floating point

value between 0.0 and 6.0, describing the new voltage.

wt Get current target voltage VTARGET.

wa Get current adjustable voltage AREF.

Wt Verify that VTARGET is within 5% of the given value. 'value' is a

floating point value between 0.0 and 6.0.

b Get revisions; hardware revision (h) and software revision (s).

! Set oscillator frequency; 'freq' can be whole Hz, or kHz or MHz

t Get oscillator frequency.

I Set ISP frequency; 'freq' can be whole Hz, or kHz or MHz

J Get ISP frequency.

g Silent operation.

z Not used. Supported for backwards compability.

h Help information (overrides all other settings)

Supported devices:

To display supported devices type "STK500.EXE -?"

Example 1:

stk500 -dAT90S8515 -e -pf -if8515test.hex

Description:

stk500 Runs the file stk500.exe

-dAT90S8515 Set device to AT90S8515

-e Erase flash

-if8515test.hex Selects file "8515test.hex" to be programmed into flash

-pf Program flash (with the selected file above)

Example 2:

stk500 -ccom1 -ut4.5 -ua4.5 -!3686000 -I460800 -dATMEGA8515 -lFF -fD9E4 -ms -ifC:\input.hex -pf -vf -e

Description:

stk500            Runs the file stk500.exe

-ccom1 Select comport #1

-ut4.5 Set the target voltage (4.5V)

-ua4.5 Set the Analog reference voltage (4.5V)

-!3686000 Set STK500 clock frequency to 3.68MHz

-I460800 Set ISP frequency to 460.8kHz

-dATMEGA8515 Set device to ATmega8515. Type "stk500.exe -h" to see all supported devices

-e Erase flash

-lFF Set lockbits to 0xFF

-fD9E4 Set fuses to 0xD9E4, High byte 0xD9, Low Byte 0xE4

-ms Select serial programming mode

-ifC:\input.hex Selects file "input.hex" to be programmed into flash

-pf Program flash (with the selected file above)

-vf Verify flash (with the selected file above)

Example 3:

STK500.EXE -dATmega128 -e -ipmyfile.elf -pa -va

Description:

stk500 Runs the file stk500.exe

-dATmega128 Set device to ATmega128

-e Erase flash

-ipmyfile.elf Selects file "myfile.elf" to be programmed

-pa Program all memory types stored in the above elf file.

-va Verify all memory types programmed.

See Also

  • STK500 Starter Kit User's Guide
  • Starting STK500


STK500 User's Guide: Example Application: Using LEDs and Switches

Example Application: Using LEDs and Switches

Connect PORTB to LEDS and PORTD to SWITCHES. LEDS will operate differently depending on what switch is pressed.

Tip: Copy the code from this document into AVR Studio

;***** STK500 LEDS and SWITCH demonstration
.include "8515def.inc"
.def Temp =r16 ; Temporary register
.def Delay =r17 ; Delay variable 1
.def Delay2 =r18 ; Delay variable 2
;***** Initialization
RESET:
    ser	Temp
    out	DDRB,Temp		; Set PORTB to output
;**** Test input/output
LOOP:
    out	PORTB,temp		; Update LEDS
    sbis	PIND,0x00		; If (Port D, pin0 == 0)
    inc	Temp			; then count LEDS one down
    sbis	PIND,0x01		; If (Port D, pin1 == 0)
    dec	Temp			; then count LEDS one up
    sbis	PIND,0x02		; If (Port D, pin2 == 0)
    ror	Temp			; then rotate LEDS one right
    sbis	PIND,0x03		; If (Port D, pin3 == 0)
    rol	Temp			; then rotate LEDS one left
    sbis	PIND,0x04		; If (Port D, pin4 == 0)
    com	Temp			; then invert all LEDS
    sbis	PIND,0x05		; If (Port D, pin5 == 0)
    neg	Temp			; then invert all LEDS and add 1
    sbis	PIND,0x06		; If (Port D, pin6 == 0)
    swap	Temp			; then swap nibbles of LEDS
    ;**** Now wait a while to make LED changes visible.
    DLY:
    dec	Delay
    brne	DLY
    dec	Delay2
    brne	DLY
    rjmp	LOOP			; Repeat loop forever

See Also

  • STK500 Starter Kit User's Guide


STK500 User's Guide: In-System Programming of an External Target System

In-System Programming of an External Target System

The STK500 can be used as a programmer to program AVR devices in other applications. There are two different ISP connector pin-outs available, a 6-pin and a 10-pin version. Both are supported by STK500.

Select the device to be programmed in the same way as programming a device on STK500. The VCC of the target application is detected by STK500 and signals are converted into voltage levels suitable for the target system.

Note: If the other application has its own power supply, the jumper VTARGET must be removed before connecting STK500 to the other application. STK500 may be damaged if the VTARGET jumper is not removed.

See Also

  • STK500 Starter Kit User's Guide


STK500 User's Guide: Manual Firmware Upgrade

STK500 Manual Firmware Upgrade
The current version of AVR Studio will automatically detect any old STK500 firmware version and request the user to upgrade the firmware. If for some reason the upgrade fails (the serial cable is detached during upgrade, the power goes out, ...) the next time the AVR Studio tries to connect to the STK500, the board will not be detected and the automatic upgrade procedure will not start.

Following is a procedure on how to manually upgrade a STK500 board. This procedure should work in all cases:

  1. Power off the STK500
  2. Push the 'PROGRAM' button while powering up the STK500
  3. Start AVR Studio and make sure there is a serial connection between the PC and the STK500 DSUB9 marked 'RS232 CTRL'
  4. Start the program 'Avr Prog' located in the AVR Studio 'Tools' menu
  5. Locate the firmware upgrade hex-file 'stk500.ebn' by pushing the 'Browse'-button in the 'Avr Prog Hex File'-window. The path for the 'stk500.ebn' for a normal AVR Studio installation is "C:\Program Files\Atmel\AVR Tools\STK500".
  6. Push the 'Program'-button in the 'Avr Prog Flash'-window. A progress bar will now appear while showing additional information messages. Wait until the verify operation is finished.
  7. Close the 'Avr Prog' program
  8. Power off and on the STK500 PCB. The STK500 is now ready to be used with the new firmware.

See Also

Return to Main Index


STK500 User's Guide: Troubleshooting Guide

Troubleshooting Guide
Problem | Reason | Solution
The RED power LED is not ON | The DC power cable is not connected | Connect the DC power cable to the DC jack (see "Quick Start").
 | Wrong power supply is used | Check that the power supply is of DC type 10-15V, min 500mA. (see "Quick Start").
 | The power switch is OFF | Turn on the power switch
The preprogrammed example code does not toggle the LEDS | There is no AVR device in the socket | Plug the AVR device into the right socket (see "ISP Programming" and "High Voltage Programming")
 | The LEDS are not connected to the I/O ports | Connect the LEDS header to the PORTD header, and SWITCHES header to PORTB header (see "Connection of LEDs and Switches")
 | The flash memory is erased | Connect STK500 to a PC and reprogram the AVR device (see "Programming the Target AVR Device")
The AVR device can not be programmed | The PC serial cable is not connected | Connect the serial cable to the PC COM port and the RS232 CTRL port
 | The AVR device is inserted in wrong socket | Check the correct socket is used (see "ISP Programming" and "High Voltage Programming")
 | The AVR device is inserted with wrong orientation | Check that the notch on the AVR socket matches the notch on the AVR device.
 | The target ISP header is not connected | Connect the 6-pin flexible cable from ISP6PIN header to the correct SPROG target ISP header (see "ISP Programming")
 | The jumpers settings are wrong | Set jumper to default setup (see "Jumper Settings")
 | The VTARGET voltage is too low | Check the AVR datasheet for minimum operating voltage
 | The memory lock bits are programmed | Erase the memory before programming
 | Reset disable fuse is set. | Check reset disable fuse.
 | Programming too fast. | Check STK500 oscillator settings and make sure it is not set higher than target clock.
 | CKDIV fuse is set. | Reduce ISP programming speed
 | External pullup resistor on reset line too low. | Ensure that external pullup resistor is ≥4.7kOhm.
AVR studio does not detect STK500 | Serial cable is not connected, or power is off | Connect serial cable to RS232 CTRL and check power connections
 | PC COM port is in use | Disable other programs that are using PC COM port
 |  | Change PC COM port
STK500 cannot be switched off. | Positive center power connector is used. | Use negative center power connector. Turn off STK500 by removing power connector.
The status LED is blinking slowly | There is a short circuit on AREF | Resolve the short circuit.
The status LED is blinking quickly. | There is a short circuit on VTarget. | Resolve the short circuit.
 | An external VTarget is being used and has been turned off. | Set VTarget to a value below 0.3V in AVR Studio.
ATtiny13 programming does not work. | Start-up time is set too short | Please read here for further details.
The LEDs don’t work (running from external VTarget.) | STK500 must be powered for LEDs to work. | Supply poser to STK500 and turn it on.

See Also

  • STK500 Starter Kit User's Guide


ATtiny13 Fuse Bits Issues

ATtiny13 Programming Issues

The following note apply for ATtiny13 earlier than revision D only.

Please note that the ATtiny13 E.S. (Engineering Sample) earlier than rev D has an errata concerning special combinations of fuse bits causing the device to lock for further programming. The following combinations of settings/fuse bits will cause this effect:

Oscillator Setting | Start-up Time Setting | Debugwire and Reset Setting
128KHz internal CKSEL[1..0] = 11 | Shortest SUT[1..0]= 00 | Debugwire = Enabled (DWEN = 0) OR Reset = Disabled (RSTDISBL = 0)
9.6 MHz internal CKSEL[1..0] = 10 | Shortest SUT[1..0]= 00 | Debugwire = Enabled (DWEN = 0) OR Reset = Disabled (RSTDISBL = 0)
4.8 MHz internal CKSEL[1..0] = 01 | Shortest SUT[1..0]= 00 | Debugwire = Enabled (DWEN = 0) OR Reset = Disabled (RSTDISBL = 0)
Problem fix/ Workaround

Avoid the above fuse combinations. Selecting longer start-up time will eliminate the problem.

Clock sources and pre-scale options

The ATtiny13 has numerous settings for clock sources and pre-scaling of these. Keep in mind that the STK500/AVRISP only is able to program the part using the ISP method if:

(1) The pre-scaled clock source used on the ATtiny13 is higher than 32 kHz.

and

(2) The pre-scaled clock source used on the ATtiny13 is equal to or less than the selected oscillator settings used by the STK500/AVRISP.

Problem fix/ Workaround

Use the High Voltage Serial Programming (HVSP) instead of ISP.


ATtiny2313 Programming Issues

Please note that the ATtiny2313 earlier than rev C has an error in the parallel programming interface. This does not apply to rev C of ATtiny2313 which works OK.

CAUTION: Avoid fuse settings disabling the ISP interface. This will cause the device to lock for further programming.

Clock sources and pre-scale options

The ATtiny2313 has numerous settings for clock sources and pre-scaling of these. Keep in mind that the STK500/AVRISP only is able to program the part using the ISP method if:

(1) The pre-scaled clock source used on the ATtiny2313 is higher than 32 kHz.

and

(2) The pre-scaled clock source used on the ATtiny2313 is equal to or higher than the selected oscillator settings used by the STK500/AVRISP.


ATmega169 Programming Issues

Please note that ISP programming of the ATmega169 EEPROM with a hex-file containing continuous bytes of 0xFF will fail.

Workaround: Using ISP programming, erase EEPROM before programming, and program only bytes with values different than 0xFF.


STK500 User's Guide: Technical Support

Technical Support

For technical support please contact avr@atmel.com. When requesting technical support for STK500 please include the following information:

  • Version number of AVR Studio. This can be found in AVR studio menu "Help->About"
  • PC processor type and speed
  • PC operating system and version
  • What target AVR device is used (Complete part number)
  • Programming voltage
  • Jumper settings
  • A detailed description of the problem

See Also

  • STK500 Starter Kit User's Guide


Schematic

Schematic and layout

STK500 schematic: STK500.pdf

STK500 component placement: STK500_asm.pdf


ATtiny45 Fuse Issues

It's not possible to read or write the extended fuse byte on ATtiny45 with Serial High Voltage Programming.

Workaround: Use ISP instead.