Accueil Remonter Documentations Logiciels et Circuits Mes livres Services Liens Contactez-moi Librairie  
   

Schémas
Alim Labo PC
Afficheur LCD Série
Prog. Atmel AVR
Programmateur de PIC
Système d'acquisition
Micro HiFi Sans Fil
Platine Basic Stamp

 

 

Programmateur en circuit pour microcontrôleurs AVR d'Atmel

Le montage que je vous présente aujourd’hui est radicalement différent des programmateurs classiques car c’est un programmateur « en circuit », c’est à dire encore que vous n’avez même pas besoin de retirer le microcontrôleur de votre application pour le programmer. De plus, ce programmateur est compatible de l’excellent logiciel de programmation Atmel qui est mis gratuitement à notre disposition, et que vous trouverez donc sur à la rubrique logiciels de ce site.

Photo du programmateur

Ce logiciel, fonctionnant sous Windows 95, 98 et Me, supporte toutes les fonctions de programmation admises par les microcontrôleurs AVR d’Atmel et permet de travailler sur ces derniers avec un maximum de souplesse.

Enfin, et cela ne gâte rien, le prix de revient de ce programmateur est de l’ordre de quinze euros alors qu’il est à même de programmer toute la gamme des circuits AVR d’Atmel.

Les microcontrôleurs  AVR d’Atmel

Couverture Microcontrôleurs AVR

Je ne vais pas décrire ici les microcontrôleurs AVR d'ATMEL car tout ce site n'y suffirait pas. Si vous voulez en savoir plus à leur sujet, je vous renvoie au livre que je leur ai consacré dont vous pouvez trouver une présentation complète en cliquant sur sa couverture.

Achetez directement ce livre en ligne chez Amazon.fr en cliquant sur ce bouton ->

La programmation en circuit ou ICSP

La programmation en circuit, appelée en général dans les documentations américaines ISP, ce qui veut dire « in system programming », ou encore ICSP pour « in circuit serial programming » est apparue il y a quelque temps déjà avec les « gros » circuits logiques programmables tels que les GAL, LCA et autres réseaux de portes. Elle s’est depuis étendue à une partie du monde des microcontrôleurs dont les circuits AVR d’Atmel font partie.

Ce mode de programmation repose sur l’utilisation d’une liaison série un peu particulière, soit qu’elle existe déjà en tant que telle dans le microcontrôleur concerné, soit que certaines de ses pattes se voient détournées de leur fonction première lorsque cette programmation a lieu.

Dans tous les cas, son principe général est de n’utiliser qu’un minimum de pattes du microcontrôleur afin qu’il soit possible de programmer ce dernier alors qu’il est déjà en place dans l’application finale, quitte à devoir prévoir sur cette dernière quelques commutateurs, manuels ou électroniques, afin d’isoler provisoirement les pattes nécessaires pendant cette phase de programmation.

Dans le cas des microcontrôleurs Atmel, la liaison série utilisée pour cette programmation en circuit est la liaison série synchrone ou SPI. Elle peut exister en tant que véritable ressource interne, comme c’est le cas sur les plus «gros » circuits de la famille AVR, ou être seulement présente pour cette phase de programmation en circuit, comme c’est le cas pour les plus petits circuits.

Cette liaison fait appel à trois lignes, dont les appellations se retrouvent d’ailleurs sur tous les microcontrôleurs disposant d’une SPI (68HC11 de Motorola ou 16F876 de Microchip par exemple). On rencontre donc :

  • SCK qui véhicule l’horloge de dialogue ;
     

  • MOSI qui véhicule les données dans le sens programmateur vers microcontrôleur et qui sert donc à l’envoi des données à programmer ;
     

  • MISO qui véhicule les données dans l’autre sens et qui sert donc à relire le microcontrôleur.

Principe de la programmation ICSP

Afin de pouvoir commander correctement le processus de programmation en circuit, il faut aussi pouvoir accéder à l’entrée de reset du microcontrôleur car c’est au moyen de cette dernière que l’on fait passer les circuits Atmel en mode programmation en circuit.

Une application prévue pour supporter la programmation en circuit d’un microcontrôleur Atmel adopte donc le schéma de principe présenté figure ci-contre. Les straps visibles sur cette figure peuvent évidemment être réalisés de multiples façons : straps ordinaires, interrupteurs mécaniques ou interrupteurs électroniques.

Schéma du programmateur en circuit

Ceci étant précisé, le schéma d’un programmateur en circuit piloté par PC se résume à très peu de choses. En effet, il faut surtout du logiciel côté PC pour générer les chronogrammes adéquats sur les lignes SCK, MISO et MOSI et, bien sûr, un minimum de circuiterie d’adaptation de niveau afin de pouvoir utiliser un des ports standards du PC.

Le schéma de mon programmateur se réduit donc à ce que vous pouvez découvrir ci-dessous. Il est destiné à être relié au port parallèle du PC dont les lignes sont faciles à piloter par programme pour générer les chronogrammes nécessaires.

Il ne comporte en tout et pour tout qu’un circuit intégré IC1, qui est un simple 74HC244 ou 74HCT244, c’est à dire encore un sextuple buffer destiné à remettre en forme les signaux transmis sur la sortie imprimante du PC avant de les appliquer au circuit AVR à programmer. On est sûr ainsi de disposer de signaux bien rectangulaires et d’éviter tout aléa de programmation.

Ce circuit est câblé de façon à « amplifier » les signaux SCK, MOSI et RESET d’une part, puisque ceux-ci vont du PC vers le microcontrôleur, et le seul signal MISO, dans l’autre sens, puisque celui-ci va du microcontrôleur vers le PC.

Schéma programmateur AVR ICSP

Remarquez que l’une des sections de IC1 pilote une LED à partir du PC ce qui permet de signaler, par son allumage, que le microcontrôleur est en cours de programmation et qu’il ne faut donc pas y toucher ! L’alimentation du programmateur est prélevée directement sur l’application supportant le microcontrôleur via la diode D1.

Pour découvrir la réalisation de ce montage :
Cliquez sur ce bouton ->
Réalisation


Site déclaré à la CNIL sous le n° 1112858
© 2011 - C.Tavernier - Reproduction interdite sans autorisation