Microcontrôleur PIC

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.

Sommaire

Mise en œuvre

Un microcontrôleur est une unité de traitement de l'information de type microprocesseur à 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 peut donc fonctionner de façon autonome après programmation.

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

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 cycle instruction d'un PIC 8 bits dure 4 coups d'horloge. La plupart des instructions durent un cycle, sauf les sauts qui durent deux cycles. On atteint donc des vitesses élevées.

Avec un quartz de 4 MHz (ou l'horloge interne), on obtient donc 1 000 000 de cycles/seconde, or, comme le PIC exécute pratiquement 1 instruction par cycle, hormis les sauts, cela donne une puissance de l’ordre de MIPS (1 million d'instructions par seconde).

Les PIC peuvent être cadencés à 20/32 MHz (séries PIC16/PIC16F1), 40/48/64 MHz (série PIC18/PIC18"J"/PIC18"K")).

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 PIC18 permettent l'accès externe à la FLASH et à la RAM.

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

  • par l'intermédiaire d'un programmateur dédié (par exemple : PICSTART Plus ou PM3 pour la production de la société Microchip) ;
  • par programmation in-situ en utilisant l'interface de programmation / debug universel ICSP de Microchip. Il suffit alors de 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 ou ICD3 de Microchip).

Débogage

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

  • simulateur ;
  • émulateur ;
  • débogueur in-situ.

Familles de PICs

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, 17, 18, 24, 30, 32, 33) — le PIC14 existe, c'est le PIC14000.
  • 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 électroniquement. 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 : 2 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 exemples.

  • 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 16Cxxx/16Fxxx 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 3 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)

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 coeur PIC16 Middle-range).

PIC17

Gamme intermédiaire entre PIC16 et PIC18. Cette gamme n'est plus enrichie par Microchip. Elle supporte la compilation en C.

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, 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 LCD intégré (résolution 320 x 240 x 16bits couleur)
  • dispose d'un port JTAG
  • versions XLP (eXtreme Low Power) des PIC24F permettant d'avoir une très faible consommation (500nA horloge RTCC @ 1.8V et 500nA pour le watchdog @ 1.8V)

PIC32

Sortis en novembre 2007, les PIC32 sont des microcontrôleurs 32 bits. 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 (octobre 2009) intègre maintenant l'ETHERNET, l'USB HOST et 2 x contrôleurs CAN avec une FLASH de 512Kio et une RAM de 128Kio lui permettant de faire tourner simultanément plusieurs protocoles (USB / TCP/IP / OSEK).

dsPIC30/dsPIC33F/dsPIC33E

Le dsPIC (digital signal PICs) est le premier microcontrôleur de la société Microchip qui ait une architecture 16 bits (les autres étant à 8 bits). Il est adapté aux applications de traitement du signal et peut donc remplacer un DSPde 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 PArke 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 sort les dsPIC33E qui ont notamment une puissance calcul pouvant aller jusqu'à 70 MIPS[2].

Différents programmateurs de PIC

  • PICkit 2 et 3
  • ICD2 et ICD3
  • Real-Ice
  • PM3
  • EasyPic 5
  • EasyPic 6
  • MikroC

Brochage

