compteur internet compteur de site  
CHARGER un BOOTLOADER dans un ATMÉGA 1284








PRÉAMBULE
L'utilisation de l'IDE arduino est recommandé lors de l'utilisation d'une platine arduino quelle que soit le microcontrôleur équipant cette platine.
De plus la platine Arduino simplifie et facilite de par sa conception l'expérimentation et la mise en œuvre d'un montage.

Pour les raisons évoquées précédemment :
• De diminuer les coûts en utilisant uniquement les composants nécessaires,
• Diminuer l'encombrement d'un montage,
• Diminuer la consommation d'un montage,
• Ne pas immobiliser une platine arduino inutilement, elles est utilisée uniquement pour le développement,
• Libérer des broches d'entrée/sortie, utilisées pour le fonctionnement de la platine Arduino,
• Faire fonctionner les microcontrôleurs à des vitesses supérieures que celle permisse par les platines Arduino.

Pour toutes ces raisons et d'autres il peut être judicieux de n'utiliser que le microcontrôleur sans la platine arduino. On utilise dans ce cas la platine arduino comme support de développement en profitant des instructions et de la facilité de mise en œuvre offerte par l'IDE Arduino et sans coût supplémentaire on utilise cette même platine Arduino UNO comme programmateur
Les avantages sont :
• Utilisation de l'IDE Arduino,
• Utilisation du support de l'arduino,
• Utiliser toujours le même outil de développement,
• Profiter des nombreux exemples présent dans l'IDE Arduino ou sur internet,
• ...

Lorsque l'on acquière une platine Arduino, le microcontrôleur est d'office programmé avec le bootloader qui est positionné en mémoire basse du microcontrôleur.

Le bootloader permet après qu'un programme ait été réalisé en utilisant l’IDE Arduino de l'implanter dans le microcontrôleur.
Il permet également de lancer le programme contenu dans le microcontrôleur lors de sa mise sous tension. 

Nous allons utiliser un microcontrôleur qui n'est pas utilisé sur une platine arduino.

• Utiliser des microcontrôleurs qui n'existent pas sur platine Arduino offrant une plus grande diversité dans le choix du microcontrôleur en fonction du montage souhaité :
   • ATméga 8535, (40 broches, 8 Kb de Flash, 0,544 K Sram, 4 K Eeprom),
   • ATméga 16, (40 broches, 16 Kb de Flash, 1k K Sram, 0,512 K Eeprom),
   • ATméga 32,(40 broches, 32 Kb de Flash, 2 K Sram, 1 K Eeprom), 
   • ATméga 164, (40 broches, 16 Kb de Flash, 1 K Sram, 0,512 K Eeprom), 
   • ATméga 324, (40 broches, 32 Kb de Flash, 2 K Sram, 1 K Eeprom),
   • ATméga 644, (40 broches, 64 Kb de Flash, 4 K Sram, 2 K Eeprom),
   • ATméga 1284, (40 broches, 128 Kb de Flash, 16 K Sram, 4 K Eeprom),
   • ...,

Nous verrons le chargement du bootloader dans deux Atméga différents :
• L'Atméga 328 qui équipe les platines Arduino UNO,
• L'Atméga 1284 qui n'existe pas dans l'univers Arduino.

Pour réaliser ce qui suit il faut avoir lu la page :  

CHARGEMENT du BOOTLOADER dans un ATMÉGA 1284
Dans un premier temps il faut se procurer des microcontrôleurs vierges.
• Un Atméga 1284 P-PU,

Dans un deuxième temps il faut réaliser le montage suivant.

MONTAGE à RÉALISER

raccordement entre l'arduino uno et l'atmega 1284
Montage à réaliser
Liste des composants utilisés
1 platine Arduino UNO,
1 Atméga 1284P-PU,
1 Quartz 16 ou 20 Mhz,
2 Condensateurs : 10, 15, 18, 22 pF,
1 Résistance de 1 kΩ.

PROCÉDURE
Dans un premier temps il faut que :
• L'IDE arduino soit installé sur le PC,
• Il faut avoir placé le sketch ArduinoISP dans le microcontrôleur de la platine Arduino UNO.

1).
Ensuite il faut ouvrir l'IDE Arduino.

ouverture ide arduino
Ouverture IDE Arduino

2). 
Il faut charger les fichiers permettant d'utiliser l'Atméga 1284 :
• Allez dans : Fichier > Préférences > 
• Allez dans l'onglet : Paramètres,
Dans la fenêtre : URL de gestionnaire de cartes supplémentaires, inscrivez la ligne :
    • https://mcudude.github.io/MightyCore/package_MCUdude_MightyCore_index.json
• Cliquez sur : OK.

fichier : preferences
Fichier : Préférences
gestionnaire de cartes supplementaires
URL de gestionnaire de cartes supplémentaires

3). 
Allez ensuite dans :
Outils > Type de carte > Gestionnaire de carte.

type de carte
Outils > Type de carte > Gestionnaire de carte

4).
• La fenêtre Gestionnaire de carte s'ouvre
• Cherchez MightyCore by MCUdude version 2.0.1 et cliquer sur Installer.

gestionnaire de cartes
MightyCore by MCUdude version 2.0.1

5). 
Allez dans :
• Allez dans : Outils > Type de carte > 
• Choisir ATméga 1284.

