Salut tout le monde,
Si vous vous demandez « qu’est ce que c’est ce gros pâté qui suit » c’est la suite logique de http://forums.futura-sciences.com/showthread.php?t=8947
---------------------------------------
Le bootloader est un microprogramme qui s’installe dans le pic et qui évite de le sortir,à chaque fois, de son système pour le reprogrammer (ISP In-System Programmer). Il utilise une l’interface RS232 pour le transfère de programme, donc il faut en plus un max232 dans votre système. Ca augmente le nombre de composants mais ça facilite énormément la programmation (Idéal pour les cartes de développement). Il suffit de brancher le câble série sur votre carte, lancer la programmation, débrancher le câble et voilà votre pic est programmé.
Il fonctionne avec la famille des pic 16F87X
Le site officiel :
http://www.microchipc.com/PIC16bootload/
Vous y trouverez un pack .zip.
Il contient différents microprogrammes bootloader (sources et .hex) en fonction des pic et de leurs quartz.
Dans le répertoire Downloader Windows, il y a le downloader qui permet de transférer vos programmes dans le pic grâce au bootloader.
Schéma de base du programmateur:
Ici vous trouverez un site français :
http://jmandon.free.fr/bootloader/bootloader.htm
Le créateur du site a aussi fait un article dans l’électronique pratique de juin 2002 mais faites attention, j’ai trouvé une erreure le RX et le TX au niveau du DB9 sont inversés.
Sur ce site vous trouverez un autre pack le bootloader.zip qui contient une version française du source du bootloader et le downloader en français.
Les étapes de programmation :
1) Modifiez la configuration de votre bootloader (bootldr.asm) compilez le avec MPLAB ou utilisez le fichier .hex déjà tout fait.
Voici la configuration de mon source pour un pic 16F876A avec un 4Mhz
Il existe 2 versions différentes du bootloader pour les pic version A et les non A donc ne prenez pas un source bootloader (bootldr.asm) pour un 16F876A et ne mettez pas simplement list p=16f876A ça ne marchera pas. Utilisez le bootldra.asm. On m’a dit que c’est du à un système de programmation sur 8it que le non A n’a pas.Code:;================== User setting section ====================================== list p=16f876a ; <<< set type of microcontroller (16f873a or 16f876a) ; set same microcontroller in the project #define ICD_DEBUG 0 ; <<< if using MPLAB ICD Debugger, moves bootloader down 256 bytes to make room for it [0|1] #define FOSC D'4000000' ; <<< set quartz frequence [Hz], max. 20 MHz #define BAUD D'19200' ; <<< set baud rate [bit/sec] #define BAUD_ERROR D'4' ; <<< set baud rate error [%] #define PIN ; <<< set method of bootloader start PIN/TIME ; PIN : start on low level of trigger pin ; TIME: start on receive IDENT byte in TIMEOUT #define TRIGGER PORTC,5 ; <<< only for PIN - set PORT_X,PIN_NR #define TIMEOUT D'2' ; <<< only for TIME - set time [0.1s], max. 25 sec #define WATCHDOGTIMER 0 ; <<< Watchdog timer default OFF/ON [0|1]
2) Programmer votre pic avec un programmateur standard. J’utilise celui ci : http://www.tavernier-c.com/programmateur_de_pic.htm
3) Démarrer le programme PIC downloader, brancher le câble série entre votre carte et le PC.
4) Prenez un programme qui fonctionne pour le test, comme un programme qui allume une led, mais changer avant son adresse de départ, ne laissez pas org 0x0000 mais mettez org 0x0003 (A priori ça change d’une version à l’autre du bootloader on m’a dis que ça devrait fonctionner avec org 0x0000 mais chez moi ça écrase le bootloader … A vérifier)
5) Cliquez sur Ecrire.
6) Pour lancer le transfère, il faut faire un reset du pic (j’ai rajouté un bouton sur ma plaquette, c'est plus simple que de faire un reset avec un fil) soit la barre de progression va jusqu’à la fin et votre pic est programmé (All OK !) soit vous avez (erreur d’écriture) et là il y a eu un problème lors du transfère peut être votre quartz qui n’est pas à la bonne fréquence ou votre débit par défaut, 19200Bd, dans le downloader n’est pas le même que celui du bootloader dans votre pic.
Voilà j’en suis là, maintenant, je dois voir si mon programme s’exécute correctement
J’ai fais une plaquette de développement bootloader avec de l’i2c, un connecteur clavier PC un connecteur pour une manette de jeux DB15 etc
Mon schéma :
La version grand format :
http://www.jelectronique.com/bootloader/schema.jpg
Mon typon est juste à la bonne taille pour la version d’évaluation d’eagle.
La version grand format :
http://www.jelectronique.com/bootloader/typon.jpg
Le schéma et le typon pour eagle : http://www.jelectronique.com/bootloader/bootldr.zip
Si vous avez plus d'infos sur mon problème d'adresse ou si vous plus d'infos sur le bootloader n'hésitez pas.
J'attends vos commentaires
A+
-----