AVR Bootloader and Programmer

Posted on Feb 4, 2014

Atmel`s application note AVR109 describes a bootloader that uses the UART to communicate FLASH programming instructions. They also provide some sample code in C that allows the programming of FLASH, EEPROM, and lock bits. Note that the AVR109 bootloader does not support the programming of fuses which for safety cannot be changed by the bootloader.

AVR Bootloader and Programmer
Click here to download the full size of the above Circuit.

The communication protocol used is compatible with the AVRPROG programming software. After loading this into the bootloader section, the device can be configured so that on reset the program counter starts at the bootloader, and programmer software can program the FLASH memory. The ATMEL example bootloader program proposes the use of a port pin on the microcontroller to signal whether to execute the bootloader program or to jump directly to the application. This allows a user to set a jumper on the microcontroller card that pulls the pin low when programming of the FLASH is needed. The adaptation of this code described here, keeps it almost unchanged in the interests of compatibility. By disabling the port pin test and excluding the EEPROM programming section and the AVRPROG compatibility section, the code will fit neatly into a 1K block of the bootloader FLASH section on ATMega48/ATMega88/ATMega168 AVRs *. Disabling the port pin test means that on reset the microcontroller always ends up in the bootloader program (if the appropriate fuse bit has been set), and must be explicitly sent out again with a bootloader exit command. For the moment this is acceptable as the device will normally operate while connected to a PC serial port. For standalone operation a pin will need to be made available to implement the port pin test, or the appropriate fuse bit programmed to start the device on reset at location 0. In the latter case...

Leave Comment

characters left:

Related Circuits

  • New Circuits



    Popular Circuits

    Push-Pull Class A Amplifier
    5V Supply High-Side Switcher
    Photo Strobe Circuit
    555 Low power Consumption Timer Circuit
    Cigar Lighter Plug to USB Power Socket
    KC2ZPLs Web Design and Electronic Home
    Op-Amp Pulse Generator Circuits
    RF Spectrometer
    Infrared control dimming circuit
    Non-diode rectifier
    TL494 regulator for the current application