Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
howtos:bootloader [2013/11/24 22:44] – phyks | howtos:bootloader [2022/05/05 19:51] (Version actuelle) – hackens | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
- | Bootloaders pour ATmega8 | + | < |
- | ==== | + | Bootloaders pour ATmega8 |
+ | ===================================== | ||
- | Pour le projet [ledhill](http:// | + | Pour le projet [[projets: |
Du coup, voici une petite compil' | Du coup, voici une petite compil' | ||
Ligne 10: | Ligne 11: | ||
## Gravure de bootloader | ## Gravure de bootloader | ||
- | {{http:// | + | On grave le bootloader à l'aide d'un autre ATmega qu'on utilise comme programmateur et qui communique avec l' |
+ | |||
+ | {{ http:// | ||
+ | |||
+ | |||
+ | Il faut envoyer le sketch ArduinoISP (trouvables dans les exemples) sur l' | ||
## Envoi de programmes | ## Envoi de programmes | ||
- | {{: | + | On envoie ensuite directement le programme sur l' |
+ | |||
+ | {{ : | ||
## Notes diverses | ## Notes diverses | ||
Ligne 25: | Ligne 34: | ||
* Mieux vaut utiliser le soft Arduino que la ligne de commande avec avrdude. En effet, Arduino gère tout seul les fuse bits (utilisation d'un cristal externe, temps de démarrage, protection du bootloader) et c'est donc moins prise de tête. Sinon, pour les calculer, c'est [par ici](http:// | * Mieux vaut utiliser le soft Arduino que la ligne de commande avec avrdude. En effet, Arduino gère tout seul les fuse bits (utilisation d'un cristal externe, temps de démarrage, protection du bootloader) et c'est donc moins prise de tête. Sinon, pour les calculer, c'est [par ici](http:// | ||
* Lorsque le bootloader est gravé, pour envoyer des programmes facilement, il faut qu'il puisse reset sur serial (sinon, il faut faire un reset manuel à chaque fois). Pour ça, il faut mettre une capacité et une résistance sur le pin de reset (cf schematics des Arduino). | * Lorsque le bootloader est gravé, pour envoyer des programmes facilement, il faut qu'il puisse reset sur serial (sinon, il faut faire un reset manuel à chaque fois). Pour ça, il faut mettre une capacité et une résistance sur le pin de reset (cf schematics des Arduino). | ||
+ | |||
+ | ### Modification des fuse bits avec Arduino | ||
+ | |||
+ | Il peut être utile de modifier les fuse bits, tout en gravant la séquence d' | ||
+ | |||
+ | Pour ce faire, le plus simple est d' | ||
+ | |||
+ | Exemple de lignes à ajouter : | ||
+ | ``` | ||
+ | ############################################################## | ||
+ | # Arduino Uno with custom fuse bits to disable brown out detection | ||
+ | |||
+ | uno_no_bo.name=Arduino Uno without brown out | ||
+ | uno_no_bo.upload.protocol=arduino | ||
+ | uno_no_bo.upload.maximum_size=32256 | ||
+ | uno_no_bo.upload.speed=115200 | ||
+ | uno_no_bo.bootloader.low_fuses=0xff | ||
+ | uno_no_bo.bootloader.high_fuses=0xde | ||
+ | uno_no_bo.bootloader.extended_fuses=0x07 | ||
+ | uno_no_bo.bootloader.path=optiboot | ||
+ | uno_no_bo.bootloader.file=optiboot_atmega328.hex | ||
+ | uno_no_bo.bootloader.unlock_bits=0x3F | ||
+ | uno_no_bo.bootloader.lock_bits=0x0F | ||
+ | uno_no_bo.build.mcu=atmega328p | ||
+ | uno_no_bo.build.f_cpu=16000000L | ||
+ | uno_no_bo.build.core=arduino | ||
+ | uno_no_bo.build.variant=standard | ||
+ | |||
+ | |||
+ | ############################################################## | ||
+ | # ATmega328p on a breadboard with 8 MHz internal clock | ||
+ | |||
+ | atmega328bb.name=ATmega328 on a breadboard (8 MHz internal clock) | ||
+ | |||
+ | atmega328bb.upload.protocol=stk500 | ||
+ | atmega328bb.upload.maximum_size=30720 | ||
+ | atmega328bb.upload.speed=57600 | ||
+ | |||
+ | atmega328bb.bootloader.low_fuses=0xE2 | ||
+ | atmega328bb.bootloader.high_fuses=0xDA | ||
+ | atmega328bb.bootloader.extended_fuses=0x05 | ||
+ | atmega328bb.bootloader.path=arduino: | ||
+ | atmega328bb.bootloader.file=ATmegaBOOT_168_atmega328_pro_8MHz.hex | ||
+ | atmega328bb.bootloader.unlock_bits=0x3F | ||
+ | atmega328bb.bootloader.lock_bits=0x0F | ||
+ | |||
+ | atmega328bb.build.mcu=atmega328p | ||
+ | atmega328bb.build.f_cpu=8000000L | ||
+ | atmega328bb.build.core=arduino: | ||
+ | atmega328bb.build.variant=arduino: | ||
+ | ``` | ||
+ | |||
+ | Il faut aussi faire attention à ce que les bootloaders soient disponibles dans le même dossier (par exemple en créant un lien symbolique de `~/ | ||
+ | |||
+ | Les nouvelles cartes, ajoutées de cette manière, apparaîtront alors dans la liste des cartes utilisables dans Arduino. | ||
+ | |||
+ | Cependant, à l' | ||
+ |