mise en œuvre d - · pdf fileb. mplab c18 compiler ... _51297f.pdf. les versions...

41
1 Mise en œuvre d'une communication basée PIC USB à PC I. INTRODUCTION L'objectif de ce tutoriel est de présenter des outils de logiciels libres de base utilisées pour la programmation de PIC intermédiaire. Des informations complémentaires sont données sur la programmation PIC qui ont un support matériel USB. Le tutoriel se concentre sur l'installation, l'intégration et les paramètres de ces outils et à la fin du document, un exemple d'application avec 18F4553 est prévu pour démontrer la communication PIC à PC via USB. Pré-requis: Familiarité avec la programmation en C est nécessaire. Orientée objet fond de programmation pourrait être utile dans la compréhension des exemples. II. Outils Firmware Les logiciels suivants de programmation de l'appareil sont des outils efficaces et suffisants pour la mise en œuvre du PIC firmware. Ceux-ci seront expliquées brièvement dans les paragraphes. A. MPLAB IDE MPLAB® IDE est un outil de développement de firmware puissant qui prend en charge de nombreuses options de compilation et des interfaces de débogage donc fournit un environnement flexible et structurelle de développement pour le programmeur. Il peut fonctionner sur la plate-forme Windows comme une application 32 bits. L'environnement est tout simplement une application de bloc-notes qui est assisté par des caractéristiques supplémentaires. L'outil est librement fournies par Microchip et sa version finale peut être téléchargé à partir de: www.microchip.com (peut être trouvé dans la section de la conception de la page). Les versions précédentes peuvent être trouvés dans les archives de la page: http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nod eId=1406&dDoc Nom = en023073 Ici, l'installation de la version 8.43 de MPLAB va être expliqué. La procédure d'installation peut varier en fonction de la version finale de l'outil. Par conséquent, veuillez consulter les documents pertinents avant d'installer la version finale.

Upload: ngoquynh

Post on 02-Feb-2018

225 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Mise en œuvre d -   · PDF fileB. MPLAB C18 Compiler ...   _51297f.pdf. Les versions précédentes peuvent être trouvés dans les

 

  1  

Mise en œuvre d'une communication basée PIC USB à PC

I. INTRODUCTION

L'objectif de ce tutoriel est de présenter des outils de logiciels libres de base utilisées pour la programmation de PIC intermédiaire. Des informations complémentaires sont données sur la programmation PIC qui ont un support matériel USB. Le tutoriel se concentre sur l'installation, l'intégration et les paramètres de ces outils et à la fin du document, un exemple d'application avec 18F4553 est prévu pour démontrer la communication PIC à PC via USB.

Pré-requis:

Familiarité avec la programmation en C est nécessaire. Orientée objet fond de programmation pourrait être utile dans la compréhension des exemples.

II. Outils Firmware

Les logiciels suivants de programmation de l'appareil sont des outils efficaces et suffisants pour la mise en œuvre du PIC firmware. Ceux-ci seront expliquées brièvement dans les paragraphes.

A. MPLAB IDE

MPLAB® IDE est un outil de développement de firmware puissant qui prend en charge de nombreuses options de compilation et des interfaces de débogage donc fournit un environnement flexible et structurelle de développement pour le programmeur. Il peut fonctionner sur la plate-forme Windows comme une application 32 bits. L'environnement est tout simplement une application de bloc-notes qui est assisté par des caractéristiques supplémentaires. L'outil est librement fournies par Microchip et sa version finale peut être téléchargé à partir de: www.microchip.com (peut être trouvé dans la section de la conception de la page). Les versions précédentes peuvent être trouvés dans les archives de la page: http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1406&dDoc Nom = en023073

Ici, l'installation de la version 8.43 de MPLAB va être expliqué. La procédure d'installation peut varier en fonction de la version finale de l'outil. Par conséquent, veuillez consulter les documents pertinents avant d'installer la version finale.

Page 2: Mise en œuvre d -   · PDF fileB. MPLAB C18 Compiler ...   _51297f.pdf. Les versions précédentes peuvent être trouvés dans les

 

  2  

1) Télécharger le MPLAB 8.43 de la webpage1:

http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1406&dDoc Nom = en019469 & part = SW007002

2) Extraire le package zip dans un dossier

3) Si il ya une installation précédente du logiciel (plus de 8,43), retirez-le avant l'installation.

1 Si les pages sont mises à jour, vous pouvez trouver les versions finales (ainsi que les versions précédentes) des outils logiciels présentés dans ce document dans les sections pertinentes de la page Web à puce ou des archives.

4-1

METU-EEE EE 494 Engineering Design II

4) Dans le dossier extrait, exécutez le fichier setup.exe avec un profil administratif et suivez les remarques recommandées, accepter les termes de la licence, sélectionnez l'installation complète etc

5) A ce stade, MPLAB validera votre installation qui prendra environ 10-30 minutes selon la façon dont vous suivez les instructions. Si vous avez oublié de retirer les installations précédentes, le programme va d'abord essayer de désinstaller ces configurations.

6) Après un certain temps, le programme d'installation vous demande d'installer le compilateur C HI-TECH qui est le compilateur par défaut pour PIC10 / 12/16 microcontrôleurs à être utilisé dans MPLAB. Sélectionnez Oui pour installer la version finale du compilateur (9.70 est la version finale de ce compilateur pour l'instant).

Page 3: Mise en œuvre d -   · PDF fileB. MPLAB C18 Compiler ...   _51297f.pdf. Les versions précédentes peuvent être trouvés dans les

 

  3  

Figure 1: Installation de HI-TECH C Compiler

7) Cliquez sur Suivant, acceptez l'accord de licence, notez sur le répertoire d'installation, cochez l'option "Ajouter le chemin de l'environnement".

8) Redémarrez votre ordinateur

Après l'installation de MPLAB IDE est terminée, vous pouvez voir la documentation relative à divers outils et patchs utilisés dans MPLAB.

Page 4: Mise en œuvre d -   · PDF fileB. MPLAB C18 Compiler ...   _51297f.pdf. Les versions précédentes peuvent être trouvés dans les

 

  4  

Figure 2: Notes de mise à jour et outils mis en place pour MPLAB

