Programmation ISP

La programmation ISP permet de charger le code compilé dans la mémoire programme (flash) du microcontrôleur. C’est la seule méthode de programmer un microcontrôleur qui n’a pas de bootloader, pour ceci il faut passer par un outil de programmation comme USBtinyISP ou USBasp (il en existe d’autres sur le marché).

Le PRismino étant très polyvalent il peut être reprogammé en programmateur ISP avec le sketch inclus nommé ArduinoISP.

Pourquoi utiliser un programmateur ISP plustôt que le bootloader?

Programmer directement avec un programmateur ISP met à disposition toute la mémoire programme de 32KB, en effet le bootloader prend 4KB de cette mémoire.

Le programmateur ISP permet, en plus de reécrire la mémoire programme, de changer les fuse-bits, ce sont des options très bas niveau qui ne peuvent être modifiés que par cette méthode. Il faut quand même faire attention car ces fuse-bits peuvent rendre le micrôcontroleur inutilisable. Pour plus d’informations sur les fuse-bits et les fonctions il existe un outil pour les trouver facilement.

A quoi est-ce que ça peut servir?

La pluspart des microcontrôleurs Atmel peuvent être programmés en ISP, ceci veut dire que s’il y a besoin de programmer un ATtiny pour un tout petit projet ou de recharger le bootloader sur un PRismino (ou n’importe quel Arduino d’ailleurs) alors cette méthode peut être utilisé.

Comment fait-on?

  1. Ouvrir le sketch ArduinoISP dans FileExamples → ArduinoISP
  2. Modifier la ligne 47 et changer le #define RESET SS en #define RESET A5

  3. Téléverser le programme

  4. Connecter les pins du PRismino comme sur l’image au dessus

  5. Choisir dans Tools → Programmer → Arduino as ISP

Programmation du bootloader

Pour programmer le bootloader aller dans ToolsBoard et choisir le bon microcontrôleur, dans le cas d’un PRismino choisir l’Arduino Leonardo.

Cliquer sur ToolsBurn Bootloader, ça va prendre 1 minute à peu près et il n’y a pas de retour durant la programmation.

Programmation normale

Pour charger le code dans la mémoire programme sans passser par le bootloader il faut utiliser la fonction correspondante dans Arduino IDE qui se trouve dans File → Upload Using Programmer.

En programmant avec cette méthode le bootloader n’est plus utilisable (programmation USB impossible) jusqu’à ce qu’il soit rechargé avec la méthode plus haut.