Graver des PICS

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

Table des matières

Comment graver des PICs à partir d'un PC

Configuration matériel pour graver des PICs vierges ou implanter un nouveau moniteur

La programmation ICSP en espagnol

Utilisation pratique, graver un nouveau moniteur

Création des fichiers moniteurs exécutables (hex)

Comment graver des PICs à partir d'un PC

Juan González Gómez et Andrés Prieto-Moreno Torres nous proposent :

Outils Matériel et logiciel pour le développement d'applications avec les Microcontroleurs PIC sous les plateformes GNU/Linux

Version originale en espagnol : http://www.iearobotics.com/personal/juan/publicaciones/art5/index.html

Vous y trouvrez les sources en lyx et aussi une version en html, pdf et une présentation en Openoffice, j'ai mis une version OpenOffice pres-pic-linux.odp dans le répertoire annexe et voici une partie sur la gravure des pics en français : gravure-pic-linux_fr.odp

Licencia : Se condecen permisos para usar, modificar y/o distribuir este artículo, siempre que se mantenga esta nota.

traduction autorisée en français :
Licence: Vous êtes autorisés à utiliser , modifier et/ou distribuer cet article à condition de mettre cette note.

Cette méthode qui nécessite un programme spécifique Skypic_down (GPL) sera utlisée pour programmer des PICs vierges ou pour recharger un nouveau moniteur.

Pour la gravure de simple programme utilisateur dans un PIC, nous utiliserons un moniteur qui communique par la liaison série

Le cas de la gravure avec un programmateur spécifique est abandonné, il n'amène que des inconvénients :

Ne respecte pas le protocole de la liaison série RS232, contairement à Skypic-down

Nécessite une carte programmation spécifique, un transistor et 3 résistances seulement avec skypic-down.

Configuration matériel pour graver des PICs vierges ou implanter un nouveau moniteur.

Le moniteur complet comprend en fait le programme allégé de : sg-picp-pic16f876-skypic-0.asm

Vous le trouver dans la page : sg-picp.html

Une carte PIC sert de programmateur pour graver un autre PIC, en respectant la norme de la liaison série.

La carte de programmateur sert en fait à transformer une liaison série en entrée en liaison ICSP en sortie.

Attention, vous devrez changer le programme sg_picp16f877.inc lignes 69 à 71 selon votre carte programmateur et votre carte cible

J'ai défini

Nom Signal Carte Programmateur "Graveuse" Carte Cible "à graver"
Clock(Horloge) RB6 RB6
Data (Données) RB7 RB7
RESET/PROG RB5 MCLR

Cela correspond à la carte carte_pic16f877.sch, si vous réalisez 2 de ces cartes il faut relier le connecteur P5 (PLUS)de la carte programmateur "graveuse" au connecteur P1 (PORT B) de la carte cible à graver

Juan dans son fichier sg-picp-pic16f876-skypic-0.asm définit ligne 58 à 60


Nom Signal Carte Programmateur "Graveuse" Carte Cible "à graver"
Clock(Horloge) RB3 RB6
Data (Données) RB7 RB7
RESET/PROG RB4 MCLR

Cela correspond à la carte Skypic


Les explications sont dans ct7.html Les schémas de la Skypic se trouvent dans skypic.html

De façon général, le site de IeaRobotics où vous trouverez toutes les informations utiles en espagnol : http://www.iearobotics.com/

Nous aurons besoin du logiciel skypic-down à l'adresse :

http://www.iearobotics.com/personal/juan/proyectos/skypic-down/skypic.html

Nous téléchargerons skypic-down-x.x.tgz voir sur le site

Si vous voulez compiler (non nécessaire), il vous faut les bibliothèques libstargate à l'adresse :

http://www.iearobotics.com/proyectos/stargate/clientes/libstargate/libstargate.html

libstargate_1.0.1-1_i386.deb : Paquete para Debian/Sarge. Librerías.

libstargate-dev_1.0.1-1_i386.deb : Paquete para Debian/Sarge. Paquete para desarrollo (ficheros .h)

Ces bibliothèques fonctionnent aussi sous Ubuntu Breezy, Dapper, Edgy.

Placer Skypic_down dans /usr/bin/ ou /usr/local/bin/

La programmation ICSP en espagnol

Les commandes du protocole ICSP

http://www.iearobotics.com/proyectos/cuadernos/ct4/comandos.html

ainsi que : http://www.iearobotics.com/proyectos/stargate/servidores/sg-picp/sg-picp.htm

Tout est expliqué dans les paragraphes en jaune :

Servicios específicos: services spécifiques et Ejemplos: exemples

En anglais la documentation de MICROCHIP sur la programmation ICSP en 264 pages

Utilisation pratique, graver un nouveau moniteur

Avec un moniteur complet, lancer gtkterm -r '*', faire un reset sur la carte PIC, appuyer sur 7, pour lancer le programme qui dialogue avec skypic_down. Fermer alors gtkterm

Dans une console, se placer dans le répertoire où est le moniteur.

Lancer skypic_down moniteur.hex -com1 (pour un PIC16F87x)

ou lancer skypic_down moniteurA.hex -com1 -p (pour un PIC16F87xA)

(voir skypic-down --help pour de l'aide en espagnol évidemment !).

Le programme est alors gravé dans le PIC puis vérifié.

Création des fichiers moniteurs exécutables (hex)

Vous trouverez dans le répertoire moniteur des fichiers readme.txt leeme.txt et lisezmoi.txt des explications sur les fichiers suivant le moniteur souhaité.

Pour créer les fichiers dans une console dans le répertoire monitor ou monitorA lancer le script python ./monitor(A).py