Si vous avez des problèmes avec les étapes d'installation, reportez-vous aux documentations de MPLAB de sa page web. De la page Web, vous pouvez également trouver des liens utiles pour la rédaction de codes en C avec des exemples d'applications documentées par les communautés de MPLAB et forums, décrivant les procédures de demande (configurations matérielles, des options de compilation) ainsi (http://www.microchip.com/stellent / idcplg? IdcService = SS_GET_PAGE & nodeId = 1408). Dans ce document, seule la procédure en ce qui concerne la mise en œuvre d'une communication simple PIC à PC via le port USB est présenté. Vous êtes invités à consulter les documentations, les exemples et les forums des éditeurs de logiciel / matériel dans les étapes de mise en œuvre d'applications spécifiques à la tâche (A à D conversion, PWM, minuteries, etc).

B. MPLAB C18 Compiler

Compilateur MPLAB® C18 est l'un des outils de compilation pour la programmation MCU PIC18. Il est soutenu par MPLAB IDE comme un compilateur; très peu d'effort est donc nécessaire par le programmeur pour compiler le code source. Il ya aussi d'autres outils du compilateur C de MPLAB pour programmer 16 et 32 bits PIC microcontrôleurs (PIC24 et PIC32). Cependant, seul le compilateur C18 est considéré dans ce tutoriel car il est le principal outil de programmation des dispositifs les PIC18 les

Page 5: Mise en œuvre d -   · PDF fileB. MPLAB C18 Compiler ...   _51297f.pdf. Les versions précédentes peuvent être trouvés dans les

 

  5  

plus couramment utilisés sur le marché (PIC18F4550, PIC18F2550, PIC18F4450 etc).

L'outil a été connu sous le nom MPLAB C18 Compiler Student Edition et était en mesure de soutenir optimisations de code pendant 60 jours. Dernièrement, il a été mis à niveau pour séparer finales de presse (gratuit) dans lequel les optimisations de code sont limitées pour une utilisation académique. Des versions gratuites du compilateur C18 avec des optimisations de code pendant 60 jours sont disponibles sur la page Web (Télécharger la version d'évaluation standard):

http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1406&dDoc Nom = en010014.

On peut trouver de l'installation, les mises à niveau et la DEVICES2 SOUTENU dans les notes de version du compilateur C18: C18-http://ww1.microchip.com/downloads/en/DeviceDoc/MPLAB- README.html. Toutefois, afin d'effectuer une installation précise, quelques-uns des points clés au cours de cette procédure sont la peine d'être souligné ici.

1 1) Télécharger la version standard de 60 jours d'évaluation (v3.34) à partir du lien ci-dessus, exécutez le programme avec un profil administratif.

2. 2) Indiquez le répertoire d'installation. Il est fortement recommandé de définir le répertoire C: \ MCC18

3. 3) Sélectionnez toutes les options comme dans la figure 3:

Page 6: Mise en œuvre d -   · PDF fileB. MPLAB C18 Compiler ...   _51297f.pdf. Les versions précédentes peuvent être trouvés dans les

 

  6  

Figure 3: Installation de C18 Compiler, en attribuant les composants à installer

4) Sélectionnez toutes les options d'inclusion pour les variables d'environnement et chemin comme dans la Figure 4.

2 Les périphériques pris en charge sont importants dans le choix du compilateur (ou vice versa). C18 compilateur ne supporte pas les dispositifs de PIC16F877 ou PIC16F84 couramment utilisés. Cependant, il existe d'autres compilateurs comme CCS compilateur C ou (HITECH C comme un gratuit) qui peut être utilisé pour programmer ces derniers. Ces compilateurs peuvent également être intégrés à l'environnement MPLAB, la procédure d'intégration qui peut être le sujet d'autres tutoriels pour ce cours.

Page 7: Mise en œuvre d -   · PDF fileB. MPLAB C18 Compiler ...   _51297f.pdf. Les versions précédentes peuvent être trouvés dans les

 

  7  

Figure 4: Installation du compilateur C18, les paramètres de chemin et env. les variables

5) Sélectionnez toutes les options pour configurer MPLAB de gérer entièrement le compilateur (Figure 5).

Page 8: Mise en œuvre d -   · PDF fileB. MPLAB C18 Compiler ...   _51297f.pdf. Les versions précédentes peuvent être trouvés dans les

 

  8  

Figure 5: Installation du compilateur C18, les paramètres de MPLAB

Une fois l'installation terminée, vous devrez peut-être redémarrer votre système. La documentation relative aux bibliothèques du compilateur C18 peut être trouvé à: http://ww1.microchip.com/downloads/en/DeviceDoc/MPLAB_C18_Libraries_51297f.pdf. Les versions précédentes peuvent être trouvés dans les archives du site.

Cadre C Microchip FS-USB

Grâce à la technologie de plus en plus, presque tous les ordinateurs personnels (en particulier les ceux portables) préfèrent utiliser la communication USB avec les périphériques. La raison en est que l'USB a certains avantages par rapport aux autres protocoles de communication (RS232, RS485, la communication parallèle) comme la haute bande passante dans le transfert, communication série, etc Par conséquent, avec l'augmentation du besoin de communication USB, des appareils (MCU ou MPU) qui ont intégré dans le matériel USB (périphérique ou hôte) est devenu disponible sur le marché.

Page 9: Mise en œuvre d -   · PDF fileB. MPLAB C18 Compiler ...   _51297f.pdf. Les versions précédentes peuvent être trouvés dans les

 

  9  

Ici, le cadre USB2.0 fourni par Microchip sera expliqué brièvement. Le cadre se compose de plusieurs packages et des exemples qui sont utilisés pour mettre en œuvre les applications hôtes USB périphérique USB ou. Les classes prises en charge par ce cadre sont Communication Device Class (CDC), Human Interface Device (HID), périphérique de stockage de masse (MSD) et les dispositifs de classe génériques. En outre, différents types de transfert de données sont possibles avec ce cadre comme en vrac, interrompent et modes isochrones. Le lecteur peut trouver des informations détaillées sur USB2.0 à http://www.usb.org/developers/docs/

