Club robotique de Sophia-Antipolis

Accueil > Robopedia > Programmation > Apprendre à coder > Les micro-contrôleurs > Trucs et astuces > In Situ Programming

In Situ Programming

Programmation de microcontrôleurs Atmel par méthode ISP

lundi 17 octobre 2005, par Patrick

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).

JPEG - 10.1 ko
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).

JPEG - 10 ko
ports HE10

 Fichiers

PDF - 43.2 ko
Schéma électronique
PDF - 21.4 ko
Carte électronique
PDF - 38.3 ko
Typon du câble ISP
Zip - 27.2 ko
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.

Vos commentaires

  • Le 23 août 2006 à 12:08, par ? En réponse à : In Situ Programming

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

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

    Répondre à ce message

  • Le 5 décembre 2005 à 12:32, par Mindiell En réponse à : In Situ Programming

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

    Merci !

    • Le 5 décembre 2005 à 13:10, par Julien Holtzer En réponse à : 74245N

      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

    • Le 5 décembre 2005 à 14:13, par ? En réponse à : 74245N

      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...

    • Le 24 novembre 2006 à 22:29, par Julien Holtzer En réponse à : 74HC244

      A la place du 74245N, on peut utiliser un 74HC244 comme indiqué sur ce site.

    Répondre à ce message

  • Le 1er juin 2006 à 17:03, par ? En réponse à : In Situ Programming

    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 ?

    • Le 1er juin 2006 à 23:34, par Julien Holtzer En réponse à : In Situ Programming

      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.

    Répondre à ce message

  • Le 7 avril 2006 à 17:14, par Christian En réponse à : In Situ Programming

    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 ?

    • Le 7 avril 2006 à 20:37, par Julien Holtzer En réponse à : In Situ Programming

      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 ;-)

    • Le 10 avril 2006 à 11:46, par Christian En réponse à : In Situ Programming

      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)

    • Le 23 mai 2006 à 17:12, par Thibaud En réponse à : In Situ Programming

      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.

    Répondre à ce message

Un message, un commentaire ?

modération a priori

Attention, votre message n’apparaîtra qu’après avoir été relu et approuvé.

Qui êtes-vous ?

Pour afficher votre trombine avec votre message, enregistrez-la d’abord sur gravatar.com (gratuit et indolore) et n’oubliez pas d’indiquer votre adresse e-mail ici.

Ajoutez votre commentaire ici
  • Ce formulaire accepte les raccourcis SPIP [->url] {{gras}} {italique} <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.

Ajouter un document