Club robotique de Sophia-Antipolis

Accueil > Essais > Développement et mise au point > Programmateur USB pour AVR

Programmateur USB pour AVR

dimanche 12 novembre 2006, par Eric P.

Ayant récemment mis à niveau ma configuration machine, je me retrouve avec une carte mère dépourvue de port parallèle. Et oui, maintenant que toutes les imprimantes ou presque utilisent une connexion USB, nos bons vieux ports parallèles sont à peu près autant d’actualité que les dinosaures...

Première tentative

Pour parer cela, rusé que je suis, j’avais également acheté une carte d’extension PCI, qui ajoute un port parallèle et deux ports série. Ca marche très bien... mais pour l’imprimante seulement. Mon brave programmateur maison sur port parallèle n’est reconnu ni part avrdude, ni par PonyProg, ni par personne.

J’y vois une explication possible : les adresses mémoire auxquelles sont mappés les ports ajoutés par cette carte ne correspondent pas du tout aux adresses habituelles, et je n’ai pas trouvé moyen de les remapper. Attention, ne pas généraliser cela à toutes les cartes d’extension de ce type, car il semblerait que certaines d’entre elles offrent cette possibilité. C’est peut-être juste un problème de driver, car pratiquement toutes ces cartes sont basées sur le chip NETMOS. Mais rien à faire avec ma carte d’extension en tout cas.

Quoi qu’il en soit, me voilà le bec dans l’eau avec mes ports en rab et mon programmateur en rade.

Passons à l’USB

Ce n’est pas un scoop, mais il existe des programmateurs connectables sur un port USB, et se présentant au système comme des programmateurs série. On trouve même les schémas pour les faire et le firmware à y télécharger (car puisqu’on ne peut pas manipuler les divers signaux de l’ISP avec le port série comme on le fait avec le port parallèle, on confie cette tâche à un µC avec qui on communique via l’UART).

J’ai donc commandé chez In-Circuit le programmateur USB avec le câble Kanda (nom officiel du câble avec le HE10).

Programmateur USB In-Circuit

Pour info, la doc du bestiau est en document attaché à cet article.

Je sais qu’il y en a qui vont me dire : "ouais, mais ce n’est pas Kdo ton truc". Je leur répondrais seulement que je valorise le temps que ça m’aurait pris d’arriver au même résultat avec la méthode DIY(1) à beaucoup plus que les 30 euros du bidule. Il faut savoir de temps en temps aller au plus rationnel. A chacun de voir ensuite...

Résultat des courses

Il marche très bien avec avrdude par exemple, en spécifiant avr910 comme type de programmateur, et une vitesse de 115200 bauds. Attention à ce que le port COM utilisé soit entre 1 et 4, avrdude ne sachant travailler qu’avec ceux-là. Si votre programmateur a été affecté à un port au-delà de 4, utilisez la réaffectation des ports pour y remédier :
 Gestionnaire de périphériques
 Ports (COM et LPT)
 le port en question
 clic droit -> propriétés
 onglet "Paramètres du port"
 bouton "Avancé..."
 combo "Numéro du port COM"

Pour avrdude, il suffit ensuite de passer les paramètres suivants :

-P COMx -c avr910 -b 115200

en plus des paramètres habituels.

Attention à bien mettre COM en majuscules. Ca a commencé par ne pas marcher chez moi, parce que je l’avais écrit en minuscules.

Pour faire plus classe, j’ai ajouté la définition du programmateur dans le fichier avrdude.conf avec les lignes suivantes :

programmer
  id    = "icprog";
  desc  = "In-circuit ICprog-AVR2.0";
  baudrate = 115200;
  type  = avr910;
;

Il suffit alors d’utiliser les options suivantes pour avrdude :

-P COMx -c icprog

Et pour PonyProg ?

Et bien vous l’oubliez.

En effet notre outil hennissant ne sait pas gérer les protocoles avr910 et consorts. Dommage pour la visualisation et la manipulation en clair des fuse et lock bits 🙁

Il faudra donc faire ce type de configuration comme les vrais durs, c’est à dire avec avrdude, en calculant la valeur de l’octet complet, grâce une fois de plus à la datasheet du µC.

La bonne nouvelle

C’est que c’est beaucoup plus rapide qu’avant pour lire/écrire le contenu du µC.


(1) DIY = Do It Yourself

Vos commentaires

  • Le 12 novembre 2006 à 08:29, par Julien H. En réponse à : USB-UART et régulateur linéaire 5V

    Ce site propose également un module USB/UART à 15 euros (il s’agit du protocole série utilisé par les microcontrôleurs) et d’un régulateur 5V à 10€ permettant d’alimenter directement une carte Atmel à partir d’une batterie ou d’une alim standard.

    • Le 16 septembre 2007 à 21:03, par Julien H. En réponse à : USB-UART et régulateur linéaire 5V

      après achat, je confirme le côté pratique de cette alimentation, avec 3 connecteurs en entrée (jack, pins, bornier à vis) et 2 connecteurs Jack en sortie, permettant une connexion simple et immédiate.

    Répondre à ce message

  • Le 4 février 2010 à 22:25, par Gerard En réponse à : Programmateur USB pour AVR

    J’étais aussi dans le même cas : une carte pci avec chips Netmos pour avoir un port //.
    PonyProg n’en voulait pas ; son fichier de configuration est situé dans son sous répertoire ; il se nomme PONYPROG2000 ; il suffit de repérer la ligne "LPTPorts" et de modifier la première adresse qui s’y trouve. Cette adresse est a récupérer dans la première ligne des ressources de ce port via le gestionnaire de périphérique.
    Chez moi la ligne modifiée apparait comme suit :LPTPorts=EC00,278,3BC.
    PonyProg fonctionne maintenant avec cette carte.
    Cela peut sans doute aider d’autres amateurs d’avr dans le même cas.

    • Le 7 février 2010 à 11:10, par ? En réponse à : Programmateur USB pour AVR

      Merci beaucoup pour cette information Gérard. Je pense qu’elle pourra effectivement dépanner d’autres fervents de PonyProg.

      Je dois reconnaître que pour ma part je suis depuis passé à avrdude ou stk500 avec le programmateur MKII d’Atmel.

    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 champ accepte les raccourcis SPIP {{gras}} {italique} -*liste [texte->url] <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.