Building STK500 AVR ISP programmer with USB

A programmer adapter is one of the first things to get when starting with microcontrollers. Luckily, it is not hard to build a working programmer almost for any microcontroller, as there are tons of open source projects.

I decided to make my own an stk500 compatible programmer, which is taken from tuxgraphics.com. I did not look for the same parts as in original schematics but used what is on the desk. As a result, I got a mix of through hole and SMD PCB, which does the job.

avrusb_programmer

Short info about STK500 V2 programmer

This STK500 V2 adapter is a clone of the original AVR STK500 programmer. It works on all leading platforms including Windows, Linux, BSD, and MacOS X. This is mainly because USB to serial converter  –  FT232RL chip has full driver support. Probably the main reason to build it is that the programmer works in AVRstudio where microcontrollers can be programmed fluently from the same IDE. In addition, it works fine with AVRDude – which would be the primary application for Linux users. This clone gained quite significant popularity so you can find many variations – mostly different PCB versions. Therefore, mine is yet another PCB.

STK500 programmer hardware

As I mentioned this is quick build from parts found on the shelf, this isn’t the best PCB. Because it uses a mix of SMD and through hole parts. Anyway, it works as supposed so no problem with that at all. Let’s get into some details. I found an FT232BL chip that wasn’t used in some earlier project, so I decided to use it instead of newer FT232RL. It is a pretty same chip but the older generation. Additionally, you need to use external 6 MHz crystal and a couple more components. Drivers are still supported up to Win 7, so it can be even used actively.

st500sch

Atmega8 is in DIP package which is easier to remove and program with another adapter – which can be a bit problem if building the first programmer at all. Ask friends to program chip or use a dirty parallel port programmer to flash it.

stk500_bottom_pcb

In this programmer, I used a USB mini-B SMD Connector that came to my hands. There are also solder holes left if you decide to solder a USB cable directly. The programmer has ten pin and six pin programmer headers. I usually use six-pin ISP header, so I made cable only for this one.

Flashing Atmega8

As I mentioned – you need to program ATmega8 first before use. Latest firmware for it can be found here.  And don’t forget to set fuse bits correctly. FYI fuse bits in PopnyProg should be as follows:

stk500-fuses-bits

Or pass them to AVRdude as follows:

Low byte: 0xEE;

High byte: 0xE9.

Running programmer on AVRStudio

When running programmer in AVRStudio, select STK500 platform and COM port which was to USB – serial converter assigned. In my case it is COM5. After clicking Connect…  it suggests to upgrade programmer firmware – skip by pressing Cancel as upgrade function won’t work for it. Next screen you’ll see is an STk500 programming dialog where you can select the device and program it.

select-avr-programmer

Just a little note about ISP mode settings! If you are trying to flash new AVR where default 1MHz clock is running, you should select proper ISP frequency as it has to be less than ¼ the target.

stk500-avrstudio-dialog

To flash 1MHz Atmega you should go with 115.2 kHz while 8MHz will do fine with 1.845 MHz.

Download project files: stk500usb

2 Comments:

  1. Why do you use the FT232BL with cristal? Can I use the ft232RL without cristal too?

Leave a Reply

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