Programmation d’un bootloader sur un ATmega 328P (8 MHz / 3,3 V)

Article mis à jour le 21/03/2021.

Sur le site Arduino, on trouve la marche à suivre : From Arduino to a Microcontroller on a Breadboard. Toutefois, cela s’est avéré insuffisant en ce qui me concerne, d’où ce tutoriel pour compléter ou corriger.

Version du logiciel utilisée : Arduino 1.8.13

S’il n’existe pas, créer un sous-répertoire « hardware » dans le répertoire personnel « sketchbook » d’Arduino.
Télécharger et décompresser breadboard-1-8-x.7z dans le répertoire hardware ci-dessus :

> sketchbook > hardware > breadboard > avr > boards.txt
> sketchbook > hardware > breadboard > avr > bootloaders > atmega > ATmegaBOOT_168_atmega328_pro_8MHz.hex

Fichier boards.txt :

#################################################################

atmega328bb.name=ATmega328P on a breadboard (8 MHz internal clock / 3.3 V / BOD at 2.7 V)

atmega328bb.upload.protocol=arduino
atmega328bb.upload.maximum_size=30720
atmega328bb.upload.speed=57600
atmega328bb.upload.tool=arduino:avrdude

atmega328bb.bootloader.low_fuses=0xE2
atmega328bb.bootloader.high_fuses=0xDA
atmega328bb.bootloader.extended_fuses=0xFD
atmega328bb.bootloader.file=atmega/ATmegaBOOT_168_atmega328_pro_8MHz.hex
atmega328bb.bootloader.unlock_bits=0x3F
atmega328bb.bootloader.lock_bits=0x0F
atmega328bb.bootloader.tool=arduino:avrdude

atmega328bb.build.mcu=atmega328p
atmega328bb.build.f_cpu=8000000L
atmega328bb.build.board=AVR_ATMEGA328BB
atmega328bb.build.core=arduino:arduino
atmega328bb.build.variant=arduino:standard

#################################################################

Concernant les fusibles (fuses), voir AVR Fuse Calculator.

Si l’ATmega a déjà été « bootloadé » en 16 MHz :
– Mettre le quartz 16 Mhz
– Ouvrir le logiciel Arduino
– Choisir comme type de carte ATmega 328P on a breadboard (8 MHz internal clock / 3,3 V / BOD at 2.7 V)
– Choisir comme programmateur Arduino as ISP
– Graver la séquence d’initialisation

Si l’ATmega a déjà été « bootloadé » en 8 MHz interne :
– Ne pas mettre de quartz
– Ouvrir le logiciel Arduino
– Choisir comme type de carte ATmega 328P on a breadboard (8 MHz internal clock / 3,3 V / BOD at 2.7 V)
– Choisir comme programmateur Arduino as ISP
– Graver la séquence d’initialisation