Il est à noter ici que le cadre Microchip USB pour être décrit en charge complète de transfert de données de vitesse. En d'autres termes, la vitesse de communication maximale qui peut être obtenue avec ces dispositifs et le cadre est 12Mo / s. En outre, le cadre est prend en charge PIC24F et PIC32 ainsi que des dispositifs PIC18. Par conséquent, on doit considérer les besoins en bande passante et l'appareil d'une application spécifique avant de choisir le cadre comme un outil logiciel.

Le cadre Microchip FSUSB v2.6 (de la version finale pour le moment) est disponible à l'adresse:

http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=2680&dDoc Nom = en537044. (Vous pouvez également trouver les versions précédentes de la page d'archive de puce)

Vous pouvez le télécharger gratuitement et l'installer facilement dans votre système (ce n'est pas une installation fait; seulement extraire le paquet dans un répertoire spécifique). Vous pouvez trouver une explication détaillée du cadre (pour chaque exemple d'application qu'il contient) dans la documentation.

III. Application PC-côté - Outils logiciels

Comme c'est le principal objectif de ce tutoriel pour mettre en place un système de communication USB basé entre un microcontrôleur et un PC, il est également nécessaire d'utiliser un logiciel sur le côté de l'ordinateur pour gérer l'envoi et la réception des données ainsi que le firmware. A cet effet, vous pouvez choisir n'importe quel programme qui peut soutenir le contrôle du transfert de données. En outre, vous pouvez développer le code source par vous-même en utilisant les fonctionnalités de l'environnement de développement. Quelques exemples de ces environnements sont Matlab, Visual Studio, Visual Studio.NET et Borland.

Page 10: Mise en œuvre d -   · PDF fileB. MPLAB C18 Compiler ...   _51297f.pdf. Les versions précédentes peuvent être trouvés dans les

 

  10  

L'environnement de programmation choisi de mettre en œuvre l'exemple d'application USB dans ce tutoriel est Microsoft Visual Studio.NET 2005 Professional Edition, le package d'installation qui peut être trouvé à:

ftp://ftp.cc.metu.edu.tr/PackagePrograms/Microsoft/Visual_Studio_Pro_2005_English/.

Il est fourni par notre université à metų étudiants à développer des applications basées .NET gratuitement. Mais comme mentionné précédemment, on peut mettre en œuvre à peu près les mêmes applications utilisant d'autres environnements de programmation.

IV. Exemple d'application: Communication Device Class

Comme une application simple, la mise en œuvre d'une classe de dispositif de communication est donnée à titre d'exemple dans ce tutoriel. L'application qui sera discuté ici est basé sur le cadre de Microchip USB, les exemples de ce qui se trouve dans votre répertoire d'installation. En supposant que le cadre de Microchip est extrait de C: \ Solutions de Microchip, l'exemple que nous irons ici est le périphérique USB - CDC - Démo de base qui est essentiellement une application émulant le port COM via un port USB.

Avant le départ, il sera bénéfique pour vous de comprendre l'idée de base de bootloader. Pour cette raison, s'il vous plaît se référer au tutoriel liée à "En Circuit Serial Programming et Bootloaders" qui est disponible dans la page web du cours.

Pour le moment, il est supposé que le PIC18F4553 de périphérique est disponible pour le projet. Ce dispositif est soutenu par tous les outils de micrologiciel décrites ci-dessus. Toutefois, les exemples dans le répertoire de solutions de Microchip sont prévus pour le 18F4550 de l'appareil (et certains autres appareils PIC) qui est un dispositif plus couramment utilisé de PIC USB (et plus disponible dans un marché). Les deux appareils appartiennent à la même famille avec de légères différences dans leur matériel. Par exemple PIC18F4553 soutient 12bit conversion A / N 10 bits alors que PIC18F4550 a un convertisseur A / D, etc (voir leurs documentations ou fiches techniques).

Pour commencer, il ya 3 dossiers dans le dispositif Microchip Solutions / USB - CDC - répertoire de démonstration de base, à savoir le firmware, inf (le fichier du pilote) et le logiciel PC Exemple. Premièrement entrez le répertoire du firmware. Vous verrez beaucoup de projets MPLAB préparés

Page 11: Mise en œuvre d -   · PDF fileB. MPLAB C18 Compiler ...   _51297f.pdf. Les versions précédentes peuvent être trouvés dans les

 

  11  

pour les différents appareils de PIC avec plusieurs options matérielles de programmation. Pour notre exemple, vous sélectionnez celui nommé USB Device-CDC-Basic Demo-C18-PICDEM FSUSB.mcp (attention, vous devrez sélectionner le fichier avec l'extension .mcp). Ouvrez le fichier, vous verrez le projet sur l'environnement MPLAB (Figure 6).

Figure 6: Interface utilisateur Paramètres IDE MPLAB Bootloader USB CMPS et Sélection du périphérique

Vous pouvez voir les fichiers de projet et de leur organisation dans le cadre du firmware décrit sur la fenêtre Projet (l'un sur la gauche de l'écran dans la figure 6 Si on ne voit pas, sélectionnez Affichage -> Project). Habituellement, il est préférable de travailler dans un espace de travail ordonné. Par conséquent, vous pouvez faire les fenêtres ancrables en cliquant sur les icônes du coin supérieur gauche (figure 7).

Page 12: Mise en œuvre d -   · PDF fileB. MPLAB C18 Compiler ...   _51297f.pdf. Les versions précédentes peuvent être trouvés dans les

 

  12  

Figure 7: CDC exemple, la configuration de votre espace de travail

Tout d'abord, ce firmware est prêt à fonctionner avec le bootloader HID (voir le tutoriel sur les programmes d'amorçage). Pour modifier le projet de travailler avec le bootloader de Microchip (MCHPUSB fournisseur), vous devez modifier le script de linker (rm 18F4550 - HID Bootload.lkr). Cliquez droit sur le dossier de script de liaison et sélectionnez ajouter des fichiers.

Page 13: Mise en œuvre d -   · PDF fileB. MPLAB C18 Compiler ...   _51297f.pdf. Les versions précédentes peuvent être trouvés dans les

 

  13  

Figure 8: CDC exemple, les paramètres du fichier bootloader de liaison

