Le javascript est désactivé sur votre navigateur
 
Prononcer /'po.bot/
   
Accueil du siteProgrammation et logicielsLes micro-contrôleursTrucs et astuces
  publication inférieure à 7 jours
  publié < 7j sous cette rubrique
     
À propos de l'article
    Publié le 17 octobre 2005
    par Patrick

    Mis à jour le 28 février 2010
Mots-clés de cet article
    Communications :
    SPI , RS232 ,
    Composants :
    AVR , micro-contrôleur ,
    Electronique :
    bootloader , ISP , TTL
Choisir votre langue :

In Situ Programming

Programmation de microcontrôleurs Atmel par méthode ISP

On appelle ISP ou In Situ Programming la méthode de programmation (au sens chargement du code) des µC Atmels directement sur le support d’utilisation finale (carte électronique, robot, balise).

Câble ISP

On peux citer deux autres modes de programmation pour comprendre les différences d’utilisation :

- **la carte de programmation** : un circuit dédié relié à l’ordinateur permet de charger le code, ce qui implique des manipulations pour extraire la puce de son emplacement, sans compter non plus le temps perdu à rebrancher tous les câbles, ainsi que la nécessité d’une alimentation supplémentaire pour le programmateur. Pour noircir le tableau encore plus, on peux également parler du câble série qui sert à la fois à programmer et à tester le code ! Une solution dépassée par l’ISP.

- **le chargeur embarqué ou boot loader** : un petit programme enregistré dans l’Atmel va attendre le programme à charger sur le port série. C’est une solution intéressante si on envisage également de rester connecté. On utilise peu de fils (généralement 4 fils TTL jusqu’à un adaptateur pour câble série RS232) et on manipule très peu l’élément (on reste connecté entre deux programmations). Cependant cette solution prend de la place dans la mémoire du microcontrôleur, ce qui peut limiter les possibilités.

 Description du circuit

Et bien... l’information principale, c’est qu’on se branche sur le port parallèle LPT, un atout puisque ce port est de moins en moins utilisé grâce aux imprimantes USB et qu’il permet de garder son port COM pour un câble de communication série.

Pour la partie technique, on peux résumer en parlant de signaux MOSI et MISO (Master IN/OUT et Slave IN/OUT), d’une clock et d’un reset. Pour le reste, on utilise généralement des connecteurs HE-10 à 10 pins et détrompeur (une sortie led permet de vérifier qu’on ne s’est pas trompé de sens).

ports HE10

 Fichiers

Schéma électronique
Carte électronique
Typon du câble ISP
Fichiers Eagle

Note : certaines cartes avec un connecteur HE-10 marqué ISP ne suivent pas la même organisation des pins, même si elles utilisent les mêmes signaux SPI. Contactez-nous en cas de problème.

 
Répondre à cet article
Vous avez aimé cet article ? Merci de nous recommander !
Commentaires :
  1. mercredi 23 août 2006 à 12:08
    Répondre Fil de discussion

    Pour ceux qui voudraient tout savoir sur le fonctionnement interne de ce câble de programmation :

    http://wiredworld.tripod.com/tronics/atmel_isp.html

  2. mercredi 23 août 2006 à 12:39
    Répondre Fil de discussion
    Ca ira mieux avec le lien correctement défini : http://wiredworld.tripod.com/tronics/atmel_isp.html
  3. jeudi 1er juin 2006 à 17:03
    Répondre Fil de discussion
    C’est tres sympa de montrer comment realiser ce dongle lpt/spi, quelqu’un aurait-il des sources C pour ensuite faire communiquer le pc ?
  4. Julien
    jeudi 1er juin 2006 à 23:34
    Répondre Fil de discussion

    et bien... cette liaison SPI (au sens protocole Motorola avec signaux master/slave) ne sert ici qu’à l’ISP (in situ programming) d’Atmel, donc on utilise un logiciel (AvrDude, PonyProg) pour télécharger le programme dans le µC.

    pour une communication entre le PC et le microcontrôleur, on préfère utiliser la liaison série (avec hyperterminal).

    à moins que je n’aie pas compris la question.

  5. Christian
    vendredi 7 avril 2006 à 17:14
    Répondre Fil de discussion
    Est-ce que ce câble convient pour la programmation des circuits Atmel AT89S2051 ou AT89S4051 et fonctionne-t-il avec l’utilitaire AT89ISP téléchargeable sur le site ATMEL ?
  6. Julien
    vendredi 7 avril 2006 à 20:37
    Répondre Fil de discussion

    Bonsoir.

    J’ai regardé la doc disponible sur le site d’Atmel sur l’AT89ISP (Application Notel Atmel) et j’ai détecté un problème.

    Explication : à la figure 3.1, en comparant avec le connecteur ISP classique (http://www.pobot.org/IMG/jpg/ports.jpg), on voit que les signaux ne correspondent pas.

    Donc tout dépend du connecteur que tu utilises à côté de ton µC AT89Sxxx. Je vais poser la question à l’équipe pour avoir un avis d’expert ;-)

  7. Christian
    lundi 10 avril 2006 à 11:46
    Répondre Fil de discussion
    J’ai utilisé une connectique qui soit compatible avec les signaux à controler, à savoir Reset, Sclk, MOSI et MISO mais sur la note d’application ATMEL on trouve un signal supplémentaire SS (slave select) qui n’existe pourtant pas sur la datasheet des AT89S2051 ou 4051 ... Quoi qu’il en soit, le soft renvoie un message disant que le cable n’est peut-être pas un cable ATMEL, ou alors pas la dernière version, etc... (bref, il refuse d’aller plus loin)
  8. Thibaud
    mardi 23 mai 2006 à 17:12
    Répondre Fil de discussion

    Boujours, Est ce qu’une solution a été trouvé pour ce porbleme avec les AT89S2051 ? Pourtant sur la documentation du logiciel AT89ISP, au dessus de la figure 3.1 il est indiqué que le signal /SS n’a pas besion d’etre connecté pour la série des AT89S !

    Je n’ai trouvé pas de schema indiquant ou connecté cette broche /SS sur le port parralelle. Dans la doc des AT89LP ont voit apparaitre ce signal.

  9. Mindiell
    lundi 5 décembre 2005 à 12:32
    Répondre Fil de discussion

    Toujours aussi parfait, mais qu’est-ce que le 74245N ? Ou peut-on le trouver ? Et ou peut-on trouver des infos dessus ?

    Merci !

  10. Julien
    lundi 5 décembre 2005 à 13:10
    Répondre Fil de discussion

    C’est un driver de ligne ("8-bit 3-state noninverting bus transceiver"). On le trouve chez Motorola à la référence 74LS245 et il est dispo sur le site de Selectronic

    On en parle ici : forum 74245N

  11. lundi 5 décembre 2005 à 14:13
    Répondre Fil de discussion
    Merci ! J’avais vu le lien, mais ils n’indiquent pas ce que ca fait, j’ai d’ailleurs pas bien compris leur discussion ^^ J’avais bien trouvé une page sur le 74LS245, mais ne m’y connaissant pas beaucoup je n’ai pas cru que c’était la même chose...
  12. Julien
    vendredi 24 novembre 2006 à 22:29
    Répondre Fil de discussion
    A la place du 74245N, on peut utiliser un 74HC244 comme indiqué sur ce site.