Accueil🇫🇷Chercher

MicrocontrĂ´leur PIC

Les microcontrôleurs PIC (ou PICmicro dans la terminologie du fabricant) forment une famille de microcontrôleurs de la société Microchip. Ces microcontrôleurs sont dérivés du PIC1650 développé à l'origine par la division microélectronique de General Instrument.

Le nom PIC n'est pas officiellement un acronyme, bien que la traduction en « Peripheral Interface Controller » (« contrôleur d'interface périphérique ») soit généralement admise. Cependant, à l'époque du développement du PIC1650 par General Instrument, PIC était un acronyme de « Programmable Intelligent Computer » ou « Programmable Integrated Circuit ».

PIC 1655A.
Divers microcontrĂ´leurs PIC.
PIC 16F684, 12F675 et 10F222.

Mise en Ĺ“uvre

Un microcontrôleur PIC est une unité de traitement et d’exécution de l'information à laquelle on a ajouté des périphériques internes permettant de réaliser des montages sans nécessiter l’ajout de composants annexes. Un microcontrôleur PIC peut donc fonctionner de façon autonome après programmation.

Les PIC intègrent une mémoire programme non volatile (FLASH), une mémoire de données volatile, une mémoire de donnée non volatile (E2PROM), des ports d'entrée-sortie (numériques, analogiques, MLI, UART, bus I2C, Timers, SPI, etc.), et même une horloge, bien que des bases de temps externes puissent être employées. Certains modèles disposent de ports et unités de traitement de l'USB et Ethernet.

Architecture

Les PIC se conforment à l'architecture Harvard : ils possèdent une mémoire de programme et une mémoire de données séparées. La plupart des instructions occupent un mot de la mémoire de programme. La taille de ces mots dépend du modèle de PIC, tandis que la mémoire de données est organisée en octets.

Les PIC sont des processeurs dits RISC, c'est-à-dire processeur à jeu d’instruction réduit. Plus on réduit le nombre d’instructions, plus facile et plus rapide en est le décodage, et plus vite le composant fonctionne. Cependant, il faut plus d'instructions pour réaliser une opération complexe.

Le nombre de cycles d'horloge (Tosc) par cycle instruction (Tcy) dépend de l'architecture du PIC : Tcy=4*Tosc (8 bits), Tcy=2*Tosc (16 bits), Tcy=Tosc (32 bits).