choix atmega 1284
Sélectionner ATmega 1284
6).
On peut confirmer que l'ATméga 1284 est bien sélectionné en cliquant sur : Outils.

atmega 1284 selectionne
Le microcontrôleur avr 1284 est sélectionné

7).
Il faut maintenant choisir le bootloader à charger dans le microcontrôleur ATméga 1284.

Allez dans :
Outils >  Programmateur :  "Arduino as ISP" > Arduino as ISP (MightyCore)

choix arduino as isp mightycore
Choisir Arduino as ISP (MightyCore)

8).
Une fois que :
• L'ATméga 1284 a bien été sélectionné,
• Le port ou est branché la platine Arduino Uno a été sélectionné,
• Le montage a été réalisé,
• Le sketch arduinoISP est chargé dans la platine Arduino UNO,

On peut passer à la gravure du bootloader dans l'ATméga 1284.

Allez dans :
Outils >  Graver la séquence d'initialisation.

graver la sequence d'initialisation
Sélection : Graver la séquence d'initialisation
9).
La gravure est terminée.

On voit apparaître sur le milieu de la fenêtre : Gravure de la séquence d'initialisation terminée.

fin de gravure du bootloader sur atmega 1284
La gravure du bootloader est terminé

10).
Lorsque la gravure du bootloader est terminée, on peut charger un sketch dans l'Atméga 1284.

L'Atméga 1284 possède 4 ports d'entrées-sorties :
• Port A : Broches 33 à 40,
• Port B : Broches 1 à 8,
• Port C : Broches 21 à 29,
• Port D : Broches 14 à 20.

La programmation doit respecter les spécifications de l'IDE Arduino et ne pas se fier à la répartition des broches du microcontrôleur.

Exemple :
Pour allumer une LED branchée sur la broche 15 de l'ATméga 1284, il faut spécifier la valeur numéro 9.
Les figures ci-dessous indiquent :
• La répartition des broches de l'ATméga 1284 ainsi que la répartition des broches en utilisant l'IDE Arduino (chiffres sur fond marron).

repartition des broches pour un Atmega 16, 32, 164, 324, 644, 1284, 8535
Broches de l'ATmega 1284

repartition broches atmega 1284
Broches de l'ATmega 1284

RÉALISATION d'un SKETCH à TÉLÉCHARGER
Exemple de sketch :
• Clignotement d'une led sur la sortie 15 de l'Atméga 1284.

sketch clignotement d'une led
Sketch de clignotement d'une led

Cablâge de la LED.
Le montage reste le même que pour la programmation ISP, on rajoute simplement sur la broche 15 :
• Une résistance de 1kΩ,
• Une Led.

Raccordement de la LED
clignotement led atmega 1284
TÉLÉVERSEMENT du SKETCH dans l'ATMÉGA 1284
Maintenant que la led est branchée et le sketch réalisé il reste à le téléverser dans l'Atméga 1284.

1). Allez dans :
Croquis > Téléverser avec un programmateur.

Nota : Il ne faut pas cliquer sur la flèche horizontale sinon le sketch serait téléversé dans la platine Arduino UNO et son utilisation comme programmateur ISP serait écrasée.

televerser avec un programmateur
Cliquez sur téléverser avec un programmateur

Le téléversement du sketch commence.

le televersement est termine
Le téléversement est terminé

programmation isp
Montage programmation isp

Après quelques secondes le sketch est enregistré dans l'Atméga 1284, la Led se met à clignoter.
Après la programmation on peut retirer les fils utilisés pour la programmation ISP, l'Atmega 1284 est autonome.
RÉGLAGES POSSIBLES
Types de carte
Les cartes microcontrôleurs disponibles sont :
 
• ATméga 1284 
• ATméga 644 
• ATméga 324 
• ATméga 164 
• ATméga 32 
• ATméga 16 
• ATméga 8535 

En utilisant cette nouvelle bibliothèque l'on a accès à un certain nombre de réglage détaillés ci-dessous.

caracteristiques microcontroleurs
Caractéristiques des microcontrôleurs

Variant
Permet de choisir la variante du microcontrôleur utilisée : P, PA, A, PB.

Ce choix n'est pas disponible pour tous les microcontrôleurs.

BOD
Le Brown Out  Detection ou BOD, permet au microcontrôleur de détecter la tension d'entrée et de s'arrêter si la tension passe en dessous de ce paramètre.

tension minimale alimentation microcontroleur
Tensions minimales d'alimentation des microcontrôleurs

Pinout
Ce noyau a trois options de brochage différentes : 
• Standard : Le brochage par défaut est basé sur le brochage AVR d'origine. 
• Bobuino, 
• Sanguino.

repartition broches atmega
Broches des ATmega

Clock
Sélectionnez votre microcontrôleur dans le menu Tableaux, puis sélectionnez la fréquence d'horloge. Vous devrez cliquer sur "Graver le chargeur de démarrage" afin de définir les fusibles appropriés et de télécharger le chargeur de démarrage approprié. 
Assurez-vous de connecter un programmateur ISP et de sélectionner celui qui convient dans le menu "Programmeurs". Un oscillateur externe est recommandé pour les opérations critiques.

Compiler LTO
L'optimisation du temps de liaison (LTO en abrégé) est prise en charge par l'IDE Arduino depuis la v1.6.11.
Le LTO optimise le code au moment de la liaison, le rendant (souvent) considérablement plus petit sans le rendre "plus lent".