Penguino AVR as an In System Programmer
|
An In System Programmer is a circuit which can program an external AVR device via one of the available firmware upload methods (SPI, JTAG, etc). The Penguino AVR, having an in-built USB-serial converter, makes an ideal board for an In System Programmer. Many AVR ISPs are available using the simple serial AVR910 protocol as designed by Atmel, and free software such as avrdude support it. The AVR910 protocol is designed to use the SPI programming method, so the inbuilt SPI controller on the Penguino's ATMega32A can be used. The wiring is shown on the right.
The 4 connections, as well as VCC and GND, should be connected to the external AVR's lines with the same name (MISO, MOSI, SCK and RESET).
Firmware
The Penguino adaptation of the AVR910 firmware is written in C, using the AVR910/AVR911 application notes as a reference implementation.
penguino-avrisp.bin - Binary ready for direct upload with Flipper (assumes the default 16MHz speed setting)
Source code available via subversion svn co https://dev.icy.com.au/svn/penguino-projects/trunk/AVRISP
Requires the Penguino Code Library available from the Penguino Downloads section
Example usage
|
Using avrdude, you can see a list of the chips that should work with the ISP (the below should work on Mac OS X, you'll need to replace /dev/cu.penguino-uart with something like /dev/ttyACMn on Linux or COMn on Windows):
avrdude -c avr910 -P /dev/cu.penguino-uart
Other usage details for avrdude (and other programmers capable of talking the AVR910 protocol) can be found on Google.
![icy [labs]](/moin_static171/common/wikilogo.png)