Comme la plupart des instructions sont exécutées en un seul cycle, hormis les sauts, cela donne une puissance de l’ordre de MIPS par MHz (1 million d'instructions par seconde).

Les PIC peuvent ĂŞtre cadencĂ©s Ă  20/32 MHz (sĂ©ries PIC12/PIC16/PIC16F1), 40/48/64 MHz (sĂ©rie PIC18/PIC18"J"/PIC18"K"), 80/100 (PIC32MX), 120/200 (PIC32MZ).

Programmation

Carte de dĂ©veloppement de Microchip, pour microcontrĂ´leurs PIC de 6, 8 et 14 broches.

Les PIC disposent de plusieurs technologies de mémoire de programme : flash, ROM, EPROM, EEPROM, UVPROM. Certains PIC (PIC18/24/32 et dsPIC33) permettent l'accès à la FLASH et à la RAM externe.

La programmation du PIC peut se faire de différentes façons :

  • par programmation in-situ en utilisant l'interface de programmation / debug universel ICSP de Microchip. Il suffit alors d'ajouter simplement un connecteur ICSP au microcontrĂ´leur sur la carte fille pour permettre sa programmation une fois soudĂ© ou sur son support (sans avoir besoin de le retirer). Il existe pour cela plusieurs solutions libres (logiciel + interface Ă  faire soi-mĂŞme) ou commerciales (par exemple : PICkit 3, ICD4 et Real-Ice de Microchip) ;
  • par l'intermĂ©diaire d'un programmateur dĂ©diĂ© (par exemple : PM3,pour la production (Microchip).

DĂ©bogage

Le débogage logiciel peut être réalisé de façon logicielle (simulateur) ou hardware (débogueur externe). Dans les deux cas, un environnement tel que MPLAB X peut être utilisé.

Plusieurs solutions existent pour déboguer un programme écrit pour un microcontrôleur PIC :

  • simulateur (dans MPLAB X) ;
  • dĂ©bogueur hardware in-situ via l'ICSP ;
  • simulateur Proteus.

Familles de PIC

Quatre microcontrôleurs PIC de familles différentes : 18F, 16F, 12F et 10F.

Les modèles de PIC courants sont repérés par une référence de la forme :

  • 2 chiffres : famille du PIC (10, 12, 16, 18, 24, 32) ou dsPIC (30, 33) — 2 familles très rares ont Ă©tĂ© Ă©galement introduites PIC14 / PIC17 ;
  • 1 lettre : type de mĂ©moire de programme (C ou F). Le F indique en gĂ©nĂ©ral qu'il s'agit d'une mĂ©moire flash et donc effaçable Ă©lectriquement. La lettre C indique en gĂ©nĂ©ral que la mĂ©moire ne peut ĂŞtre effacĂ©e que par exposition aux ultra-violets (exception pour le PIC16C84 qui utilise une mĂ©moire EEPROM donc effaçable Ă©lectriquement). Un L peut ĂŞtre ajoutĂ© devant pour indiquer qu'il s'agit d'un modèle basse tension (exemple : V Ă  5,5 V si LF — 4,2 V Ă  5,5 V si F) ;
  • un nombre de 2 Ă  4 chiffres : modèle du PIC au sein de la famille. Toutefois il y a maintenant des exceptions : PIC18F25K20 ou PIC18F96J60 par exemple ;
  • un groupe de lettres pour indiquer le boĂ®tier et la gamme de tempĂ©rature.

Par exemple, le PIC18LF4682-I/P est un microcontrôleur de la famille PIC18, basse tension (L), à mémoire flash (F), modèle 4682, gamme de température industrielle (I) et boîtier DIL40.

PIC10 et PIC12

Ce sont des composants rĂ©cents. Ils ont comme particularitĂ©s d'ĂŞtre extrĂŞmement petits (pour donner une idĂ©e, existe en boĂ®tier SOT-23 Ă  6 broches de moins de 3 Ă— 3 mm), simples et Ă©conomiques.

PIC16

Les PIC de la famille 16C ou 16F sont des composants de milieu de gamme. C'est la famille la plus riche en termes de dérivés.

La Famille 16F dispose dorénavant de trois sous-familles :

  • La sous-famille avec le cĹ“ur Baseline : instructions sur 12 bits (PIC16Fxxx) ;
  • La sous-famille avec le cĹ“ur Middle-Range : instructions sur 14 bits (PIC16Fxxx) ;
  • La sous-famille avec le cĹ“ur Enhanced : instructions sur 14 bits (PIC16F1xxx et PIC16F1xxxx) avec 49 instructions.

PIC16F1xxx : il s'agit d'une nouvelle famille (2009) créée spécifiquement pour permettre l'extension de la mémoire FLASH, de la mémoire RAM et l'ajout de périphériques, tout en gardant la compatibilité avec les cœurs baseline et middle-range. L'ajout d'une quinzaine d'instructions orientée pour les compilateurs C permettent de diminuer de façon significative la taille du code généré (jusqu'à 40 % de moins que le cœur PIC16 Middle-range).

PIC18

Cette famille a un jeu d'instruction plus complet puisqu'il comprend quelque 75 instructions. Cette palette d'instructions étendue lui permet de faire fonctionner du code C compilé de manière nettement plus efficace que les familles précédentes.

Sur les dernières versions (sous-famille « K »), on peut les utiliser avec un quartz fonctionnant jusqu'Ă  64 MHz (16 MIPS).

Cette famille propose une multitude de dérivés intégrant l'USB, ETHERNET (MAC+PHY), le CAN, le CAN FD, le contrôleur LCD des canaux de MLI dédiés au contrôle moteur.

PIC24F/PIC24H/PIC24E

Cette famille est sortie en 2004, 2011 pour les PIC24E. L'utilisation du C / C++ y est plus efficace que sur les familles précédentes, du fait de l'utilisation du format 16 bits, du jeu d'instruction prévu en conséquence, et de la plus grande souplesse de la pile mappée dans la RAM.

Quelques caractéristiques à remarquer :

  • programmable avec le compilateur MPLAB C30, dĂ©rivĂ© de GNU Compiler Collection GCC)3.3 (toutes les familles de microcontrĂ´leurs 16 bits de chez Microchip peuvent ĂŞtre programmĂ©es avec ce compilateur) ;
  • 16 MIPS pour les PIC24F, 40 MIPS pour les PIC24H et 60 MIPS pour les PIC24E[1] ;
  • 2 cycles d'horloge pour exĂ©cuter la plupart des instructions ;
  • USB HOST/device/OTG ;
  • Quadruple UART ;
  • Horloge / calendrier RTCC intĂ©grĂ©e (PIC24F) ;
  • Peripheral Pin Select (affectation dynamique des broches d'E/S digitales aux pĂ©riphĂ©riques par programmation) ;
  • ContrĂ´leur d'Ă©cran QVGA/WQVGA (uk) LCD intĂ©grĂ© (rĂ©solution 320 Ă— 240 Ă— 16 bits couleur) ;
  • dispose d'un port JTAG ;
  • versions XLP (eXtreme Low Power) des PIC24F permettant d'avoir une très faible consommation (500 nA horloge RTCC sous 1,8 V et 500 nA pour le watchdog sous 1,8 V).

PIC32MX

Introduits en , les PIC32MX sont des microcontrĂ´leurs 32 bits fonctionnant jusqu'Ă  100 MHz pour certains dĂ©rivĂ©s. Ils sont basĂ©s sur le cĹ“ur MIPS32 M4K (Architecture MIPS). L'architecture interne des PIC32 est basĂ©e sur le Bus Matrix (128 bits) permettant d'avoir jusqu'Ă  4 transactions simultanĂ©es. Les canaux de DMA peuvent donc fonctionner en parallèle de l'exĂ©cution des instructions.

Ce cœur comporte des instructions 32 bits et aussi 16 bits (MIPS16e) qui peuvent être mélangées à volonté pour réduire la taille du code.

Une nouvelle sous-famille () intègre maintenant l'ETHERNET, l'USB HOST et 2 Ă— contrĂ´leurs CAN avec une FLASH de 512 Kio et une RAM de 128 Kio lui permettant de faire tourner simultanĂ©ment plusieurs protocoles (USB / TCP/IP / OSEK).

PIC32MZ

Introduits en , les PIC32MZ sont des microcontrĂ´leurs 32 bits fonctionnant jusqu'Ă  250 MHz. Ils sont basĂ©s sur le cĹ“ur MIPS32 M14K (Architecture MIPS).

La mĂ©moire FLASH a Ă©tĂ© Ă©tendue jusqu'Ă  Mio et la mĂ©moire RAM jusqu'Ă  512 Kio.

La plateforme logicielle gratuite MPLAB Harmony gère désormais tous les PIC32 et intègre toutes les librairies : TCP/IP, USB, File system, graphics, WiFi, Bluetooth.

dsPIC30/dsPIC33F/dsPIC33E/dsPIC33CH (double cœur)/dsPIC33CK (simple cœur)

Le dsPIC (digital signal PICs) est adapté aux applications de traitement du signal et peut donc remplacer un DSP de type 16 bits entier. L'unité DSP est accessible avec des instructions supplémentaires. Elle permet par exemple de faire du contrôle vectoriel de moteur (transformées de Park et de Clarke), de la FFT 512 points, des filtres de type IIR/FIR. Microchip propose également des blocksets pour MATLAB Simulink permettant de générer du code pour tous les périphériques des dsPIC30 et dsPIC33.

En 2011, Microchip introduit les dsPIC33E qui ont notamment une puissance calcul pouvant aller jusqu'Ă  70 MIPS[2] (millions d'instructions par seconde).

En 2019, les nouveaux dsPIC33CH (double cĹ“ur) 200 MIPS et les dsPIC33CK (simple cĹ“ur) 100 MIPS permettent d'amĂ©liorer encore la performance tout en gardant la compatibilitĂ©. Grâce Ă  la nouvelle unitĂ© de PWM, la rĂ©solution est dĂ©sormais de 250 ps.

Différents programmateurs de PIC

Boîtiers

Une grande variété de technologies de boîtiers existent en fonction des familles : de 6 (SOT6) à 144 broches.

Notes et références

  1. (en) « Famille 24F » [PDF] (consulté le ).
  2. (en) « Famille dsPIC33E » (consulté le ).

Voir aussi

Articles connexes

Liens externes

Cet article est issu de wikipedia. Text licence: CC BY-SA 4.0, Des conditions supplémentaires peuvent s’appliquer aux fichiers multimédias.