compteur internet compteur de site  
UTILISER un ARDUINO UNO COMME PROGRAMMATEUR






PRÉAMBULE
Nous allons décrire dans cette page comment utiliser l'arduino uno comme programmateur ISP : In-System Programming

Cela permet la programmation de microcontrôleur de la famille AVR sans utilisation de la platine arduino tout en utilisant la programmation de l'IDE Arduino en chargeant le bootloader dans les microcontrôleurs choisis.
Cette programmation peut se faire in-situ, c'est à dire sans avoir à retirer les composants, qui doivent être programmés ou reprogrammés dans leur environnement.

L'avantage de procéder ainsi est :
• 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 un Atméga 328 utilisation d'une fréquence de 20 Mhz,
• 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),
   • ...,

CHARGEMENT du SKETCH dans L'ARDUINO UNO
Dans un premier temps il faut que l'IDE arduino soit installé sur le PC.

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

ouverture ide arduino
Ouverture IDE Arduino
2). Le sketch : Arduino ISP doit être chargé sur la platine de l'Arduino UNO pour pouvoir l'utiliser comme programmateur ISP.
• Allez dans : Fichier > Exemples > 11. ArduinoISP > ArduinoISP.
• Cliquer sur le dernier lien : ArduinoISP

cliquez sur arduinoisp
Cliquez sur ArduinoISP

3). Le sketch ArduinoISP s'ouvre dans une nouvelle fenêtre.

le sketch s'ouvre dans une nouvelle fenetre
Le sketch s'ouvre dans une nouvelle fenêtre

4). La première fenêtre peut être fermée.

fermeture premiere fenetre
Fermer la première fenêtre

5). Sélectionner l'Arduino UNO en cliquant sur :
Outils >Types de cartes > Arduino/Genuino UNO,
• Cliquez sur le dernier lien : Arduino/Genuino UNO.

selectionner arduino genuino uno
Sélectionner Arduino/Genuino UNO

6). Branchez l'Arduino UNO et Sélectionnez le port sur lequel est branchée la platine Arduino UNO en cliquant sur :
Outils >Port > COMxxx.

selection du port de la platine arduino uno
Sélection du port de la platine arduino UNO
7). Téléverser le sketch dans l'arduino UNO en cliquant sur la flèche horizontale.

televersement du sketch
Téléversement du sketch dans l'arduino UNO

8). L'Arduino UNO est prêt à être utilisé comme programmateur ISP.
9). La fenêtre ArduinoISP peut maintenant être fermée.

Les BROCHES de PROGRAMMATION ISP
Notre platine Arduino UNO est à présent un programmateur ISP.
Le sketch utilise les broches 10 ,11, 12 et 13 :
• Broche 10 : Reset,
• Broche 11 : MOSI,
• Broche 12 : MISO,
• Broche 13 : SCK.

broches programmateur isp
Broches utilisées pour le programmateur ISP

Les mêmes broches, Reset, MOSI, MISO et SCK se retrouveront sur les microcontrôleurs de la famille AVR que l'on souhaitera programmer.

Les BROCHES sur les MICROCONTRÔLEURS
Les microcontrôleurs de la famille AVR possèdent les broches de programmation ISP.

Dans un premier temps il faut repérer ces broches sur le microcontrôleur que l'on souhaite programmer.

Ces broches correspondent à la répartition des broches sur le microcontrôleur lui-même, sans platine Arduino comme support. On retrouve ces informations dans la documentation technique du microcontrôleur concerné.

Exemples
Pour un Atméga 328

repartition des broches pour un atmega 328
Répartition des broches pour un Atméga 328

• Broche 1 : Reset,
• Broche 17 : MOSI,
• Broche 18 : MISO,
• Broche 19 : SCK.

Pour des microcontrôleurs Atméga 16, 32, 164, 324, 644, 1284, 8535

repartition des broches pour un Atmega 16, 32, 164, 324, 644, 1284, 8535
Répartition des broches pour un Atméga 16, 32, 164, 324, 644, 1284, 8535

• Broche 9 : Reset,
• Broche 6 : MOSI,
• Broche 7 : MISO,
• Broche 8 : SCK.

