A programmer is one of the first things to think of when starting to deal with microcontrollers. Luckily it is not hard to build a fully working programmer almost for any microcontroller as there are tons of open source projects around. So I decided to make an stk500 compatible programmer which is taken from tuxgraphics.com. I chose not to search for the same parts as in original schematics but use what’s on the desk. As a result, I got a mix of through hole and SMD soldered board that works great.
Short info about STK500 V2 programmer
This programmer 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 as USB to serial converter there is an FT232RL chip used with full driver support. Probably main reason to build it is that the programmer works in AVRstudio where microcontrollers can be programmed fluently from the same IDE. Also, it works fine with AVRDude – which would be the primary application for Linux users. This clone gained quite significant popularity so you can find lots of variations – mostly different PCB versions. So mine is yet another one 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.
Atmega8 is in DIP package which is easier to remove and program with other programmer – which can be a bit problem if building first programmer at all. Ask friends to program chip or use dirty parallel port programmer to flash it.
In this programmer, I used a USB miniB 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.
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:
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 device and program it.
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.
To flash 1MHz Atmega you should go with 115.2 kHz while 8MHz will do fine with 1.845 MHz.
Download project files: stk500usb