Sélectionnez rm18f4550 - MCHPUSB Bootload.lkr -> Ouvrir. Maintenant, vous avez deux scripts de liaison. L'un d'eux doit être retiré. Faites un clic droit sur HID Bootload script linker -> Supprimer.

Maintenant, comme nous travaillons avec 18F4553 (18F4550 pas) que nous devrions faire quelques modifications sur le script de linker MCHPUSB. Ouvrez le rm18f4550 - fichier MCHPUSB Bootload.lkr en double-cliquant dessus. Modifiez la ligne contenant p18f4550.lib comme p18f4553.lib, enregistrez le fichier par Ctrl + S. Faites un clic droit sur l'espace de travail contenant les codes pour le fichier de liaison (Figure 9)

Page 14: Mise en œuvre d -   · PDF fileB. MPLAB C18 Compiler ...   _51297f.pdf. Les versions précédentes peuvent être trouvés dans les

 

  14  

Figure 9: CDC exemple, la modification du script de linker

Cliquez sur Propriétés. Sélectionnez Utiliser la fenêtre à onglets pour voir tous les documents ouverts dans une seule page.

Page 15: Mise en œuvre d -   · PDF fileB. MPLAB C18 Compiler ...   _51297f.pdf. Les versions précédentes peuvent être trouvés dans les

 

  15  

Figure 10: CDC exemple, la configuration de l'espace de travail

Sélectionnez OK. Comme vous pouvez le voir sur le script de liaison, il contient des informations sur la mémoire de l'appareil que vous programmez. Il ya des régions inaccessibles pour protéger les variables internes utilisées dans le cadre de USB. Autres régions non protégées sont épargnés pour le programmeur pour les variables statiques et la mémoire de code de l'application. Il est fortement recommandé de ne pas modifier les déclarations de la région dans ce dossier.

Cliquez sur le projet sur la barre de menu et choisissez "Select Language Toolsuite". Assurez-vous que la suite d'outils active est Microchip C18 et vérifier l'assembleur, éditeur de liens, un compilateur et les répertoires de bibliothécaire. Cliquez sur OK.

Ouvrez HardwareProfile.h de la fenêtre du projet en double-cliquant sur le fichier. Trouvez la ligne contenant # include "HardwareProfile - PICDEM FSUSB.h".

Page 16: Mise en œuvre d -   · PDF fileB. MPLAB C18 Compiler ...   _51297f.pdf. Les versions précédentes peuvent être trouvés dans les

 

  16  

Figure 11: CDC exemple, la modification de "HardwareProfile.h"

Modifiez la ligne ci-dessus pour #if (défini (__ de 18F4550) || défini (__ 18F4553)) pour inclure le dispositif de 18f4553 dans le cadre. Faites un clic droit sur la ligne contenant "HardwareProfile - PICDEM FSUSB.h" (Figure 12)

Page 17: Mise en œuvre d -   · PDF fileB. MPLAB C18 Compiler ...   _51297f.pdf. Les versions précédentes peuvent être trouvés dans les

 

  17  

Figure 12: CDC exemple, accédant à "HardwareProfile - PICDEM FSUSB.h"

Sélectionnez Open File "HardwareProfile - PICDEM FSUSB.h". La raison de le faire, c'est que nous devrions changer le profil matériel de programmation de travailler avec le bootloader MCHPUSB. Vous avez sans doute remarqué que ce fichier n'est pas inclus dans la vue du projet. Il n'y a donc pas d'autre moyen d'accéder à ce document. Cependant, vous pouvez inclure à votre projet et l'accès que le fichier plus facilement. Dans ce fichier, recherchez la ligne contenant PROGRAMMABLE_WITH_USB_HID_BOOTLOADER #define. Commentaire de cette ligne et supprimez le #define PROGRAMMABLE_WITH_USB_MCHPUSB_BOOTLOADER de ligne qui est au-dessus de cela.

Maintenant, presque tout est ok et un réglage final est laissé pour le firmware. Cliquez sur Configurer sur la barre de menu et choisissez "Sélectionner un périphérique".

Page 18: Mise en œuvre d -   · PDF fileB. MPLAB C18 Compiler ...   _51297f.pdf. Les versions précédentes peuvent être trouvés dans les

 

  18  

Figure 13: CDC exemple, la sélection de l'appareil

Modifiez votre appareil à PIC18F4553. Sélectionnez OK.

Page 19: Mise en œuvre d -   · PDF fileB. MPLAB C18 Compiler ...   _51297f.pdf. Les versions précédentes peuvent être trouvés dans les

 

  19  

Figure 14: CDC exemple, changer le dispositif

Comme mentionné précédemment, cet exemple de projet par défaut a été préparé pour le 18F4550 de l'appareil. Si vous préférez 18F4550 dans votre application, vous n'avez pas besoin de faire de telles sélections de l'appareil dans l'application par défaut. En outre, si vous préférez bootloader HID, vous n'avez pas besoin de faire des changements dans les fichiers de script de liaison et profile.h matériel.

Maintenant, cliquez sur Générer tout pour construire le projet. Si vous aviez fait tout droit, vous verrez "BUILD RÉUSSI" dans la fenêtre de sortie qui signifie que tout va well☺.

Brève explication de l'exemple firmware

Pour résumer ce que nous avons fait jusqu'à présent, nous avons changé l'exemple de cadre à travailler avec le dispositif PIC18F4553 et modifié les codes pour rendre notre dispositif soit programmable avec le bootloader MCHPUSB. Maintenant, nous allons creuser dans l'exemple un peu et oligo certains codes pour comprendre le fonctionnement de cet exemple et de l'organisation du cadre de firmware. Ouvrez le fichier main.c. Vous verrez d'abord certains codes liés à la configuration par défaut des périphériques

Page 20: Mise en œuvre d -   · PDF fileB. MPLAB C18 Compiler ...   _51297f.pdf. Les versions précédentes peuvent être trouvés dans les

 

  20  

pris en charge et leur environnement de programmation dans ce fichier. Certains d'entre eux sont la protection par code, chien de garde, PLL division etc Il suffit de les passer et s'arrêter quand vous voyez les fichiers d'en-tête inclus, variable globale et des déclarations de prototypes de fonction.