INTERFACER l'ARDUINO UNO avec le MICROCONTRÔLEUR
Plusieurs liaisons doivent être réalisées pour pouvoir programmer le microcontrôleur :

Atméga 328
1). Liaisons ISP
• Relier broches à broches les liaisons MOSI, MISO, SCK entre la platine Arduino Uno et le microcontrôleur.

• Broche 11 Platine Arduino UNO et Broche 17 ATméga 328 (MOSI),
• Broche 12 Platine Arduino UNO et Broche 18 ATméga 328 (MISO),
• Broche 13 Platine Arduino UNO et Broche 19 ATméga 328 (SCK).

2). Liaison du RESET
Broche 10 Platine Arduino UNO et Broche 1 ATméga 328 (RESET), une résistance de 10kΩ doit être branchée entre le +5v et la broche 1 de l'Atméga 328.

3). L'Horloge
Le microcontrôleur n'étant pas sur une platine Arduino, nous allons lui adjoindre un circuit d'horloge externe.
Sur une platine Arduino UNO l'Atméga est cadencé à 16 Mhz, mais il peut fonctionner jusqu'à 20Mhz selon la documentation technique.

Il faut brancher un quartz et deux condensateurs pour réaliser le circuit d'horloge :
• Le quartz (16 Mhz) est câblé entre les broches 9 et 10 de l'Atméga 328,
• Les condensateurs (10 à 22 pF) sont reliés entre :
   • La broche 9 et la masse (GND),
   • La broche 10 et la masse (GND),

4). L'alimentation
• Broche +5v Platine Arduino UNO et Broche 7 ATméga 328 (VCC),
• Broche GND Platine Arduino UNO et Broche 8 et 22 ATméga 328 (GND).

Réalisation

raccordement entre l'arduino uno et l'atmega 328
Raccordement entre l'Arduino UNO et l'ATméga 328

Liste des composants utilisés
1 platine Arduino UNO,
1 Atméga 328P-PU,
1 Quartz 16 Mhz,
2 Condensateurs : 10, 15, 18, 22 pF,
1 Résistance de 10 kΩ.

Atméga 16, 32, 164, 324, 644, 1284, 8535
1). Liaisons ISP
• Relier broches à broches les liaisons MOSI, MISO, SCK entre la platine Arduino Uno et le microcontrôleur.

• Broche 11 Platine Arduino UNO et Broche 6 ATméga (MOSI),
• Broche 12 Platine Arduino UNO et Broche 7 ATméga (MISO),
• Broche 13 Platine Arduino UNO et Broche 8 ATméga (SCK).

2). Liaison du RESET
Broche 10 Platine Arduino UNO et Broche 9 ATméga (RESET), une résistance de 10kΩ doit être branchée entre le +5v et la broche 1 de l'Atméga.

3). L'Horloge
Le microcontrôleur n'étant pas sur une platine Arduino, nous allons lui adjoindre un circuit d'horloge externe.
Sur une platine Arduino UNO l'Atméga est cadencé à 16 Mhz voire 12Mhz sur certaines cartes, mais il peut fonctionner jusqu'à 20Mhz selon la documentation technique.

Il faut brancher un quartz et deux condensateurs pour réaliser le circuit d'horloge :
• Le quartz (16 Mhz) est câblé entre les broches 12 et 13 de l'Atméga,
• Les condensateurs (10 à 22 pF) sont reliés entre :
   • La broche 12 et la masse (GND),
   • La broche 13 et la masse (GND).

4). L'alimentation
• Broche +5v Platine Arduino UNO et Broche 10 ATméga (VCC),
• Broche GND Platine Arduino UNO et Broche 11 et 31 ATméga 328 (GND).

Réalisation

raccordement entre l'arduino uno et l'atmega
Raccordement entre l'Arduino UNO et l'ATméga

Liste des composants utilisés
1 platine Arduino UNO,
1 Atméga xxxxP-PU,
1 Quartz 16 Mhz,
2 Condensateurs : 10, 15, 18, 22 pF,
1 Résistance de 10 kΩ.