Le groupe PIC

De Wiki_du_Réseau_des_Electroniciens_du_CNRS
Aller à : navigation, rechercher


Nuvola apps edu miscellaneous.png Introduction

Vous êtes tous les bienvenus pour partager et échanger autour des microcontrôleurs PIC.


La mise en place de ce groupe doit permettre aux électroniciens de notre réseau de mutualiser leurs efforts de développement en partageant leurs bibliothèques de programmes et leurs savoir-faire.

Cela peut ce faire de manière autonome, en participant à enrichir le SVN et le Wiki, pour ça il vous suffit d'avoir simplement vos identifiants et c'est tout. La participation est libre dans la mesure où le travail de chacun est respecté. Les Internautes pourront suivre le contenu de ce Wiki et profiter des nombreux documents libres, leurs remarques peuvent être envoyer par mail à l'animateur du groupe ;-)

Pour les électroniciens du réseau RdE, n'hésitez pas a vous connecter sur le chat IRC, pour discuter ou pour demander de l'aide.

>>> Salon de discussion IRC: /join #pic <<<

Vous pouvez aussi demander une collaboration sur votre projet ou pour vous aider à mettre en place une nouvelle démo ou un tutoriel.

Contacter l'animateur du Groupe PIC par mail


Nuvola apps ksim.png C'est quoi un PIC ?

Un PIC est un microcontrôleur du fabriquant Microchip Technology pouvant ce décliner sous différentes architectures 8, 16 ou 32 bits avec une grande variété de périphériques internes, voir l'outil "Microchip Advanced Part Selector".

Vous pouvez directement programmer ces microcontrôleurs en langage C, voir en C++. L'utilisation des outils de développement en version Free, comme les compilateurs associés à chaque famille, ou les outils de génération de code, utilisable via l'environnement de développement standard de Microchip répondant au nom de MPLAB® X IDE, permet de nombreux développement couvrant la plupart de nos besoins, même exigeants.

Mplabx v3-25.png

Mais de nombreux autres environnements sont également disponible, comme MPIDE similaire à Arduino, de même le projet Open-Source appelé Pinguino, et également directement dans l'IDE Arduino en ajoutant les bibliothèques des cartes à base de microcontrôleur de chez Microchip, ou encore l'IDE et les différents langages supportés par les compilateurs de MikroElektronika.

Voir aussi comment exécuter du code Open-Source Arduino dans un microcontrôleur PIC en utilisant l'environnement MPLAB® X IDE

Il existe une grande variété d'outils et de cartes de développement en fonction de l'architecture choisi, par exemple voici un aperçu pour la famille des PIC 32 bits.

Le groupe est là aussi pour vous permettre de faire les bons choix, organiser des ateliers techniques en région, voir des prêts de matériels.


Farm-Fresh plenum.png Action du groupe de travail

Interface microcontrôleur PIC32 et IHM Python

Projet Pulse Generator


Nuvola apps kdict.png Pages liées sur ce Wiki

Attention, depuis les récentes version d'MPLAB X (dès octobre 2015), et l'utilisation des versions compilteurs :

  • MPLAB XC8 Compiler v1.35 du 28/07/2015
  • MPLAB XC16 Compiler v1.25 du 28/07/2015
  • MPLAB XC32 Compiler v1.40 du 17/06/2015

l'ensemble des tutoriels pour microcontrôleurs PIC réalisés sur le SVN jusqu'en 2015 et l'utilisation des fichiers "Hardware Profile" et "Config Bits", sont à remplacer par l'utilisation des fichiers bsp (Board Support Packages) dans Microchip Libraries for Applications (MLA) ou MPLAB Harmony.

Mplabx 2016-02.png

Voir :

→ Environnement logiciel
→ Recommandation
→ Liens vers les documents du Groupe PIC rédigés via Google Doc
→ SVN: PIC18_Tutoriel
→ SVN: PIC32_Tutoriel
→ SVN: PIC18_Demo
→ SVN: PIC32_Demo
→ Liste des Projets du groupe sur le SVN
→ Le Groupe PIC à besoin de vous ;-)
→ Organisation de la structure des dossiers du Groupe


Nuvola filesystems folder.png Organisation des répertoires sur le SVN