Figure 15: CDC exemple, comprendre le firmware

Dans la section Variables, vous verrez deux tableaux omble à savoir la USB_In_Buffer et USB_Out_Buffer, à la fois d'avoir une longueur 64 Ici, USB_In_Buffer est le tableau utilisé pour envoyer les données à l'ordinateur et USB_Out_Buffer est celui utilisé pour recevoir les paquets de PC (Don 't se confondre, les noms et de sortie se réfère à côté du PC dans ce cadre). Il est également une variable nommée stringPrinted de type BOOL (plus tard, vous verrez ce qu'il fait). Maintenant, allez trouver ci-dessous et la fonction principale.

Page 21: Mise en œuvre d -   · PDF fileB. MPLAB C18 Compiler ...   _51297f.pdf. Les versions précédentes peuvent être trouvés dans les

 

  21  

Figure 16: CDC exemple, la fonction principale dans le firmware

Ici vous pouvez voir que la principale fonction appelle la fonction processio () dans une boucle infinie (while (1)) et juste avant cela, il effectue certaines tâches USB (Vous pouvez jeter un oeil à ces fonctions par la recherche de leurs déclarations avec ctrl + Maj + F). Maintenant, trouver la déclaration de la fonction processio () dans lequel les opérations de transfert USB sont effectuées.

Page 22: Mise en œuvre d -   · PDF fileB. MPLAB C18 Compiler ...   _51297f.pdf. Les versions précédentes peuvent être trouvés dans les

 

  22  

Figure 17: fonctions CDC exemple, entrée et de sortie dans le cadre

Ici, vous verrez que, la fonction BlinkUSBStatus est appelé en premier dans lequel les deux LED connectées aux broches D0 et D1 sont cligna des yeux pour démontrer le statut USB (voir les définitions des états USB utilisés dans ce cadre dans la définition de fonction). Après que l'if est donnée pour le commutateur 2 (vous pouvez trouver la définition de sw2 dans "HardwareProfile - PICDEM FSUSB.h"). Vous pouvez facilement comprendre que lorsque cet interrupteur est enfoncé une "touche enfoncée" chaîne est envoyée à l'ordinateur. La variable globale stringPrinted permet de désactiver cet événement étant tiré plus d'une fois lorsqu'il est pressé.

Après cela, le principal si le contrôle de la déclaration opérations E / S vient. Lorsque la clé USB est prêt pour le transfert (si (mUSBUSARTIsTxTrfReady ())), les invites de l'appareil (getsUSBUSART (USB_Out_Buffer, 64)) s'il existe des données envoyées par le PC. Lorsque le nombre d'octets reçus est supérieur à 0, les données reçues est incrémenté de 1 (sauf cas 0x0D) et renvoyé à un PC (putUSBUSART (USB_In_Buffer, numBytesRead)).

Page 23: Mise en œuvre d -   · PDF fileB. MPLAB C18 Compiler ...   _51297f.pdf. Les versions précédentes peuvent être trouvés dans les

 

  23  

Figure 18: CDC exemple, comprendre le fonctionnement du firmware Installation du matériel

Pour cet exemple, vous devez construire le circuit suivant qui est constitué de composants discrets minimales et votre microcontrôleur. Encore une fois ici, il est supposé que le firmware du bootloader a été préalablement programmé pour l'appareil (voir les tutoriels sur les programmes d'amorçage).

Page 24: Mise en œuvre d -   · PDF fileB. MPLAB C18 Compiler ...   _51297f.pdf. Les versions précédentes peuvent être trouvés dans les

 

  24  

Figure 19: Le matériel primitif utilisé dans le cadre

Le cristal utilisé dans ce circuit est de commutation à 20 MHz. Cependant, comme vous plonger dans ce firmware, vous verrez que la vitesse requise pour le transfert USB est 48MHz. Par conséquent, la vitesse est augmentée par des générateurs de PLL interne (voir les codes de configuration dans main.c) pour faire fonctionner l'appareil à 48MHz. Par conséquent, vous pouvez utiliser n'importe quel cristal de travailler à des vitesses différentes, pourvu que vous modifiez les paramètres en conséquence PLL (Cette propriété de PLL est uniquement valable pour les périphériques USB PIC; vous ne pouvez pas le faire par exemple avec PIC16F877).

La question la plus importante que vous devez prêter attention à ce que vous allez fournir votre circuit à partir de votre PC via le port USB. Par conséquent, soyez prudent lorsque vous préparez le câblage pour connecter votre appareil au port. Vous risquez de provoquer un dommage irréparable sur votre ordinateur. Vous devez connecter le Vdd et GND de votre circuit de la figure 19 à s'approprier broches du connecteur USB. Par ailleurs, ne confondez pas la broche VUSB du dispositif de PIC18 avec la broche d'alimentation du bus USB; ils ne sont pas au même noeud. Vous pouvez placer un condensateur (560nF) pour que la broche de votre périphérique USB PIC.

Page 25: Mise en œuvre d -   · PDF fileB. MPLAB C18 Compiler ...   _51297f.pdf. Les versions précédentes peuvent être trouvés dans les

 

  25  

