Aller au contenu

Les microcontrôleurs PIC

    microcontroleurs-PIC

    Les microcontrôleurs PIC, également connus sous le nom de PICmicro selon la terminologie du fabricant, forment une gamme de microcontrôleurs développée par la société Microchip Technology. Leur histoire commence avec le microcontrôleur PIC1650, initialement créé en 1976 par la division microélectronique de General Instruments. À cette époque, « PIC » signifiait « Programmable Intelligent Computer » ou « Programmable Integrated Circuit », bien que de nos jours, « Peripheral Interface Controller » (contrôleur d’interface périphérique) soit une traduction couramment acceptée.

    Les microcontrôleurs PIC se distinguent par leur architecture Harvard, qui sépare les mémoires de programme et de données, permettant un accès plus rapide et efficace aux instructions. Typiquement, un cycle d’instruction d’un PIC dure quatre cycles d’horloge. Avec une horloge de 4 MHz, un PIC peut exécuter environ 1 million d’instructions par seconde (1 MIPS). Les modèles plus avancés, comme ceux de la série PIC18, peuvent fonctionner à des fréquences allant jusqu’à 64 MHz, offrant des performances de l’ordre de 16 MIPS.

    Les PIC sont des processeurs RISC (Reduced Instruction Set Computing), ce qui simplifie et accélère le décodage des instructions. Par exemple, la plupart des instructions s’exécutent en un cycle d’horloge, sauf les instructions de saut qui nécessitent deux cycles. Cette simplicité se traduit par des performances élevées et une efficacité énergétique accrue.

    Les microcontrôleurs PIC sont dotés de multiples fonctionnalités intégrées telles que des mémoires de programme (jusqu’à 128 KB), des mémoires de données, des ports d’entrée-sortie (numériques, analogiques, PWM, UART, bus I²C), et même des modules de communication USB pour certains modèles. Ils sont largement utilisés dans des applications allant des appareils domestiques aux systèmes industriels complexes, en raison de leur fiabilité, de leur flexibilité et de leur capacité à fonctionner de manière autonome après programmation. Par exemple, le PIC18F2550, doté d’une interface USB, est cadencé à 48 MHz, et le PIC16F877A est couramment utilisé dans les projets de développement amateur et éducatif pour sa polyvalence et son coût abordable.

    Divers microcontrôleurs PIC
    Divers microcontrôleurs PIC
    PIC 16F684, 12F675 et 10F222
    PIC 16F684, 12F675 et 10F222

    Capacités intégrées et exemples de microcontrôleurs PIC

    Un microcontrôleur PIC combine une unité de traitement de l’information, semblable à un microprocesseur, avec des périphériques internes, permettant de réaliser des circuits sans nécessiter de composants externes supplémentaires. Une fois programmé, un microcontrôleur peut fonctionner de manière autonome.

    Les PIC sont bien équipés, intégrant mémoire de programme, mémoire de données, ports d’entrée-sortie (numériques, analogiques, PWM, UART, bus I²C, etc.), et même une horloge interne. Par exemple, le PIC16F877A dispose de 368 octets de RAM, 256 octets d’EEPROM et 33 lignes d’E/S. Certains modèles, comme le PIC18F4550, disposent également de ports USB, facilitant les connexions avec d’autres périphériques. Le PIC12F675, quant à lui, est un choix populaire pour des applications simples avec ses 6 broches, tout en offrant une mémoire de programme de 1,75 KB et une RAM de 64 octets. Ces caractéristiques permettent aux microcontrôleurs PIC de répondre à une vaste gamme d’applications, des projets amateurs aux systèmes industriels complexes.

    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 microcontrôleur 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.

    Un cycle d’instruction d’un PIC dure 4 temps 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 1 MIPS (1 million d’instructions par seconde).

    Les PIC peuvent être cadencés à 20 MHz (série PIC16), 40 MHz (série PIC18), voire 48 MHz (exemple : PIC18F2550 — PIC avec USB) et 64 MHz (exemple : PIC18F25K20 — PIC en 3,3 V).

    Programmation

    Les microcontrôleurs PIC disposent de plusieurs types de mémoires de programme : ROM, EPROM, EEPROM, UVPROM, et flash. Certains modèles, comme les PIC18C601 et PIC18C801, nécessitent une mémoire externe pour le programme, offrant ainsi une plus grande flexibilité dans les applications où la taille du code est critique.

    La programmation des PIC peut se faire de diverses manières :

    • Programmateur dédié : des dispositifs comme le PRO MATE ou le PICSTART Plus de Microchip sont couramment utilisés pour programmer ces microcontrôleurs.
    • Programmation in-situ : en connectant correctement le microcontrôleur sur une carte fille, une simple liaison série suffit pour la programmation. Cette méthode est facilitée par des outils comme le PICkit 2 ou l’ICD2 de Microchip.

    Il existe également des solutions libres, comprenant des logiciels et des interfaces DIY, qui permettent aux amateurs et aux professionnels de personnaliser leurs environnements de développement. Par exemple, le PICkit 3, une évolution du PICkit 2, est largement utilisé pour sa compatibilité étendue et ses fonctionnalités améliorées, telles que le débogage en temps réel. Ces outils rendent la programmation des microcontrôleurs PIC accessible et pratique, que ce soit pour des projets simples ou des applications industrielles complexes.

    Carte de développement de Microchip, pour microcontrôleurs PIC de 6, 8 et 14 broches
    Carte de développement de Microchip, pour microcontrôleurs PIC de 6, 8 et 14 broches

    Débogage des microcontrôleurs PIC

    Pour déboguer un programme destiné à un microcontrôleur PIC, plusieurs solutions sont disponibles :

    • Simulateur : Il permet de tester et de déboguer le code en émulation sur un PC, sans nécessiter le matériel physique.
    • Émulateur : Un dispositif matériel qui simule le microcontrôleur réel, offrant une solution plus proche de l’environnement final.
    • Débogueur in-situ : Il s’agit de connecter directement le microcontrôleur sur le circuit et d’utiliser des outils comme le PICkit 3 ou l’ICD3 pour déboguer en temps réel.

    Ces méthodes offrent différentes approches pour identifier et corriger les erreurs dans les programmes PIC, adaptées à divers besoins et environnements de développement. Le choix de l’outil de débogage dépend souvent de la complexité du projet et des ressources disponibles.

    Classification et caractéristiques des microcontrôleurs PIC

    Les microcontrôleurs PIC courants sont identifiés par une référence structurée qui permet de déterminer leurs caractéristiques et leur usage spécifique :

    • Famille du PIC : Deux chiffres représentent la famille du PIC (10, 12, 16, 17 et 18). Par exemple, le PIC14000 appartient à la famille PIC14, qui est destinée aux applications basiques, tandis que la famille PIC18 offre des fonctionnalités plus avancées, comme des capacités de communication et des timers améliorés.
    • Type de mémoire de programme : Une lettre indique le type de mémoire de programme. Le F signale une mémoire flash effaçable électroniquement, pratique pour des cycles de développement rapides grâce à sa facilité d’effacement et de reprogrammation. En revanche, le C indique une mémoire effaçable par UV, moins courante aujourd’hui. Cependant, le PIC16C84 fait exception en utilisant de l’EEPROM pour ses besoins spécifiques. Un L ajouté devant ces lettres spécifie un modèle basse tension, comme le LF (2 V à 5,5 V) ou le F (4,2 V à 5,5 V), ce qui est crucial pour des applications nécessitant une faible consommation d’énergie.
    • Modèle spécifique : Un nombre de 2 à 4 chiffres désigne le modèle spécifique du PIC au sein de sa famille. Par exemple, dans PIC18F4520, le 4520 identifie un modèle particulier avec des caractéristiques uniques comme une capacité mémoire ou des périphériques spécifiques.
    • Boîtier et gamme de température : Un groupe de lettres indique le type de boîtier et la gamme de température du composant. Le boîtier détermine la manière dont le microcontrôleur peut être monté sur une carte électronique, et la gamme de température précise les conditions environnementales dans lesquelles le composant peut fonctionner de manière fiable.

    Par exemple, le PIC18LF4682-I/P est un microcontrôleur de la famille PIC18, conçu pour des applications basse tension (L), doté d’une mémoire flash (F), modèle 4682. Il fonctionne dans une gamme de température industrielle (I) et est encapsulé dans un boîtier DIL40, permettant une intégration facile sur les circuits imprimés. Cette nomenclature détaillée permet aux ingénieurs de choisir précisément le microcontrôleur adapté à leurs besoins spécifiques, optimisant ainsi le développement et la performance des systèmes embarqués.

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

    Exemples de familles PIC

    PIC10 et PIC12

    Les microcontrôleurs PIC10 et PIC12 sont extrêmement petits et économiques. Ils sont souvent utilisés dans des applications où l’espace est limité. Par exemple, ils existent en boîtier SOT-23 à 6 broches, mesurant moins de 3×3 mm. Le PIC12F675 est un modèle populaire, offrant 1,75 KB de mémoire de programme et 64 octets de RAM.

    PIC16

    Les microcontrôleurs PIC16 représentent le milieu de gamme. La famille 16F se divise en deux sous-familles :

    • 16Fxxx : Cette sous-famille est connue mais présente des limitations pour l’utilisation du langage C. Les microcontrôleurs comme le PIC16F877A, avec 368 octets de RAM, 256 octets d’EEPROM, et 33 lignes d’E/S, sont populaires pour des projets nécessitant une flexibilité modérée.
    • 16Fxxxx : Optimisée pour le langage C, cette sous-famille inclut des instructions supplémentaires pour faciliter la compilation. Ces microcontrôleurs sont conçus pour offrir de meilleures performances avec le langage C, bien que les PIC18 ou supérieurs soient encore mieux adaptés pour ce langage.

    PIC17

    La gamme PIC17 est intermédiaire entre les familles PIC16 et PIC18. Bien qu’elle ne soit plus enrichie par Microchip, elle supporte le langage C. Ces microcontrôleurs sont moins courants de nos jours, mais peuvent encore être trouvés dans certaines applications legacy.

    PIC18

    Les microcontrôleurs PIC18 incluent environ 75 instructions, ce qui les rend optimisés pour le langage C. Ils peuvent être utilisés avec un quartz oscillant jusqu’à 64 MHz, offrant des performances élevées. Le PIC18F4550, par exemple, dispose de ports USB et est largement utilisé dans des applications nécessitant une communication série avancée.

    PIC24

    Sortie en 2004, la famille PIC24 utilise le format 16 bits et est optimisée pour le langage C. Programmable avec le compilateur MPLAB C30, dérivé de GCC 3.3, ces microcontrôleurs disposent également d’un port JTAG pour des capacités de débogage avancées. Le PIC24FJ128GA010 est un modèle courant avec une mémoire flash de 128 KB et 8 KB de RAM.

    PIC32

    Les microcontrôleurs PIC32, sortis en 2007, sont basés sur le cœur MIPS M4K et offrent une architecture 32 bits. Ils sont conçus pour des applications nécessitant des performances élevées et des capacités de calcul importantes. Le PIC32MX795F512L, par exemple, offre 512 KB de mémoire flash et 128 KB de RAM, avec une fréquence d’horloge pouvant atteindre 80 MHz.

    dsPIC30/dsPIC33

    Les microcontrôleurs dsPIC, notamment les séries dsPIC30 et dsPIC33, sont les premiers de Microchip à adopter une architecture 16 bits. Ces microcontrôleurs sont spécialement adaptés aux applications de traitement du signal, pouvant remplacer des DSP (Digital Signal Processors). Par exemple, le dsPIC33EP512MU810 offre 512 KB de mémoire flash, 48 KB de RAM et des capacités de traitement de signal numérique avancées.

    Ces différentes familles de microcontrôleurs PIC permettent de répondre à une large gamme de besoins, des projets amateurs simples aux applications industrielles complexes, en passant par des systèmes nécessitant des capacités de traitement du signal avancées.

    Image source : Wikipediag.org – Creative Commons

    Ne restez pas à la traîne des dernières tendances technologiques !
    This is default text for notification bar