Outils libres pour développer des applications sur les micro-contrôleurs PIC sous GNU Linux.

P.Launay 2006

This program is free software; you can redistribute it and/or modify  it under the terms of the GNU General Public License as published by   the Free Software Foundation; either version 2 of the License, or  (at your option) any later version.

  This program is distributed in the hope that it will be useful,  but WITHOUT ANY WARRANTY; without even the implied warranty of   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  GNU General Public License for more details.

  You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software   Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA

La licence GPL en anglais COPYING
La licence GPL non officiel en français gplfr.html
La licence GPL non officiel en espagnol gples.html

Remerciements, Acknowledgements, Agradecimientos.


Ce travail est basé principalement sur 3 logiciels spécifiques :

1)Un moniteur libre (GPL) de Jack Dallhausen (USA) qui permet de programmer simplement un programme utilisateur avec la liaison série.
Site : http://www.wsu.edu/~jackdoll/jmon/index.htm

2)Un programmateur de PIC libre (GPL)avec un graveur de PIC qui reçoit un fichier par la liaison série standard RS232 et grave un autre PIC avec une liaison ICSP. Logiciel et matériel de Juan Juan González Gómez et Andrés Prieto-Moreno Torres (Espagne), qui ont aussi donner le nom à ce travail avec « Herramientas hardware y software para el desarrollo de aplicaciones con Microcontroladores PIC bajo plataformas GNU/Linux »
Site : http://www.iearobotics.com/

3)Le projet Open Source Liberlab, un labo électronique de poche de François Schnell, Université Louis Pasteur (France), qui permet de communiquer par liaison série entre un PIC et le PC et de gérer une interface graphique.
« Le projet Open Source Liberlab propose une initiation ludique à l'EXAO (Expérimentation Assistée par Ordinateur) avec la réalisation d'un laboratoire personnel ... »
Site : http://www.liberlab.net/
Les autres logiciels plus classiques employés peuvent être installés dans une distribution Debian Etch
avec Synaptic très facilement. Logiciels utilisés  


Enfin, je remercie l'association Gulliver (Groupe d'Utilisateurs Linux et Logiciels libres d'Ille et Vilaine et des Environs de Rennes) et ses adhérents qui m'ont aidé à réaliser ce travail.



Démonstration des outils libres utilisés

Le Matériel


Dans un premier temps, il vous faut une carte PIC ou une plaquette d'essai
voir liberlab liberlab navigation carte liberlab
Un schéma de base pour PIC



Ce schéma a été réalisé avec le logiciel libre Kicad (GPL)
Vous trouverez ce schéma et d'autres dans le répertoire kicad_pic

Pour l'alimentation vous pourrez utiliser une vieille alimentation de PC à récupérer dans un vieux PC ou chez un assembleur de PC
Pour les branchements reportez vous sur ce site POLO ASTUCIEN UN PEU DE TECHNIQUE

N'oublier pas de mettre une résistance de 1k (1000 ohms) entre PS-ON et la masse borne 3 et 4 du connecteur de puissance, sans cette résistance si l'alimentation est sur "1" derrière le ventilateur ne marche pas, avec cette résistance le ventilateur doit fonctionner.

Technique: cette résistance qui va de PS-On à la masse, s'appelle résistance de tirage vers le bas ou pull down en anglais, on dira mettre une résistance de tirage vers le bas de 1k sur PS-ON ou mettre un pull down de 1k sur PS-ON

Quelques repères, sur les alimentations de PC le noir c'est la masse, le rouge le +5V et le jaune le +12V, si vous préférez une autre alimentation, elle devra fournir au minimum du +5V 300mA et du +12V 100mA pour commencer, tout dépend ensuite de vos propres applications.

N'oublier pas un câble série DB9-DB9 non croisé entre votre PIC et le PC

Utilisation pratique

La première chose à faire est de mettre le moniteur dans le PIC16F877.

La première fois plusieurs techniques : vous pouvez trouver un programmateur de PIC et vous mettez le programme moniteur.hex dedans lire la documentation dans moniteur pour créer celui de votre choix.

Vous voulez fabriquer un programmateur :
Programmateur sur port parallèle : vous trouverez dans kicad_pic un répertoire progPic avec tous les fichiers pour le fabriquer
Programmateur sur port série : si vous avez installez Kicad, dans le répertoire demos/pic_programmer, vous avez tous les fichiers pour le fabriquer

Pour programmer vous pourrez utiliser Pikdev sur KDE, sur Gnome vous pouvez installer juste pkp lire le fichier aide_pkp


Une fois le premier PIC programmé, vous pourrez en programmer d'autres vierges ou changer de moniteur avec 2 pics et le logiciel skypic_down, pour des informations plus complètes :

Graver des PICs

Vous souhaitez mettre un simple programme utilisateur dans un PIC avec la liaison série


Pour en savoir plus

Moniteur PIC16F877

Un petit exemple très simple de programme C avec SDCC et d'utilisation avec gtkterm : Programme simple

Quelques Bibliothèques pour SDCC pour la liaison série, l'I2C, le Timer1, afficheur LCD source bibliothèque

Des exemples dans sdcc

Un exemple I2C avec l'horloge temps réel DS1307 pour SDCC 2.6.0 i2c_ds1307

Un autre petit exemple de télécommande RCS80 télécommande

Des explications en odt ou en html dans télécommande RCS80

Pour finir voici la iste des fichiers présents sur ce site

Liste des fichiers de Pik Digor

A vous la main, écrivez vos programmes en assembleur ou en C et testez les avec GTKTerm ou Liberlab, faites des belles présentations en python et adapter Liberlab à vos besoins et n'oubliez pas de les publier sous licence GPL

Partager vos connaissances et vos problèmes avec d'autres utilisateurs de GNU Linux
Contacter un GUL dans votre région Liste des GUL francophones

Un problème dans cette présentation, me contacter per point launay arobase free point fr