Dans la figure 20, vous pouvez voir la photo et les diagrammes des broches du-A horizontal connecteur USB type mâle (pour le côté de l'appareil) et son support (pour le côté PC).

Figure 20: connecteurs USB et leurs configurations de broches.

Lorsque vous connectez les broches dans le mauvais ordre (Vbus et GND), vous pouvez graver votre appareil ou votre PC.

NOTE IMPORTANTE: Il ya quelques limitations de puissance d'hôtes USB décrits par le protocole USB 2.0. Il fournit 5V (5.1V max) et peut fournir un courant maximum de 500 mA en fonction de ces spécifications. Par conséquent, réfléchir à deux fois si vous voulez, par exemple, pour entraîner un moteur de l'USB qui nécessite une grande quantité de courant. Vous pouvez causer un dommage irréparable sur votre ordinateur si vous dépassez ces spécifications.

Lors de la construction de votre circuit sur la carte de prototypage, être aussi propre que possible; utiliser des câbles courts, éviter des changements sur les composants, utilisez des câbles similaires pour chaque ligne (puissance, GND), etc Ce qui suit est un exemple d'un circuit "propre" à la recherche qui réduit les problèmes indésirables causés par la construction désordonnée d'un circuit.

Programmation du firmware via Bootloader

Bien que cette section a été démontré dans les tutoriels sur les programmes d'amorçage, par souci d'exhaustivité dans l'exemple, il est également prévu ici.

Page 26: Mise en œuvre d -   · PDF fileB. MPLAB C18 Compiler ...   _51297f.pdf. Les versions précédentes peuvent être trouvés dans les

 

  26  

Après vous être assuré que vous avez mis en place avec précision le circuit à bord, branchez-le sur l'un des ports USB. Exécutez l'application bootloader "PDFUSB.exe" situé sur "C: \ Solutions Microchip \ Outils \ USB Pdfsusb".

Figure 22: Programmation du firmware via bootloader

Lorsque vous cliquez sur la liste des périphériques que vous ne verrez pas n'importe quel appareil connecté à votre ordinateur comme un dispositif de bootloader. Maintenant, appuyez et maintenez le bouton de bootloader (RB4) et tout en maintenant que appuyez sur le bouton de réinitialisation. Relâchez le bouton de réinitialisation et après que relâchez le bouton de bootloading; vous verrez le début bootloader du firmware pour fonctionner sur dispositif de PIC (vous remarquerez le clignotement sur Led1 et Led2) et sera reconnu par votre PC. Si les leds ne clignotent pas encore alors il ya un problème (probablement vous avez connecté D + et broches D- mauvaises).

Page 27: Mise en œuvre d -   · PDF fileB. MPLAB C18 Compiler ...   _51297f.pdf. Les versions précédentes peuvent être trouvés dans les

 

  27  

Figure 23: Exécution du bootloader

Page 28: Mise en œuvre d -   · PDF fileB. MPLAB C18 Compiler ...   _51297f.pdf. Les versions précédentes peuvent être trouvés dans les

 

  28  

Sélectionnez le périphérique de démarrage dans la liste et après que charger le fichier HEX que vous avez compilé (CDC base Demo).

Figure 24: Chargement du fichier HEX à programmer

Page 29: Mise en œuvre d -   · PDF fileB. MPLAB C18 Compiler ...   _51297f.pdf. Les versions précédentes peuvent être trouvés dans les

 

  29  

Sélectionnez "Non" pour utiliser les paramètres de configuration par défaut de la société dans le message à venir. Appuyez sur "Device Program" et attendre la fin de la programmation. Si vous ne voyez pas les messages d'erreur, vous pouvez appuyer sur "Exécuter" (ou le bouton de réinitialisation sur l'appareil) pour exécuter le firmware CDC.

Présentation de l'appareil à l'ordinateur - installation des fichiers du pilote

En tant que votre périphérique USB est un dispositif abstrait quatre de votre ordinateur, vous devez définir sur votre PC. Pour ce faire, vous devez utiliser les fichiers .inf fournis par le firmware. Lorsque vous démarrez votre firmware CDC, votre ordinateur vous demandera l'emplacement du fichier du pilote demandant "un nouveau matériel détecté" message.

Figure 25: installation du fichier de pilote pour le dispositif CDC

Sélectionnez "Rechercher et installer le pilote logiciel (recommandé)". Tout d'abord, votre système va rechercher le fichier de pilote mais finalement il ne peut pas le trouver. Ensuite, vous devez localiser le fichier vous-même.

Page 30: Mise en œuvre d -   · PDF fileB. MPLAB C18 Compiler ...   _51297f.pdf. Les versions précédentes peuvent être trouvés dans les

 

  30  

Figure 26: Installation du pilote CDC

Sélectionnez «Je n'ai pas le disque. Montrez-moi d'autres options ". Parcourir pour sélectionner le fichier et de dossier inf dans le répertoire de base CDC Démo.

Page 31: Mise en œuvre d -   · PDF fileB. MPLAB C18 Compiler ...   _51297f.pdf. Les versions précédentes peuvent être trouvés dans les

 

  31  

Figure 27: Paramètres pour l'installation du pilote

Comme vous êtes l'éditeur de l'appareil, il ne sera pas vérifiée par votre système. Sélectionnez "Installer ce pilote quand même".

Page 32: Mise en œuvre d -   · PDF fileB. MPLAB C18 Compiler ...   _51297f.pdf. Les versions précédentes peuvent être trouvés dans les

 

  32  

Figure 28: Dernière étape de l'installation du pilote CDC

Après cela, si vous voyez un clin alternatif sur leds 1 et 2, alors cela signifie que tout est fait correctement.

Explication de l'application côté PC

Comme indiqué précédemment, le Visual Studio NET 2005 Professional Edition est choisi pour mettre en œuvre le logiciel en cours d'exécution sur le côté de l'ordinateur. Le langage de programmation est préférable que C # qui est très similaire à Java en termes de syntaxe. Vous pouvez facilement adapter vos compétences à utiliser cette langue si vous avez fond dans la programmation C ++. En C #, vous n'avez pas à traiter avec des pointeurs, libérer de la mémoire, etc, qui sont quelques-uns des avantages de cette langue dans la programmation.

Maintenant, ouvrez le répertoire C: \ Solutions Microchip \ USB Device - CDC - Basic Demo \ Logiciel PC Exemple \ VCsharp 2005 \ communication de base. Exécutez le fichier de solution "simple CDC Csharp Démo".

Page 33: Mise en œuvre d -   · PDF fileB. MPLAB C18 Compiler ...   _51297f.pdf. Les versions précédentes peuvent être trouvés dans les

 

  33  

PIC18F4550

PicKit 2

MPLAB IDE V8.40

MPLAB C pour PIC18 v3.34 en mode LITE - Un compilateur libre pour les microcontrôleurs PIC 18 de la série

La procédure d'installation est la suivante:

Installez MPLAB IDE. Les paramètres par défaut devrait être bon. Salut-Tech C peut ou peut ne pas être en TD à venir, mais l'installation ne prend pas beaucoup d'espace.

Installez MPLAB compilateur C (C18) .La plupart des paramètres par défaut devrait être bon, mais assurez-vous de sélectionner l'option "Mise à jour MPLAB IDE à utiliser ce MPLAB C18" l'option d'installation.

