Caractéristique de la carte

Cette carte permet de gérer le microcontroleur PIC16F877.
Elle est equipée de tous les ports que comporte le microcontroleur.
Elle est également équipée d'une inteface RS232 pour la programmation du PIC.

Cette interface permettra de programmer le PIC par la technique du bootloader.

Schéma fonctionnel

Voici le schéma fonctionnel de la carte :

Voici les datasheets des composants utilisés :

PIC16F877 MAX232 7805 24LC128

Réalisation

  • Typon

  • Listes des composants

  • Cette carte comporte :

    - Résistances
    3 R1,R2,R4 560 ohm
    1 R3 10k
    2 R9,R10 2K2

    - Condensateurs
    2 C1,C2 22pF
    5 C3,C5,C6,C7,C9 22uF
    1 C4 1nF

    - CI
    1 U1 78L05
    1 U3 24LC128
    1 U4 MAX232
    1 U5 PIC16F877

    - Diodes
    3 D1,D5,D6 LED
    1 D2 1N4148

    - Divers
    1 J1 CONN-D9
    1 J2 CONN-H2
    3 J3,J4,J8 CONN-H10
    1 J5 LCD
    1 J6 CONN-H4
    1 RV1 2K2
    1 SW1 Bouton RESET
    1 X1 Quartz 20Mhz

  • Implantation des composants

  • Carte terminée

  • Programmation

    La programmation des microcontroleur PIC peut se faire en différent language :

    - Le basic
    C'est le préféré du débutant.
    Les anciennes versions manquaient de rigueur et produisait un code médiocre, les versions récentes sont meilleures.
    L'inconvénient est que ce langage n'est pas portable, mais le débutant pourra créer rapidement de petites applications sans prétentions.
    C'est un tremplin pour ensuite passer à autre chose.

    - Le langage C
    Un habitué de la programmation sur diverses plate formes choisira le langage C.
    Ce langage est universel, rigoureux et efficace.
    Il permet de tout faire, quel que soit le support.
    Il existe de très nombreux compilateurs pour tous les matériels.
    Ce langage a pour seul défaut d'être d'une approche difficile pour le débutant qui peut avoir du mal pour décoller.

    - L'assembleur
    Il effraie le débutant par son approche complexe.
    C'est toutefois le plus proche de la machine, il produit un code compact et rapide, mais tout doit être défini à la main.
    Il est parfait pour les applications en temps réel qui demandent la maîtrise de timings très courts.
    Il est très stimulant intellectuellement pour qui veut s'impliquer dans des projets complexes.
    Il sera souvent utilisé pour créer des primitives très efficaces qui seront appelées par des routines en C.
    Le C combiné à l'assembleur sera l'outil de base incontournable du programmeur performant.

    L'assembleur présente toutefois un gros inconvénient !
    Un programme en C sera transportable facilement, quasiment sans rien changer sur des dizaines de plate formes, il n'y a pas à se préoccuper du processeur qui fera tourner l'application, c'est le compilateur qui fera tout le travail de traduction (comme d'ailleurs en basic).
    En assembleur c'est tout différent, le travail se fait au niveau de l'instruction et la même routine sera méconnaissable pour deux processeurs différents.
    C'est le seul gros défaut de l'assembleur, chaque changement de circuit demandera à se plonger dans les data books et il faudra toujours garder sous le coude le jeu d'instruction détaillé.
    Il est très difficile de travailler efficacement en parallèle sur des familles différentes en assembleur.

    - Le Pascal
    C'est un des langages pédagogique.
    Il n'est pas utilisé dans l'industrie, le C est plus polyvalent, plus portable et plus riche, la complexité de l'apprentissage est du même ordre.
    Utilisez le si vous l'avez appris à l'école et que vous ne vouliez pas faire d'effort supplémentaire, mais oubliez le si vous choisissez un langage.

    - Delphi
    Delphi est du Pascal habillé avec un gros environnement de programmation.
    Ceux qui l'utilisent en sont contents, mais l'ayant peu pratiqué je ne l'aime pas beaucoup, je préfère le C.

    - Le JAL
    C'est un outil exotique particulier, voisin du C et du Basic et d'un abord simplifié pour des débutants.
    Il produit un code compact, mais malheureusement il ne se compile que sur quelques trop rares circuits de la famille Pic.
    Cette limitation s'avère trop gênante quand il faut s'adapter à des circuits différents pour chaque projet, c'est la raison pour laquelle je ne le développerai pas.

    - Java
    Le Java est proche du C, avec une ouverture vers les réseaux.
    Ne pas confondre évidemment avec Javascript, le langage de script pour html qui n'a strictement rien à voir.

    Notre choix s'est effectué assez naturellement vers le language C ayant une certianes connaissances du language.
    Nous verrons peut être pour integrer dans le C un peu d'assembleur.

    Pour la compilation du code source on utilisera l'environnement de développement intégré MPLAB qui est fourni gratuitement par Microchip.
    En intégrant pour la programmation en C le compilateur PICC Lite de chez HI-TECH

    - Voici la méthode de création d'un project MPLAB avec PICC lite.

    Installation PICC:

    Installer PICC par défaut, il va se loger sur votre disque dur système à l'emplacement c:\HT-PIC.
    Allez dans son répertoire, et créer un dossier nommé Projet (c:\HT-PIC\projet).
    ce dossier est destiné à recevoir vos projets en langage C.

    Installation MPLAB:

    Installer MPLAB par défaut, MPLAB va détecter que vous avez installé PICC
    et vous demandera de le mettre à jour pour fonctionner avec PICC, cliquer ok.

    Création du fichier en langage C essai.c

    Ouvrir le logiciel MPLAB, en haut à gauche, cliquer sur l'icone New file.

    Taper votre code source dans la fenêtre d'édition, nommer ce fichier essai.c et faite une sauvegarde, dans le dossier (c:\HT-PIC\projet\).

    Création d'un projet C avec les logiciels MPLAB et PICC

    Ouvrir le logiciel MPLAB, selectionner Project, puis "Project wizard", Cliquer suivant.

    Choisisser le pic de votre projet, puis cliquer sur suivant.

    Ajout de PICC comme compilateur C

    Dans Active Toolsuite selectionner HI-TECH PICC Toolsuite.
    Cliquer sur PICC Compiler (picc.exe), puis dans location avec le bouton browse rechercher et
    selectionner picc.exe, qui est normalement dans le répertoire indiqué dans l'image ci-dessous.
    Presser suivant.

    Ajout du nom et dossier de destination du Projet

    Project name:
    Donnez un nom à votre projet, comme essai.

    Project Directory:
    Tapez le chemin ou se trouve le dossier du projet (c:\HT-PIC\bin\projet\).
    faire une recherche du dossier avec le bouton browse si nécessaire.

    Presser suivant.

    Ajout du fichier .c à votre projet

    Sélectionner dans la fenêtre de gauche le fichier .c, cliquer sur le bouton Add,cocher la case et cliquer sur Suivant.

    Information du Projet

    Presser Terminer.

    Vous devez voir a présent cette fenêtre sur votre gauche

    Il faut a présent configurer les bits de contrôles du PIC 16F877

    Sélectionner dans l'onglet Configure, puis configuration bits, la fenêtre ci-dessous apparait.

    Description des bits

    Oscillator:
    Choisir XT si quartz de 4mHz, 1mHz, ou 200kHz
    Choisir HS si quartz de 20mHz, 8mHz, ou 4mHz.
    Choisir LP si quartz de 200kHz, ou 32kHz.
    Choisir RC si l'oscillateur est fait avec une résistance et un condensateur.

    Watchdog Timer: Chien de garde
    Sa fonction est provoquer un reset du pic, quand le compteur TMR0 compte au dela de 255.
    Power up Timer: Temporisation de démarrage
    Une temporisation de 72mS est activé avant de demarrer votre programme, si ce bit est sur ON.

    Brown out Reset:
    Un reset est activé, lors d'une baisse de tension de l'alimentation du PIC, si ce bit est sur ON.

    Low Voltage Program: Programmation en mode basse tension
    La programmation doit s'effectuer en basse tension (5V) si ce bit est sur Enable.
    Si il est sur Disable, programmation avec une tension Vpp de 13V.

    Flash Program Write: Ecriture dans la mémoire Flash
    Placer ce bit sur Enable, afin que votre programme puisse écrire dans la mémoire flash.
    Placer le sur Disable dans le cas contraire.

    Data EE Read Protect: Protection en lecture de l'EEprom interne
    La mémoire EEprom du PIC est protégé en lecture, si ce bit est sur ON.
    La lecture est autorisé dans le cas contraire.

    Code Protect: Protection en lecture du programme
    La mémoire Flash est protégé en lecture si ce bit est sur ON.
    La lecture est autorisé dans le cas contraire.

    Configuration niveau de compilation de PICC avec MPLAB

    Le langage C ANSI comparé à l'ASM prend plus de place dans la mémoire flash du PIC,
    les programmeurs de HI-TECH ont donc prévu un niveau de compilation réglable de 0 a 9,
    pour optimiser le code C.

    Dans l'onglet Projet de MPLAB, sélectionner Build Options, puis led.c et
    configurer la compilation comme dans l'image ci-dessous, et cliquer sur
    le bouton Appliquer.

    Configuration du Linker

    Sélectionner Build Options, puis Project et choisir l'onglet PICC Linker.
    Cocher Génerate map file, et cliquer le bouton Ok.
    Cette option permet de générer le fichier .hex

    Ajout du mode Simulation a votre projet

    Valider le mode simulation avec l'onglet Debugger, sélectionner Select Tool,
    et choisir 3 MPLAB SIM.

    Paramètres de simulation

    Onglet Debugger choisir Settings et configurer le quartz du PIC à 4 mHz.

    Vous pouver aussi régler la vitesse d'animation de la simulation
    dans l'onglet Debugger Animation (500ms par défaut).

    Compilation du fichier .c

    Il et temps de compiler le fichier .c afin de vérifier si la configuration de MPLAB avec PICC fontionne bien.

    Sélectionner .c dans la fenêtre projet.mcp, afin de faire apparaitre le fichier.

    Cliquer sur l'icone Buid All pour compiler votre projet .c,
    si vous avez le message BUILD SUCCEEDED, bravo vous avez réussi la configuration de MPLAB avec PICC.

    Après compilation réussie vous êtes en possession d'un fichier .hex qui doit étre transférer dans le PIC

    Pour transférer le programme dans le PIC nous allons utiliser la technique du Bootloader.
    Le Bootloader est un programme résidant dans le PIC en haut de la ROM (256 dernières adresses).
    Il permet de mettre à jour le programme contenu dans le PIC en écrivant directement dans la ROM via l’UART et le port RS232 du PC.
    Le BootLoader est protégé contre les écritures dans la zone réservée à son code.
    Il ne permet pas d’écrire les fusibles ni l’EEPROM interne.
    Au démarrage du PIC, celui-ci scrute le port série pendant environ 2 secondes ; s’il reçoit le caractère ‘A’ envoyé par le logiciel de téléchargement, il passe en mode programmation, sinon il exécute le programme.
    On peut prévoir de reseter le PIC à la réception du caractère ‘A’ dans le programme pour passer directement dans le bootloader.
    On peut aussi appuyer sur le bouton reset et “Start” de CD2M simultanément.
    Dans ce cas, il faut donc prévoir un bouton de reset pour reseter le PIC.

    Comme vous l'avez compris nous utiliserons le programmme CD2M pour charger le programme par bootloader.

    Vous pouvez télécharger ce logiciel sur le site de MICROCHIP ou ci dessous.

    CD2M

    Cependant il nous faut forcement un programmateur de PIC pour charger le bootloader dans le PIC.
    Nous utiliserons IC-PROG pour mettre le bootloader dans le PIC.
    Attention il faut choisir son bootloader en fonction du PIC du quartz et de la vitesse de transmission sur la liaison série

    Vous pouvez télécharger ce logiciel sur le site de IC-PROG ou ci dessous.

    IC-PROG V1.05D

    Essais

    Pour les essais visiter la partie essai de la carte PIC dans la rubriques les essais


    Accueil | La carte PIC | La carte Moteur | Les essais | Le forum |