[Projet] Bootloader Pic 16F87X
Répondre à la discussion
Affichage des résultats 1 à 5 sur 5

[Projet] Bootloader Pic 16F87X



  1. #1
    JP

    [Projet] Bootloader Pic 16F87X


    ------

    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

    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]
    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.

    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+

    -----
    Dernière modification par JP ; 23/08/2005 à 20h53.

  2. #2
    inviteb6d767d2

    Re : [Projet] Bootloader Pic 16F87X

    Salut
    ------

    Il y a deux façons de programmer un pic sur sa carte d'application :

    1) Par la méthode de l'ICSP (In circuit Serial Programming)

    2) Par la méthode du bootloader.

    Sur mon site, tu peux trouver les deux méthodes.

    J'ai fait un bootloader qui présente l'avantage de ne pas utiliser l'USART du PIC, afin de le laisser libre pour une autre communication.
    Le logiciel PC adéquat est également en téléchargement.
    L'avantage, c'est qu'il résoud automatiquement le problème de l'adresse 0x00, et fonctionne donc même avec des fichiers hex dont on n'est pas l'auteur.

    A+
    Bigonoff

  3. #3
    JP

    Re : [Projet] Bootloader Pic 16F87X

    Hello,

    Je rajoute ici les liens d'autres discutions sur le bootloader qui sont succeptibles d'interreser:

    http://forums.futura-sciences.com/sh...ad.php?t=10222
    http://forums.futura-sciences.com/sh...ad.php?t=13130

    a+

  4. #4
    invite37693cfc

    Re : [Projet] Bootloader Pic 16F87X

    lut

    pour ce procurer des "pics gratuits" sous reserve de ne pas faire de commerce.
    Ca peut toujours servir pour les jeunes accros de l'electroniques ou les plus agés qui font des essais
    http://sample.microchip.com/Default....stCookies=true

    ++

  5. A voir en vidéo sur Futura
  6. #5
    JP

    Re : [Projet] Bootloader Pic 16F87X

    Salut,

    Voilà je viens de regrouper toutes mes infos sur le sujet, avec un mode d'emploi pas à pas, avec un programme d'exemple, l'explication du problème avec les versions A qui m'a fait m'arracher les cheveux et évidement la solution.

    Tout est là:
    http://www.jelectronique.com/bootloader.php

    a+
    JP
    Dernière modification par JP ; 23/08/2005 à 20h54.

Discussions similaires

  1. Recherche Bootloader pour Pic 16f88
    Par samaudio dans le forum Électronique
    Réponses: 4
    Dernier message: 29/07/2007, 21h26
  2. projet Pic et Accéléromètre
    Par inviteef26fb36 dans le forum Électronique
    Réponses: 0
    Dernier message: 25/04/2007, 09h45
  3. Tiny bootloader pour PIC
    Par invite1469b964 dans le forum Électronique
    Réponses: 4
    Dernier message: 31/03/2007, 16h02
  4. Librairies mathématiques pour pic 16f87X
    Par invited17b2131 dans le forum Électronique
    Réponses: 2
    Dernier message: 24/01/2007, 00h12
  5. Bootloader PIC 16F877
    Par invite890ff058 dans le forum Électronique
    Réponses: 7
    Dernier message: 30/12/2005, 22h30
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...