Lancer MPLAB IDE (Démarrer -> Tous les programmes -> Microchip -> MPLAB IDE v8.40 -> MPLAB IDE).

Assurez-vous que les fenêtres de projet et de sortie sont ouverts dans l'IDE en allant sur le menu Affichage et cliquez sur les options appropriées.

Sélectionnez votre microcontrôleur dans la Configuration -> Sélectionnez le menu de l'appareil. Cette zone sera également vous montrer tous les programmeurs compatibles pour ce dispositif.

Sélectionnez le programmeur en cliquant sur Programmer -> Select Programmer.

Si votre programmateur est branché, il devrait afficher une routine d'initialisation de la console de sortie.

Vous pouvez également mettre à niveau le micrologiciel sur elle.

Votre configuration globale devrait ressembler à ceci:

Page 34: Mise en œuvre d -   · PDF fileB. MPLAB C18 Compiler ...   _51297f.pdf. Les versions précédentes peuvent être trouvés dans les

 

  34  

MPLAB IDE 3.34

Maintenant, il est temps de commencer un nouveau projet:

Cliquez sur Projet -> Assistant de projet

Sélectionnez votre appareil à la page 2, si elle n'est pas déjà sélectionnée

À la page 3, sélectionnez Microchip C18 Toolsuite. Si des pièces ToolSuite matières ont un X rouge, sélectionnez-les et cliquez sur Parcourir. Les emplacements par défaut pour les fichiers sont les suivants:

MPASM Assembleur - C: \ MCC18 \ MPASM \ mpasmwin.exe

MPLINK Object Linker - C: \ MCC18 \ bin \ mplink.exe (Assurez-vous que vous ne sélectionnez pas _mplink.exe)

MPLAB C18 Compiler - C: \ MCC18 \ bin \ mcc18.exe

MPLIB bibliothécaire - C: \ MCC18 \ bin \ mplib.exe

À la page 4, cliquez sur Parcourir et sélectionnez le nom et l'emplacement de votre nouveau projet (exemple: Mes Documents \ PIC \ tutorial4 \ tutorial4.mcp)

Ne pas ajouter les fichiers existants au projet puisque ce projet sera faite à partir de zéro

Une fois le projet créé, vous devriez être capable de voir les dossiers de projet vide dans la fenêtre de projet

Ouvrir un fichier, ajoutez le fichier d'en-tête de votre PIC et l'enregistrer: Cliquez sur Fichier -> Nouveau.

Ajoutez la ligne

type

# include <p18f4550.h>

Page 35: Mise en œuvre d -   · PDF fileB. MPLAB C18 Compiler ...   _51297f.pdf. Les versions précédentes peuvent être trouvés dans les

 

  35  

avec le cas échéant, inclure le fichier de votre microcontrôleur.

Le compilateur C18 fournit un fichier d'en-tête avec les définitions des ports et broches pour chaque microcontrôleur qu'il soutient. Le répertoire par défaut de ces fichiers est C: \ MCC18 \ h. Par exemple, le fichier 18F4550 comprend le code suivant:

PORTB près volatile externe unsigned char;

près union volatile externe {

struct {

RB0 non signé: 1;

RB1 non signé: 1;

RB2 non signé: 1;

RB3 non signé: 1;

RB4 non signé: 1;

RB5 non signé: 1;

RB6 non signé: 1;

RB7 non signé: 1;

};

struct {

INT0 non signé: 1;

INT1 non signé: 1;

INT2 non signé: 1;

};

struct {

unsigned: 5;

Page 36: Mise en œuvre d -   · PDF fileB. MPLAB C18 Compiler ...   _51297f.pdf. Les versions précédentes peuvent être trouvés dans les

 

  36  

PGM non signé: 1;

unsigned PGC: 1;

DPI non signé: 1;

};

} PORTBbits;

Ce code présente les différentes façons d'aborder broches PORT B. Par exemple, ils peuvent être traités comme un octet par PORTB, ou broches à titre individuel par les PORTBbits syndicaux utilisant PORTBbits.RB0 par PORTBbits.RB7. Lors de sa création comme les interruptions, les broches 0-2 devraient être accessibles que par PORTBbits.INT0 PORTBbits.INT2.

Après l'ajout de la ligne inclure dans le nouveau fichier, il est temps pour le sauver. Cliquez sur Fichier -> Enregistrer et enregistrez-le dans le dossier du projet (elle sera enregistrée comme main.c pour ce tutoriel). Ensuite, soit cocher la case «Ajouter un fichier au projet" en bas de l'écran de sauvegarde ou ajouter ce fichier à votre projet par un clic droit sur les fichiers source dans la fenêtre Projet et en cliquant sur Ajouter des fichiers.

Ajouter une fonction principale vide à votre projet pour faire main.c ressembler à ceci:

# include <p18f4550.h>

void main ()

{

}

Page 37: Mise en œuvre d -   · PDF fileB. MPLAB C18 Compiler ...   _51297f.pdf. Les versions précédentes peuvent être trouvés dans les

 

  37  

C'est maintenant le bon moment pour essayer de construire le projet. Cliquez sur le projet -> Build All. Dans la fenêtre de sortie, il va dire: BUILD FAILED. Si vous faites défiler, vous verrez que la raison de l'erreur est:

main.c: 1: Erreur [1027] incapable de localiser »p18f4550.h '

Pour corriger cette erreur, le répertoire include pour le projet doit être précisé. Pour ce faire, cliquez sur Projet -> Build Options -> Projet. Cliquez sur l'onglet Répertoire et sélectionnez «Inclure chemin de recherche" dans le menu déroulant. Ajouter le répertoire include en cliquant sur Nouveau, puis les points de suspension. Le répertoire par défaut pour les fichiers d'en-tête, comme mentionné ci-dessus, est C: \ MCC18 \ h. Aussi, assurez-vous de spécifier le chemin de recherche de bibliothèque (par défaut: C: \ MCC18 \ lib) et le Chemin Linker-Script Recherche (par défaut: C: \ MCC18 \ bin \ LKR). Maintenant, la construction devrait revenir BUILD réussi.