chaque PIC possède un brochage different et il est necessaire de connaitre le brochage de chacun pour l'utiliser. Pour ce, des noms de code existent pour designer l'utilité de chaque broche :

  • RAx (patte "x" du port I/O "A")
  • RBx (patte "x" du port I/O "B")
  • RCx (patte "x" du port I/O "C")
  • RDx (patte "x" du port I/O "D")
  • REx (patte "x" du port I/O "E")
  • RFx (patte "x" du port I/O "F")
  • PGD (patte de Programmation Data - patte utilisée, par exemple, pour l'ICD2/3)
  • PGC (patte de Programmation Clock - patte utilisée, par exemple, pour l'ICD2/3)
  • MCLR (patte de programmation Master CLeaR - patte utilisée, par exemple, pour l'ICD2/3 et de reset:redemarre le micro quand à l'état bas)
  • Vdd/Vpp (alimentation positive: généralement +3.3V ou +5V)
  • Vss (alimentation: masse 0V)
  • SDO (Bus SPI: Serial Data Output)
  • SDI (Bus SPI: Serial Data Input)
  • SCK (Bus SPI: Serial CLock)
  • TX (Bus UART: output)
  • RX (Bus UART: input)
  • SDA (Bus I2C - Serial DAta)
  • SCL (Bus I2C - Serial CLock)
  • ANx (cela indique que la patte est reliée au canal "x" d'acquisition d'un signal analogique (Convertisseur Analogique → Numérique))
  • RE (Read Enable. Patte utilisée pour indiquer qu'une opération de lecture est demandée sur un bus de données)
  • WR (WRite. Patte utilisée pour indiquer qu'une opération d'écriture est demandée sur un bus de données)
  • CS (Chip Select, fonctionne avec le SPI)
  • PSP1 (patte du port parallèle, 8 en tout nulérotées de 0 à 7)
  • P1D
  • P1C
  • PGM (patte qui active la programmation basse tension)
  • C2IN- (entrée - du comparateur 2)
  • C2IN+ (entrée + du comparateur 2)
  • OSC (connexion de l'oscillateur externe)
  • INT (patte déclenchant une interruption sur changement d'état)
  • ECCP (patte associéee à un module ECCP:Enhanced Capture Compare PWM)
  • CANRX (patte de réception du BUS CAN)
  • CANTX (patte de transmission du BUS CAN)
  • DT

Voir aussi

Sur les autres projets Wikimedia :

Notes et références

  1. Famille 24F. Consulté le 2 Novembre 2011
  2. Famille dsPIC33F. Consulté le 2 Novembre 2011

Liens externes

  • Portail de l’électricité et de l’électronique Portail de l’électricité et de l’électronique

Wikimedia Foundation. 2010.

Contenu soumis à la licence CC-BY-SA. Source : Article Microcontrôleur PIC de Wikipédia en français (auteurs)

Игры ⚽ Нужно решить контрольную?

Regardez d'autres dictionnaires:

  • Microcontroleur PIC — 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… …   Wikipédia en Français

  • Microcontroleur — Microcontrôleur Le Motorola 68HC11, ici en boîtier PLCC, est un microcontrôleur réputé. Un microcontrôleur est un circuit intégré qui rassemble les éléments essentiels d un ordinateur : processeur, mémoires (mémoire morte pour le programme,… …   Wikipédia en Français

  • Microcontrôleur — Le Motorola 68HC11, ici en boîtier PLCC, est un microcontrôleur réputé. Un microcontrôleur est un circuit intégré qui rassemble les éléments essentiels d un ordinateur : processeur, mémoires (mémoire morte pour le programme, mémoire vive… …   Wikipédia en Français

  • PIC 16F84 de Microchip — PIC 16F84 16F84 dont le numéro 16 signifie qu il fait partie de la famille MID RANGE . C est la famille de PIC qui travaille sur des mots de 14 bits. La lettre F indique que la mémoire programme de ce PIC est de type Flash . Les deux derniers… …   Wikipédia en Français

  • Pic 16f84 de microchip — PIC 16F84 16F84 dont le numéro 16 signifie qu il fait partie de la famille MID RANGE . C est la famille de PIC qui travaille sur des mots de 14 bits. La lettre F indique que la mémoire programme de ce PIC est de type Flash . Les deux derniers… …   Wikipédia en Français

  • PIC de la famille 16Cxxx/16Fxxx — 16C52 16C77 16F83 16F84 16F628 16F876 16F877 16F887 Tableau comparatif des principaux PIC 16F Caractéristiques 16F84A 16F628A 16F88A 16F876A 16F877A Nombre de broches (boîtier PDIP) 18 18 18 28 40 …   Wikipédia en Français

  • Pic de la famille 16cxxx/16fxxx — 16C52 16C77 16F83 16F84 16F628 16F876 16F877 16F887 Tableau comparatif des principaux PIC 16F Caractéristiques 16F84A 16F628A 16F88A 16F876A 16F877A Nombre de broches (boîtier PDIP) 18 18 18 28 40 …   Wikipédia en Français

  • PIC — Cette page d’homonymie répertorie les différents sujets et articles partageant un même nom.  Pour les articles homophones, voir Pique et Pick …   Wikipédia en Français

  • Pic — Cette page d’homonymie répertorie les différents sujets et articles partageant un même nom.  Pour les articles homophones, voir Pique et Pick. Sur les autres projets Wikimedia  …   Wikipédia en Français

  • Programmable Intelligent Computer — 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… …   Wikipédia en Français

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”