Test d’un clone du programmateur PICKIT2

Après trois semaines d’attente, je viens de recevoir un clone chinois du programmateur de MicroChip PICKIT2 commandé sur e-Bay. Je vous délivre mes impressions dans cet article ainsi que les premiers tests.

Le kit se compose:

  • du programmateur en lui-même dans un boîtier plastique noir style porte-clé avec 3 dels en face avant, un bouton poussoir, un connecteur mini USB pour la liaison au PC et un connecteur SIL pour connection vers votre maquette
  • d’un câble de liaison USB
  • d’un câble adaptateur SIL femelle vers SIL femelle
  • d’un câble adaptateur SIL femelle vers un connecteur RJ12
  • d’un changeur de genre mâle-mâle, en fait un bout de barrette sécable
Programmateur PICKIT2 sur port USB

Programmateur PICKIT2 sur port USB

Au moment du déballage du programmateur, je travaille sous GNU/Linux Debian. Je commence donc brutalement par connecter ce programmateur à un port USB et je regarde les messages du noyau:

Vous voyez très bien que ce programmateur a été immédiatement reconnu en tant que « PICkit 2 Microcontroller Programmer ». Visiblement ce programmateur est équipé d’un PIC18F2550 (PIC avec support USB 2.0 natif). C’est bien parti…
Je décide donc de regarder s’il existe quelque chose pour ce programmateur qui fonctionne nativement sous Linux. Après quelques minutes de recherche, je me rends sur la page officielle du PICKIT2 sur le site de Microchip. Je découvre alors avec grand plaisir que MicroChip propose un logiciel (sources et exécutable) pour programmer les PICs avec ce kit. Je télécharge alors la version compilée pour noyau 2.6, la désarchive, lance un terminal en mode super utilisateur puis teste l’exécutable sans paramètre. J’obtiens la sortie suivante:

Parfait…pas de problème de librairie et en prime vous avez toute la syntaxe de la ligne de commande ! Continuons un peu en voyant si le programmateur est bien détecté avec la ligne de commande suivante:

De mieux en mieux…le programmateur est trouvé ! La version du firmware de ce programmateur est 2.20.00. Or dans le répertoire issu de l’archive du logiciel, vous trouvez un firmware en version 2.32.00. Puisque nous sommes bien parti, continuons et soyons fou…mise à jour du firmware du programmateur avec la commande suivante:

Alors là je suis bluffé…cinq minutes que j’ai ce programmateur et tout se passe à merveille…et en plus sous Linux. Vérifions tout de même que la mise à jour à fonctionnée:

Trés bien, rien à dire…Je pense que le PIC18F2550 du programmateur doit avoir un bootloader USB embarqué ce qui permet de faire une mise à jour du firmware. Je peux me tromper vu que je n’ai pas vérifié.
Passons maintenant à un test réel de programmation d’un PIC16F876 sur une carte de TP utilisé à mon travail. La carte de TP étant équipé d’un connecteur RJ12, j’utilise un des câble fourni dans le kit pour me connecter. Je vérifie au passage que les signaux VPP/MCLR (broche 1), VDD target (br 2), VSS (masse) (br 3), PGD (br 4), PGC (br 5) et Auxiliaire (br 6) du programmateur sont compatibles avec notre brochage du RJ12. Allez, je câble et je teste si le PIC est détecté avec la commande suivante:

Effectivement j’ai bien un PIC16F876 sur ma carte de test. Je remplace celui-ci par un PIC18F2520 et je relance la commande:

Toujours très bien. Le PIC18F2520 est bien reconnu. Je vais donc pouvoir passer à la programmation d’un fichier HEX. Celui-ci a été produit avec le compilateur de CCS sous Microsoft Windows. Pour programmer le PIC16F876 je tape la commande suivante:

La programmation se passe correctement. Une petite explication des paramètres est tout de même nécessaire:

  • -P : lance une recherche automatique du PIC à programmer. Il est peut être plus judicieux de donner le type de PIC à programmer directement (Ex: -PPIC16F876)
  • -R : permet d’informer le programmateur que la ligne MCLR sur le PIC est mise à l’état haut par une résistance de tirage vers le haut. Voir dans la doc le passage sur les paramètres -R et -T
  • -M : efface toutes les données du PIC (flash, eeprom, fusibles), programme toutes les données du PIC puis effectue une vérification
  • -F : mettre aprés ce paramètre le nom du fichier HEX à programmer

Ce programmateur est donc tout à fait en mesure d’être utilisé sous GNU/Linux pour réaliser la programmation des µC PIC de chez Microchip. Un regret cependant, les outils disponibles sous Microsoft Windows n’ont pas été portés sous GNU/Linux : un mini analyseur logique 3 voies et un convertisseur USB-Série. Enfin vu le prix de l’ensemble (17euros frais de port compris) ca vaut tout de même le coup !

Problème de tension de programmation VPP

Dans la description ci-dessus, j’ai omis (volontairement) de signaler un problème qui est apparu lors de la détection automatique du PIC. En effet, le programmateur m’informait systématiquement que la tension de programmation VPP était incorrecte. Je suis donc passé sous Microsoft Windows et installé le logiciel de programmation pour le PIC Kit2. Dans ce logiciel, un utilitaire de diagnostique permet de détecter les problèmes courants (alimentation Vcc de la carte incorrecte, tension de programmation Vpp trop basse, test de la ligne MCLR, test des lignes PGC et PGD). Or lors de ces tests, la tension VPP ne montait pas à 12V minimum comme prévu. En fait cette tension s’écroulait trés rapidement et la programmation ne pouvait s’effectuer correctement. En observant à l’oscilloscope les signaux issu du convertisseur Boost qui génére le 12V à partir du 5V de l’USB et du schéma du PICKit2 fourni par MicroChip, j’en ai dédui que la bobine avait une valeur trop faible (MicroChip recommande une 680µH, or c’est une 470µH sur le kit). Dans la photographie ci-dessous, la bobine entourée en rouge est celle que j’ai remplacé, cependant dans mon PICKIT2 cette même bobine n’était pas celle ci-dessous mais une beaucoup plus petite donc supportant un courant plus faible. Je ne disposais pas de bobine CMS pour faire un test, j’ai donc utilisé une bobine classique de 1mH en remplacement de la 470µH. A partir de ce moment là tout a fonctionné correctement. Cependant en observant la tension VPP à l’oscillo celle-ci décroit aprés 2s de programmation. Donc il risque d’y avoir des problèmes lors de la programmation de « gros » programmes. Je n’en ai pas parlé dans l’article car il se peut que ce soit mon programmateur qui soit défectueux. Pour comparer j’ai commandé à mon travail un « vrai » programmateur PICKit2, je pourrai alors comparer les signaux et la qualité des composants.

Intérieur du programmateur PICKit2

Intérieur du programmateur PICKit2

5 réflexions sur « Test d’un clone du programmateur PICKIT2 »

  1. Ping : Electronique Innovante » Robot hexapode - Robot “Fourmi”

  2. ahamedBacar

    Salut
    Quel commande t’as lancé sur le terminal pour regarder le message du noyau après connexion du hardware à l’ordinateur ?
    Cordialement.

  3. Ping : [Tuto] Programmer un PIC18F46K22 avec un clône PicKit 2 | Scrat iPhone

Laisser un commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.