AVR/Arduino ISP programmer using the Raspberry Pi GPIOs

Posted on Feb 7, 2014

As a fully-featured Linux computer there are many external programmers that can be used with your Raspberry Pi to program the Atmel AVR range of microprocessors. It`s also possible to use the general purpose input/output lines (GPIOs) found on the Raspberry Pi to implement an ISP programmer with minimal extra hardware. I say `with minimal extra ha

AVR/Arduino ISP programmer using the Raspberry Pi GPIOs
Click here to download the full size of the above Circuit.

rdware" because although it can be done with no extra hardware I recommend adding a buffer and FET to protect the Raspberry Pi. You might reasonably wonder what is the point if extra hardware should be used since external USB programmers can be bought cheaply from Ebay. However, if you are going to add an extension PCB to your Raspberry Pi anyway, for instance to communicate with a remote Atmel processor, then including an ISP programmer makes sense and adds very little cost. Most of the Atmel AVR range can be programmed using an ISP interface which resembles the SPI bus. For this description I`ll assume that the SPI pins are reused for this purpose but you should check the datasheet to make sure this is true for your part. The RESET pin is used as the active-low chip select pin, SCK is the clock signal, MOSI is the input data pin and MISO is the output data pin. If the directions seem odd remember that the microcontroller is acting as a SPI slave in this scenario; with that in mind the names make perfect sense. The ISP programmer then communicates with the microcontroller, sending commands to read or write flash memory, EEPROM, fuses, and/or locks. Avrdude supports many different programmers which can be used for this task. The simplest interface on the Raspberry Pi is to use four GPIO pins and bit-bang the SPI commands. I don`t recommend this however. After programming has finished the SPI interface on the microcontroller...

Leave Comment

characters left:

Related Circuits

  • New Circuits



    Popular Circuits

    24 Watt Audio Amplifier
    16-300 MHz Testing Colpitts oscillator
    Remotely Programmable RTC-Interfaced Microcontroller for Multiple Device Control
    What do I need to close an electrical circuit for a certain amount of time
    nicad battery charger uses
    Transistor intercom circuit
    fm radio jammer
    Transcutaneous Electrical Nerve Stimulator (TENS)
    Lightning Activated Camera Shutter Trigger