WxPicProgrammeur pour Micro-controlleur PIC
Les Micro-controlleurs PIC sont des produits de la société Microchip
Présentation
WxPic est le portage (approximatif) dans l'environnement de développement Open Source wxWidget, MinGw, Code::Blocks, wxSmith du programme WinPic de DL4YHF.
Dans cette version V1.0, WxPic n'a été testé qu'avec le PIC12F629 et un programmateur série. La probabilité de bugs résiduels avec les autres PIC et les autres interfaces gérées par le programme WinPic d'origine est très élevée. A noter que les PIC12F675, PIC16F630 and PIC16F676 étant très proches du PIC12F629, il est probable que WxPic est capable de les programmer avec succès. Le portage du code pour les 18Fxxxx n'a été ajouté qu'en V1.2 et a encore moins été testé !
WxPic a la même licence que WinPic: WxPic est un logiciel gratuit dont l'utilisation, la modification et la distribution est autorisée dans un but non lucratif.
WxPic inclus des librairies de WinRing0 version 1.3.1a. La Licence et les sources sont sur le site d'OpenLibSys
WXPIC EST FOURNI TEL QUEL SANS AUCUNE GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE. LES RISQUES LIES A L'UTILISATION DE WXPIC ET DE SA DOCUMENTATION SONT EN TOTALITE A LA CHARGE DE L'UTILISATEUR.
La version la plus récente de WxPic et les sources correspondants se trouvent sur le site de WxPic.
HautA quoi sert WxPic ?
En une phrase, WxPic permet, à l'aide d'un PC muni d'un adaptateur (programmateur), de programmer un micro-controlleur PIC. Plus en détail, il permet:
- de charger un fichier au format HEX tels que ceux générés par MPLAB l'outil de développement gratuit de Microchip. Ce fichier définit le contenu binaire de zones mémoire.
- de faire correspondre ces zones mémoire aux différentes plages de mémoire (code, données et configuration) d'un modèle de micro-controlleur PIC à choisir dans une liste de composants supportés.
- d'écrire dans le composant les données du fichier, en totalité ou en partie.
- de relire le contenu du micro-controlleur (si cela est permis par le composant) soit pour le comparer à la mémoire chargée, soit pour le charger en mémoire.
- d'examiner, éditer et sauvegarder au format HEX, le contenu de la mémoire chargée.
Et WxPic peut aussi aider à déboguer un Programmateur PIC fait maison en permettant de commander à la main les entrées du programmateur ainsi que d'ajuster les timing des séquences des opérations automatisées.
HautListe des Micro-controlleurs supportés
- PIC12F629, (testé)
- PIC12F675, PIC16F630, PIC16F676, (similaire au PIC testé)
- PIC16C84, PIC16F84
- PIC16C61, PIC16C71
- PIC16C710, PIC16C711
- PIC10F200/202/204/206
- PIC12F1822
- PIC12F635, PIC12F675, PIC12F683
- PIC12F609, PIC12F615, PIC16F610, PIC16F616
- PIC16F182x
- PIC16F193x, PIC16LF193x (non testé & programmation lente à améliorer)
- PIC16F627, PIC16F627A, PIC16F628, PIC16F628A
- PIC16F636, PIC16F648A
- PIC16F684, PIC16F688
- PIC16F73, PIC16F737, PIC16F74, PIC16F76, PIC16F77
- PIC16F818, PIC16F819
- PIC16F87, PIC16F88
- PIC16F873A...PIC16F877A
- PIC16F88
- dsPIC30F2010 -- dsPIC30F6010, dsPIC30F's
- Et d'autres en développant les fichiers de paramètres adéquats...
Le Support des PIC18Fxxxx de WinPic a été remis dans WxPic à partir de la version V1.2. Cela rajoute les composants suivants (cependant aucun n'a été testé avec WxPic à ce jour) :
- PIC18F2550 PIC18F4455 PIC18F4550 PIC18F2220 PIC18F2320 PIC18F2331 PIC18F2420 PIC18F2431 PIC18F2450 PIC18F2455 PIC18F2480 PIC18F2520 PIC18F2525 PIC18F2539 PIC18F2550 PIC18F2580 PIC18F2585 PIC18F2620 PIC18F2680 PIC18F442 PIC18F4220 PIC18F4320 PIC18F4331 PIC18F4420 PIC18F4431 PIC18F4450 PIC18F4480 PIC18F4520 PIC18F452 PIC18F4525 PIC18F4539 PIC18F4550 PIC18F458 PIC18F4580 PIC18F4585 PIC18F4620 PIC18F4680 PIC18F4685 PIC18F6527 PIC18F6585 PIC18F6680 PIC18F8490
Système requis
Pour utiliser WxPic il faut:
- Un PC sous Windows XP ou Vista,
- Un programmateur de PIC parmi ceux supportés,
- Un port parallèle (LPT1 ou LPT2) ou série (COM1, COM2, ...) disponible compatible avec le programmateur PIC utilisé.
Les programmateurs supportés sont :
- Programmateur F629 (testé)
- COM84 Programmer (code testé avec le Programmateur F629)
- JDM (2) (code testé avec le Programmateur F629)
- PIP84 (non testé)
- Tait Programmer (non testé)
- Microchip AN589 (non testé)
- NOPPP (ou variante avec des pull-up) par Michael A. Covington (testé avec un PIC16F84A)
D'autres programmateurs basés soit sur l'interface série, soit sur l'interface parallèle, peuvent être supportés par l'utilisation d'un fichier texte de description de son interface.
HautInstaller et Excuter WxPic
Windows
Avant d'éxécuter WxPic pour la première fois, vous devez l'installer. C'est une opération simple grâce à l'assistant d'installation fourni. Mais il est conseillé d'effectuer cette opération dans un compte administrateur. Sinon Wxpic ne s'installera pas pour tous les utilisateurs et surtout sera incapable d'accéder au port parallèle.
Pour réaliser l'installation, exécutez simplement l'instaleur multi-langue téléchargé (WxPic-V#.#.#R###-installer.exe) et suivez les instructions:
Commencez par choisir votre langue d'installation.
Lisez et acceptez les termes de la licence et ensuite confirmez les composants à installer. Vous ne devriez rien avoir à changer au niveau des composants à installer excepté les langues que vous pouvez désélectionner si vous pensez utiliser l'interface en anglais uniquement. A noter que le driver WinRing0 est proposé soit en version 32 bits soit en version 64 bit suivant la nature de votre système d'exploitation. C'est automatiquement déterminé par l'installeur. Le programme WxPic est quant à lui toujours en 32 bits afin d'être compatible avec les deux types de système (ce qui n'est pas vrai pour un driver).
Ensuite, vous avez simplement à confirmer le répertoire d'installation et à cliquer sur le bouton Installer. C'est tout, et l'installation de WxPic devrait se terminer dans les 5 secondes.
Enfin vous pouver exécuter WxPic à partir de votre menu Windows Démarrer > Tous les Programmes > WxPic > WxPic. N'oubliez pas d'exécuter WxPic depuis un compte administrateur si vous avez à utiliser le port parallèle. Dans ce cas, sous Vista ou Windows 7, vous aurez à confirmer que vous accepter d'accorder à WxPic les droit administrateurs. Par contre les ports série peuvent être utilisés depuis n'importe quel compte (utilisateur ou administrateur).
Haut
Linux
Sous Linux, l'installation de WxPic est un peu plus compliquée que sous Windows. Cela dépend de la version sur laquelle il doit être installé. Les binaires ne sont fournis que pour Ubuntu 12.04 et CentOS 5.7. Il peuvent cependant être compatibles avec d'autre variantes et/ou versions de Linux. Il faudra essayer pour savoir. Dans le cas où aucun des 2 binaires fournis n'est compatible il reste la construction de binaires compatibles à partir des sources. Dans ce cas se référer à la page sur la génération de WxPic.
Dans le cas d'un OS compatible ou pour tester cette compatibilité, l'installation d'un binaire se fait en suivant ces instructions :
- Installer les libraries wxWidgets listées dans la première ligne de la table des paquets en utilisant soit yum (CentOS) soit apt-get (Ubuntu) ou leur interface graphique.
- Télécharger le fichier TAR des binaires compatible avec l'OS, dont le nom est de la forme WinPic-<OS>-<Release>-bin.tar.gz
- Copier the fichierTAR dans le répertoire /usr
- Décomlpresser le fichiez TAR : gunzip WinPic-<OS>-<Release>-bin.tar.gz
- Extraire les fichiers de l'archive : tar xvf WinPic-<OS>-<Release>-bin.tar.gz
Après installation WxPic apparaît dans le menu Application > Programmation de Gnome. WxPic peut être lancé grâce à lui. Mais il faut le faire depuis le compte root pour permettre l'accès au port parallèle. La simple utilisation du port série ne requiert pas de privilèges.
Sous Ubuntu il n'est pas d'usage d'utiliser le compte root. Avec cet OS il est recommandé d'utliser sudo pour lancer une commande en mode privilégié. La commande suivante sera donc utilisée pour permettre à WxPic d'accéder au port parallèle :
sudo -H wxpic
Attention : il est très important de ne pas oublier le -H de la commande. Le -H permet de déplacer l'environnement de l'utilisateur dans le compte root. Cela évite ainsi à WxPic de créer ses fichiers dans l'environnement de l'utilisateur. En effet ces fichiers créés avec les droits du compte root ne pourraient plus être remplacés ou modifier par l'utilisateur. WxPic vérifie cette condition et prévient l'utilisateur en cas d'erreur. Il n'est pas conseillé de passer outre l'avertissement.
Haut
Arguments de la ligne de commande
Il est possible d'appeler WxPic dans un fichier de commande, or dans un environnement de programmation intégré (IDE) pour effectuer automatiquement une opération sans intervention manuelle. Par exemple il est possible de demander à WxPic de charger un programme depuis un fichier HEX, d'écrire son contenu dans un composant cible et de se terminer après celà.
Les options acceptées sur la ligne de commande sont les suivants :
- <Tout texte ne commançant par une barre oblique ('/') [par un tiret ('-') sous Linux]>
- Ce texte est considéré comme un nom de fichier. Si la ligne de commande contient l'option /p, ce fichier sera chargé en mémoire. Si le fichier ne peut pas être chargé, l'exécution de la ligne de commande est immédiatement arrêtée. Il est alors possible de rechercher manuellement le fichier.
Si la ligne de commande contient le paramètre /r, c'est le nom du fichier HEX qui sera produit.
Si aucune des option /p ou /r ne sont spécifiés, le fichier sera chargé en mémoire mais pas écrit dans le composant.
Un seul fichier peut être spécifié. S'il contient des espaces, il doit être encadré de guillemets. - /p
- Programme le composant à partir du contenu de la mémoire.
- /e
- Efface le composant. Il n'est pas nécessaire de spécifié cette option si l'option /p est spécifiée car le composant est automatiquement effacé avant la programmation.
- /r
- Lit le contenu du composant et le charge en mémoire avant de l'écrire dans le fichier HEX spécifié.
- /v
- Vérifie que le contenu du composant est identique à celui de la mémoire. Ceci n'est pas nécessaire avec l'option /p car la programmation est suivie par une vérification pour la plus par des composants.
- /q
- Termine WxPic. Sans cette commande WxPic doit être arrêté manuellement même en mode ligne de commande.
- /q=<n>
- Termine WxPic après <n> secondes d'attente après la fin des opérations pour laisser le temps de lire les messages. <n> doit être positif ou nul. Si cette commande n'est pas donnée WxPic reste ouvert à la fin de l'exécution des opérations spécifiées par la ligne de commande. Notez cependant qu'en cas d'erreur lors de l'opération de vérification, WxPic interrompt l'exécution de la ligne de commande et donc la commande /q=<n> ne sera pas exécutée.
- /nodelay
- Habituellement, en mode ligne de commande, WxPic attend quelques secondes avant de programmer afin de laisser une chance d'annuler l'opération. Avec cette option /nodelay il n'y a pas délai avant le début de la programmation.
- /overwrite
- Avec cette option WxPic ne demandera pas de confirmation avant d'écraser un fichier existant. A utiliser avec l'option /r si nécessaire.
- /device=XXXX
- Spécifie le type du composant à utiliser. Sans cette option c'est le composant utilisé lors de la dernière session qui sera utilisé. Il ne doit pas y avoir d'espace dans l'option. Exemple:
/device=PIC16F628
- /config_word=XXXX
- Écrase la valeur du mot de configuration qui aurait été lue dans un fichier HEX par la valeur spécifiée. XXXX est la valeur spécifiée avec 4 caractères hexadécimaux. Il ne doit pas y avoir d'espace dans l'option.
- /session=XXXX
- Sélectionne la session XXXX (sans distinction de casse) à la place de la Session par Défaut qui est normalement utilisée lorsque des paramètres sont spécifiés sur la ligne de commande. S'il n'existe qu'une seule session (la Session par Défaut) ce paramètre est ignoré. Si aucun nom de session n'est fourni (/session=) c'est encore la Session par Défaut qui est utilisée.
Si le nom de session contient un espace, le paramètre doit être entouré de guillemets (par exemple: /session="Ma Session" ou "/session=Ma Session")
Sous Windows il ne sera pas possible de spécifier un nom de session contenant lui-même des guillemets.
Sous Linux remplacer le '/' devant les paramètres par '-'
Le déroulement des opérations de la ligne de commande peut être interrompu en appuyant sur Echap. Une erreur lors de la vérification interrompt également le déroulement des opérations.
Lorsqu'un nom de device ou de fichier HEX est fourni par la ligne de commande, celui-ci modifie la configuration de la session choisie (par /session ou celle par défaut). Mais cette modification n'est pas immédiatement sauvegardée. Elle le sera si l'option /q est exécutée ou par une opération qui enregistre la configuration.
Quelques exemples de ligne de commande:
WxPic keyer1.hex /p /q
- Charge le fichier
keyer1.hex
, puis programme son contenu dans le composant connecté et termine WxPic. WxPic /nodelay c:\pic\my_src\keyer1.hex /p /q
- A peu près la même chose, en spécifiant un chemin absolu pour le fichier cette fois et en évitant le délai de 3 secondes avant le début de la programmation qui permet d'interrompre la programmation avant qu'elle n'ait commencé.
-
WxPic /overwrite /r "readout.hex" /q
- Lit le contenu du composant et l'écrit dans le fichier HEX
readout.hex
en écrasant le fichier s'il existe déjà puis se termine.
Interface Utilisateur
L'interface de WxPic est essentiellement constituée
- d'une barre de menus,
- d'une barre de boutons,
- de 7 pages accessibles grâce à leur onglet.
Glossaire
Les termes utilisés dans l'interface utilisateur de WxPic et dans cette aide sont les suivants :
- Composant
- Le micro-controlleur PIC utilisé.
- Code
- Le code éxécutable (programme) du composant.
- Données
- Les données non-volatiles du composant.
- Configuration
- Le ou les mots de configuration ou plus généralement toutes les données de configuration et d'indentification.
- Identification
- Les mots d'identification définis par l'utilisateur ainsi que celui du composant. Ce dernier indique le type du composant.
- Mémoire
- Le tampon interne de WxPic qui conserve l'image du code, des données, et de la configuration du composant.
- Fichier HEX
- Fichier texte décrivant le contenu de plages mémoire, généralement généré par l'outil de développement de Microchip MPLAB. WxPic peut aussi recréer ces fichiers en lisant les composants non protégés.
- Programmateur
- Matériel permettant de lire et programmer un ou plusieurs modèles de composants.
- Interface
- L'interface du programmateur par port série ou parallèle