Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision Next revision Both sides next revision | ||
avr_bootloader:bootloader [2020/03/23 17:37] admin [Burning the Bootloader with the AVRdude] |
avr_bootloader:bootloader [2020/03/23 19:05] admin [Burning the Bootloader with the AVRdude] |
||
---|---|---|---|
Line 72: | Line 72: | ||
Go to the folder with the bootloader: | Go to the folder with the bootloader: | ||
$ cd /usr/share/arduino/hardware/arduino/avr/bootloaders/optiboot/ | $ cd /usr/share/arduino/hardware/arduino/avr/bootloaders/optiboot/ | ||
+ | |||
+ | === Fuse Bits === | ||
+ | In the board.txt file for the Arduino UNO the fuse bits are set like that: | ||
+ | uno.bootloader.low_fuses=0xFF | ||
+ | uno.bootloader.high_fuses=0xDE | ||
+ | uno.bootloader.extended_fuses=0xFD | ||
+ | uno.bootloader.unlock_bits=0x3F | ||
+ | uno.bootloader.lock_bits=0x0F | ||
+ | The extended fuse bits settings for the brown-out detection level (BOD) are: | ||
+ | 0xFF (BOD disabled) | ||
+ | 0xFC (BOD = 4.3V) | ||
+ | 0xFD (BOD = 2.7V) | ||
+ | 0xFE (BOD = 1.8V) | ||
+ | That is the level where the Arduino resets when underpowered.\\ | ||
+ | |||
+ | A good manual for calculating the fuse bits one findes here [[https://www.instructables.com/id/How-to-change-fuse-bits-of-AVR-Atmega328p-8bit-mic/]]. | ||
=== ... with an AVR ISP Programmer ==== | === ... with an AVR ISP Programmer ==== | ||
For setting the fuse bits one has to type: | For setting the fuse bits one has to type: | ||
- | $ sudo avrdude -p m328p -c stk500v2 -P /dev/ttyACM0 -U lfuse:w:0xFF:m -U hfuse:w:0xDE:m -U efuse:w:0x05:m | + | $ sudo avrdude -p m328p -c stk500v2 -P /dev/ttyACM0 -U lfuse:w:0xFF:m hfuse:w:0xDE:m efuse:w:0xFD:m |
And for the bootloader: | And for the bootloader: | ||
$ sudo avrdude -p m328p -c stk500v2 -P /dev/ttyACM0 -U flash:w:optiboot_atmega328.hex:i | $ sudo avrdude -p m328p -c stk500v2 -P /dev/ttyACM0 -U flash:w:optiboot_atmega328.hex:i | ||
Line 84: | Line 100: | ||
If one has a [[avr_bootloader:paper-avrisp_mk2|Paper-AVRISP mkII]] one hast to type in the terminal the following. For setting the fuse bits: | If one has a [[avr_bootloader:paper-avrisp_mk2|Paper-AVRISP mkII]] one hast to type in the terminal the following. For setting the fuse bits: | ||
- | $ sudo avrdude -p m328p -c avrispmkII -P usb -U lfuse:w:0xFF:m -U hfuse:w:0xDE:m -U efuse:w:0x05:m | + | $ sudo avrdude -p m328p -c avrispmkII -P usb -U lfuse:w:0xFF:m hfuse:w:0xDE:m efuse:w:0xFD:m |
And for the actual bootloader: | And for the actual bootloader: | ||
$ sudo avrdude -p m328p -c avrispmkII -P usb -U flash:w:optiboot_atmega328.hex:i | $ sudo avrdude -p m328p -c avrispmkII -P usb -U flash:w:optiboot_atmega328.hex:i | ||
=== Problem Solving === | === Problem Solving === | ||
- | To erase all fuse bits one can use the attribute | + | To erase all fuse bits one can use the attribute: -e\\ |
- | -e | + | or even: -e -F\\ |
- | or even | + | Sometimes a specific Baud rate helps, too: -b 19200\\ |
- | -e -F | + | For verbose mode output use: -v\\ |
- | Sometimes a specific Baud rate helps, too. | + | |
- | -b 19200 | + | |
=== Burning an Atmega328 (without P) == | === Burning an Atmega328 (without P) == |