Un travail est actuellement entrepris pour archiver les répertoires ci-dessous dans la zone de téléchargement et renouveler la racine du svn "gt_pic" (https://outils.electroniciens.cnrs.fr/gt_pic), si vous souhaité y participer contacter l'animateur du groupe.

Voici l'ancienne organisation du dossier "electronique" du SVN en attendant de trouver la manière d’organiser celui du gt_pic :

   Groupe_PIC
       |                             _
       +--- _Demo                     |
       +--- _Librairie              |
       +--- _Interface_Utilisateur  |_ Répertoires communs aux différentes architectures PIC
       +--- _Microchip                |
       +--- _Ressource               _|
       |                             _
       +--- PIC18_Demo                |
       +--- PIC18_Datasheet           |
       +--- PIC18_Hardware            |_ Dossiers pour architecture PIC 8 bits
       +--- PIC18_Projet              |
       +--- PIC18_Template            |
       +--- PIC18_Tutoriel         _|
       |                             _
       +--- PIC32_Demo                |
       +--- PIC32_Datasheet           |
       +--- PIC32_Hardware            |_ Dossiers pour architecture PIC 32 bits
       +--- PIC32_Projet              |
       +--- PIC32_Template            |
       +--- PIC32_Tutoriel         _|

Les dossiers "_Demo" et "PICxx_Demo" contiennent des projets mettant en oeuvre les librairies de composants externes, présentés lors de séminaire ou bien réalisés dans le but de participer à la veille technologique du réseau.


Pour plus de renseignement sur l'organisation des dossiers dans le SVN, voir les recommandations sur la page "Premiers pas".


Si vous souhaitez contribuer au groupe PIC du Réseau des Électroniciens et que vous avez besoin d'un peu d'assistance, vous pouvez contacter l'animateur du groupe Arnauld Biganzoli.

Des formations sur mesure de différents niveaux peuvent aussi être organisées dans le cadre du réseau des électroniciens, pour cela il suffit d'en faire la demande auprès de votre comité de pilotage régional ou de votre service de formation permanente.


Merci à tous et bon développement ;-)


Nuvola apps kdict.png Convention de dénomination et organisation des répertoires

Après l'installation de la version v2014-07-22 de Microchip Libraries for Applications (MLA), vous pouvez lire dans le fichier C:\microchip\mla\v2014_07_22\doc\release_notes_mla.htm, le chapitre "4. Current MLA vs. Legacy MLA".

Voici quelques nouveautés de cette rentrée 2014 et la traduction du premier item.


a) Nouveau dossier, convention de dénomination et d'organisation des répertoires de travail:

La raison de ce changement est d'éviter d'avoir des espaces et le mélange de lettres majuscules et minuscules dans les noms des fichiers source et des chemins d'accès. Les espaces et les caractères spéciaux doivent être abandonnés pour une utilisation optimum d'MPLAB® X, en raison de la faible compatibilité des chaînes d'outils. La casse des lettres est maintenant toujours en minuscules, excepté pour les fichiers d'assemblage nécessitant un prétraitement en C, qui doit utiliser l'extension S majuscule. Ce guide permet de réduire les erreurs de casse entre #include nom_fichier et le nom du fichier lui-même, et aussi lors de la configuration des chemins des projets. Le système d'exploitation Windows est insensible à la casse, mais Linux lui est sensible à la casse. Ci-dessous, un comparatif entre l'ancienne et l'actuelle structure de MLA:

Legacy MLA

Current MLA

<mla_install>/Microchip

<mla_install>/framework

<mla_install>/Microchip/Include

<mla_install>/framework

<mla_install>/Microchip/Help

<mla_install>/doc

<mla_install>/[demos]

<mla_install>/apps/[demos]


Cette nouvelle structure de dossiers n'est pas seulement pour MLA, elle est de plus en plus utilisée dans les autres outils logiciels distribués par Microchip. Par exemple dans les démonstrations autour de la carte Explorer16, que vous pouvez télécharger à partir de www.microchip.com/Explorer16. Des explications complémentaires sur l'organisation des fichiers et dossiers se trouvent dans <mla_install>/doc/help_mla_getting_started. Voir C:\microchip\mla\v2014_07_22\doc\help_mla_getting_started.pdf, page 6.


c) GenericTypeDefs.h usage is superseded by the use of C99 fixed width data types:

Usage of type definitions in GenericTypeDefs.h, such as BYTE, WORD, DWORD, is now superseded by C99 fixed width data types such as uint8_t, uint16_t, uint32_t, etc. Include <stdint.h> to use the C99 fixed width data types. The reason for this change is simply a shift to use an existing standard definition, which helps avoid type conflict when combining MLA firmware with other non-MLA firmware.

d) Compiler.h is no longer distributed:

Compiler.h used to serve as a common file to normalize compiler differences. This is now changed to be handled by each application specific build abstraction files.

e) HardwareProfile.h is superseded by system.c, system.h and system_config.h:

The reason for this change is, not all hardware abstraction was possible with just a header file. So a C file is introduced to increase the abstraction flexibility. This in turn helps reduce the number of #if #else seen in the Legacy MLA examples. MPLAB X project organization and the utilization of the MPLAB X build configuration and file exclusion features also contributes to the reduction in the #if #else usages.

i) API changes

There a number of reasons that lead to API changes. One is a shift to adopt a common naming convention to avoid long term naming collision. The naming convention is to go from module to sub-module, and to features/actions. As an example, a common macro in Legacy MLA GetPeripheralClock() is now SYS_CLK_FrequencyPeripheralGet(). Another reason is, when enhancing library capability and features, certain API changes are unavoidable.

=== Le groupe PIC ===
Présentation du Groupe de Travail   >Premiers pas  >Document   >Tutoriel   >Librairie   >Demo   >Projet   >TODO