Ensuite, nous allons configurer le microcontrôleur. Plusieurs documents très utiles sont fournis avec C18 pour faciliter le processus d'apprentissage. Par défaut, ces fichiers se trouvent dans C: \ MCC18 \ doc. Les fichiers suivants sont inclus avec C18 V3.34:

hlpC18Lib - Une vue d'ensemble des fichiers de la bibliothèque MPLAB C18 et les fonctions qui peuvent être inclus dans une application. Ces fichiers peuvent être divisés en trois sections:

périphériques

LCD de caractères

CAN bus

I2C

SPI

UART

général

Classification de caractères (ex: isalpha (), isupper (), isprint ())

Page 38: Mise en œuvre d -   · PDF fileB. MPLAB C18 Compiler ...   _51297f.pdf. Les versions précédentes peuvent être trouvés dans les

 

  38  

Conversion de données (ex: atoi (), itoa (), rand ())

Mémoire et cordes Manupulation (ex: memset (), strcpy (), memcpyram2pgm ())

Delay (ex: Delay1TCY () - 1 retard de cycle, Delay10KTCYx () - retard pour des multiples de 10K cycles)

Reset (ex: isBOR (), isMCLR () - découvrir la cause de la réinitialisation)

Sortie de caractères (ex: sprintf (), usart_putc ())

Math bibliothèques (ex: sin (), cos (), log ())

hlpC18ug - Les détails techniques du compilateur C18, y compris les types de données, pragma, les modèles de mémoire, etc Cela est très utile pour comprendre vraiment ce que vous faites.

hlpCOFFfile - Décrit le format du fichier exécutable créé par le compilateur

hlpPIC18ConfigSet - Décrit les paramètres de configuration (en utilisant # pragma config) pour tous les microcontrôleurs supportés. Nous allons examiner ce dossier.

MPLAB-C18-Apprendre-Started_51295f - Un guide de mise en route de C18. Une lecture fortement recommandée.

PIC18F périphérique Bibliothèque Aide document - Décrit la bibliothèque périphérique pour tous les microcontrôleurs supportés. Pour afficher les détails de la bibliothèque, sélectionnez la famille et périphérique approprié, puis cliquez sur "CLIQUEZ ICI pour le périphérique Support Library Détails pour cet appareil"

Ouvrez hlpPIC18ConfigSet.chm et trouver PIC18F4550 (ou votre microcontrôleur respectif). Ce document répertorie tous les paramètres de configuration disponibles pour cela. À l'heure actuelle, nous ne configurer celles nécessaires pour ce tutoriel fonctionne. Première et la plus importante sont les bits de sélection de l'oscillateur. Sans cela, le microcontrôleur ne fera rien. Pour définir le microcontrôleur à utiliser l'oscillateur interne (1 MHz ou 250 000 instructions / seconde car chaque instruction prend 4 cycles), ajoutez le code suivant juste après les directives comprennent:

Page 39: Mise en œuvre d -   · PDF fileB. MPLAB C18 Compiler ...   _51297f.pdf. Les versions précédentes peuvent être trouvés dans les

 

  39  

#pragma config FOSC = INTOSCIO_EC // oscillateur interne, la fonction port RA6, CE utilisé par USB

Le chien de garde doit également être désactivé. Valeurs de Config peuvent être écrites ligne par ligne ou séparés par des virgules. Par souci de clarté, ils seront listés sur des lignes séparées dans ce tutoriel. Pour désactiver le WDT, ajoutez la ligne suivante:

#pragma config WDT = OFF // Désactiver la minuterie de chien de garde

La configuration physique est semblable à celui de la Leçon 2:

Configuration Tutorial - LED avec résistance 1KOhm

5V - 1KOhm - LED - (20)

Selon le 18F4550 Feuille de données, la broche 20 est PORT D Pin 1.

La présente fiche technique stipule que chaque port dispose de trois registres pour son fonctionnement. Ces registres sont:

TRIS registre (direction de données registre sortie 0 - 1 - entrée)

Registre PORT (lit les niveaux sur les broches de l'appareil)

Registre LAT (verrouillage de sortie)

En d'autres termes, utiliser le registre de PORT pour les opérations d'entrée, la LAT inscrire pour les opérations de sortie et les TRIS créer un compte pour choisir entre entrées et des sorties sur chaque axe individuel. Pour contrôler une LED en utilisant PORT D Pin 1, il va d'abord être réglé à la sortie à l'aide du registre TRIS et ensuite être activée et désactivée à l'aide du registre LAT.

Une déclaration #define peut rendre le code plus lisible. Ajoutez ces lignes après les déclarations #pragma de configuration:

Page 40: Mise en œuvre d -   · PDF fileB. MPLAB C18 Compiler ...   _51297f.pdf. Les versions précédentes peuvent être trouvés dans les

 

  40  

#define ledPin LATDbits.LATD1 // Définir comme ledPin PORT D Pin 1

#define LEDTris TRISDbits.TRISD1 // Définir LEDTris comme TRISD Pin 1

En principal, assurez-PORT D Pin 1 une sortie et mettez-HAUT:

LEDTris = 0; // Set Pin LED direction de données de SORTIE

LedPin = 1; // Set Pin LED

La dernière étape consiste à ajouter une boucle qui permet de basculer l'axe à un intervalle:

while (1)

{

LedPin = ~ ledPin // bascule Pin LED

Delay10KTCYx (25); // cycles de retard 250K (1 seconde à 1 MHz puisque chaque instruction prend 4 cycles)

}

La fonction Delay10KTCx () et d'autres fonctions de retard sont documentés dans hlpC18Lib.chm dans le répertoire de documentation de C18 (voir ci-dessus). Vous aurez besoin d'ajouter la ligne suivante au début de votre fichier:

# include <delays.h>

Maintenant, vous devriez être en mesure de le tester sur le microcontrôleur:

Cliquez sur le projet -> Build All

Cliquez sur Programmer -> Programme

Page 41: Mise en œuvre d -   · PDF fileB. MPLAB C18 Compiler ...   _51297f.pdf. Les versions précédentes peuvent être trouvés dans les

 

  41  

Si les deux étapes ci-dessus ont réussi, cliquez sur Programmer -> Dégagement de réinitialisation