- Architecture et applications du microcontrôleur PIC:
- Sélection de microcontrôleur PIC pour nos tutoriels:
- Sélection de logiciels pour nos tutoriels:
- Se préparer avec le matériel:
En 1980, Intel a développé le premier microcontrôleur (8051) avec Harvard Architecture 8051 et depuis lors, les microcontrôleurs ont révolutionné l'industrie électronique et embarquée. Et avec les progrès technologiques au fil du temps, nous avons maintenant beaucoup plus de microcontrôleurs efficaces et de faible puissance comme AVR, PIC, ARM. Ces microcontrôleurs sont plus capables et faciles à utiliser, ayant les derniers protocoles de communication comme USB, I2C, SPI, CAN etc. Même Arduino et Raspberry Pi ont complètement changé la perspective vers les microcontrôleurs, et Raspberry Pi n'est pas qu'un microcontrôleur mais il a ordinateur à l'intérieur.
Ce sera la première partie d'une série de tutoriels à venir, qui vous aideront à apprendre les microcontrôleurs PIC. Si vous avez une formation en électronique et que vous avez toujours voulu commencer par apprendre des microcontrôleurs et vous plonger dans le monde du codage et de la construction, cette série de tutoriels sera votre première étape.
Le microcontrôleur PIC est un choix très pratique pour démarrer avec un projet de microcontrôleur, car il dispose d'excellents forums de support et agira comme une base solide pour s'appuyer sur tous vos microcontrôleurs avancés que vous n'avez pas encore appris.
Ces tutoriels sont destinés aux apprenants absolus ou intermédiaires; nous avons prévu de commencer par les projets les plus élémentaires aux projets avancés. Nous n'attendons aucun pré-requis de la part des apprenants car nous sommes là pour vous aider à tous les niveaux. Chaque tutoriel aura une explication théorique et une simulation suivies d'un tutoriel pratique. Ces tutoriels n'impliqueront aucune carte de développement, nous réaliserons nos propres circuits en utilisant une carte de performance. Alors préparez-vous et prenez du temps chaque semaine pour vous améliorer avec les microcontrôleurs.
Commençons maintenant par une introduction simple sur les microcontrôleurs PIC et quelques configurations logicielles pour nous permettre de démarrer notre prochain tutoriel. Vérifiez la vidéo à la fin pour installer et configurer le MPLABX, XC8, Proteus et un déballage rapide du programmeur PICkit 3.
Architecture et applications du microcontrôleur PIC:
Le microcontrôleur PIC a été introduit par Microchip Technologies en 1993. À l'origine, ces PIC ont été développés pour faire partie des ordinateurs PDP (Programmed Data Processor) et chaque périphérique de l'ordinateur était interfacé à l'aide de ce microcontrôleur PIC. Par conséquent, le PIC tire son nom de contrôleur d'interface périphérique. Plus tard, Microchip a développé de nombreux circuits intégrés de la série PIC qui peuvent être utilisés pour toute petite application comme une application d'éclairage jusqu'à la plus avancée.
Chaque microcontrôleur doit être construit autour d'une architecture, le type d'architecture le plus connu est l'architecture Harvard, notre PIC est basé sur cette architecture car il appartient à la famille 8051 classique. Entrons dans une petite intro sur l'architecture Harvard du PIC.
Le microcontrôleur PIC16F877A se compose d'un processeur intégré, de ports d'E / S, d'une organisation de la mémoire, d'un convertisseur A / N, de minuteries / compteurs, d'interruptions, d'une communication série, d'un oscillateur et d'un module CCP qui, pour rassembler, fait de l'IC un microcontrôleur puissant pour les débutants. Le schéma de principe général de l'architecture PIC est présenté ci-dessous
CPU (unité centrale de traitement):
Le microcontrôleur dispose d'un processeur pour effectuer des opérations arithmétiques, des décisions logiques et des opérations liées à la mémoire. Le CPU doit assurer la coordination entre la RAM et les autres périphériques du microcontrôleur.
Il se compose d'une ALU (Arithmetic Logic Unit), à l'aide de laquelle il effectue les opérations arithmétiques et les décisions logiques. Un MU (Memory Unit) est également présent pour stocker les instructions après leur exécution. Cette MU décide de la taille du programme de notre MC. Il se compose également d'une CU (Control Unit) qui agit comme un bus de communication entre le CPU et les autres périphériques du microcontrôleur. Cela aide à récupérer les données après leur traitement dans les registres spécifiés.
Mémoire à accès aléatoire (RAM):
Une mémoire à accès aléatoire est celle qui décide de la vitesse de notre microcontrôleur. La RAM se compose de banques de registres en son sein, chacune étant affectée à une tâche spécifique. Dans l'ensemble, ils peuvent être classés en deux types:
- Registre à usage général (GPR)
- Registre des fonctions spéciales (SFR)
Comme son nom l'indique, le GPR est utilisé pour des fonctions générales de registre telles que l'addition, la soustraction, etc. Ces opérations sont limitées à 8 bits. Tous les registres sous le GPR sont accessibles en écriture et en lecture par l'utilisateur. Ils n'ont aucune fonction en eux-mêmes, sauf si le logiciel est spécifié.
Alors que le SFR est utilisé pour exécuter des fonctions spéciales compliquées qui impliquent également une gestion de 16 bits, leurs registres ne peuvent être lus que (R) et nous ne pouvons rien y écrire (W). Ainsi, ces registres ont des fonctions prédéfinies à exécuter, qui sont définies au moment de la fabrication et ils nous affichent simplement le résultat, à l'aide duquel nous pouvons effectuer certaines opérations connexes.
Mémoire en lecture seule (ROM):
La mémoire morte est l'endroit où notre programme est stocké. Cela décide de la taille maximale de notre programme; par conséquent, il est également appelé mémoire de programme. Lorsque la MCU est en fonctionnement, le programme stocké dans la ROM est exécuté selon chaque cycle d'instructions. Cette unité de mémoire ne peut être utilisée que pendant la programmation du PIC, pendant l'exécution, elle devient une mémoire morte.
Mémoire morte programmable électriquement effaçable (EEPROM):
L'EEPROM est un autre type d'unité de mémoire. Dans cette unité de mémoire, les valeurs peuvent être enregistrées pendant l'exécution du programme. Les valeurs stockées ici sont uniquement effaçables électriquement, c'est-à-dire que ces valeurs seront conservées dans le PIC même lorsque l'IC est éteint. Ils peuvent être utilisés comme petit espace mémoire pour stocker les valeurs exécutées; cependant, l'espace mémoire sera très inférieur en tours de Ko.
Mémoire flash :
La mémoire flash est également une mémoire morte programmable (PROM) dans laquelle nous pouvons lire, écrire et effacer le programme des milliers de fois. Généralement, le microcontrôleur PIC utilise ce type de ROM.
Ports d'E / S
- Notre PIC16F877A se compose de cinq ports à savoir le port A, le port B, le port C, le port D et le port E.
- De tous les cinq PORTS, seul le port A est 16 bits et le PORT E est 3 bits. Le reste des PORTS est 8 bits.
- Les broches de ces PORTS peuvent être utilisées comme entrée ou sortie, selon la configuration du registre TRIS.
- Outre les opérations d'E / S, les broches peuvent également être utilisées pour des fonctions spéciales telles que SPI, Interruption, PWM, etc.
Autobus:
Le terme Bus est juste un tas de fils qui connectent le périphérique d'entrée ou de sortie avec le processeur et la RAM.
Le bus de données est utilisé pour transférer ou recevoir les données.
Le bus d'adresses est utilisé pour transmettre l'adresse mémoire des périphériques à la CPU. Les broches d'E / S sont utilisées pour interfacer les périphériques externes; UART et USART, les deux protocoles de communication série sont utilisés pour interfacer des périphériques série tels que GSM, GPS, Bluetooth, IR, etc.
Sélection de microcontrôleur PIC pour nos tutoriels:
Les microcontrôleurs PIC de Microchip Company sont divisés en 4 grandes familles. Chaque famille comprend une variété de composants qui offrent des fonctionnalités spéciales intégrées:
- La première famille, PIC10 (10FXXX) - s'appelle Low End.
- La deuxième famille, PIC12 (PIC12FXXX) - est appelée Mid-Range.
- La troisième famille est PIC16 (16FXXX).
- La quatrième famille est PIC 17/18 (18FXXX)
Puisque nous commençons à en apprendre davantage sur le PIC, sélectionnons un CI qui est utilisé et disponible universellement. Ce CI appartient à la famille 16F le numéro de pièce du CI est PIC16F877A. Du premier tutoriel jusqu'à la fin, nous utiliserons le même IC car cet IC est équipé de toutes les fonctionnalités avancées telles que SPI, I2C et UART etc. Mais si vous n'obtenez aucune de ces choses maintenant, tout va bien, nous allons progressez dans chaque tutoriel et utilise enfin toutes les fonctionnalités mentionnées ci-dessus.
Une fois le CI sélectionné, il est très important de lire la fiche technique du CI. Cela devrait être la première étape de tout concept que nous allons essayer. Maintenant que nous avons sélectionné ce PIC16F877A, lisons la spécification de ce circuit intégré dans la fiche technique.
La fonction périphérique, mentionne qu'elle dispose de 3 minuteries, dont deux 8 bits et une est un prédécaleur 16 bits. Ces minuteries sont utilisées pour créer des fonctions de chronométrage dans notre programme. Ils peuvent également être utilisés comme compteurs. Il montre également qu'il dispose d' options CCP (Capture Compare et PWM), ce qui nous aide à générer des signaux PWM et à lire les signaux de fréquence entrants. Pour la communication avec un appareil externe, il a SPI, I2C, PSP et USART. Pour des raisons de sécurité, il est équipé de Brown-out Reset (BOR), qui aide à réinitialiser le programme while.
Les caractéristiques analogiques, indiquent que l'IC a un ADC 10 bits à 8 canaux. Cela signifie que notre circuit intégré peut convertir des valeurs analogiques en valeurs numériques avec une résolution de 10 bits et dispose de 8 broches analogiques pour les lire. Nous avons également deux comparateurs internes qui peuvent être utilisés pour comparer directement la tension entrante sans les lire réellement via le logiciel.
Les fonctionnalités spéciales du microcontrôleur signifient qu'il a 100 000 cycles d'effacement / écriture, ce qui signifie que vous pouvez le programmer environ 100 000 fois. In-Circuit Serial Programming ™ (ICSP ™), nous aide à programmer le CI directement à l'aide de PICKIT3. Le débogage peut être effectué via le débogage en circuit (ICD). Une autre caractéristique de sécurité est la minuterie de surveillance (WDT), qui est une minuterie auto-fiable qui réinitialise tout le programme si nécessaire.
L'image ci-dessous représente les broches de notre CI PIC16F877A. Cette image représente chaque épingle contre son nom et ses autres caractéristiques. Cela peut également être trouvé dans la fiche technique. Gardez cette image à portée de main car elle nous aidera pendant nos travaux de matériel.
Sélection de logiciels pour nos tutoriels:
Le microcontrôleur PIC peut être programmé avec différents logiciels disponibles sur le marché. Il y a des gens qui utilisent encore le langage d'assemblage pour programmer des MCU PIC. Pour nos tutoriels, nous avons sélectionné les logiciels et compilateurs les plus avancés qui ont été développés par Microchip lui-même.
Afin de programmer le microcontrôleur PIC, nous aurons besoin d' un IDE (Integrated Development Environment), où la programmation a lieu. Un compilateur, où notre programme est converti en une forme lisible par MCU appelée fichiers HEX. Un IPE (Integrated Programming Environment), qui est utilisé pour vider notre fichier hexadécimal dans nos MCU PIC.
IDE: MPLABX v3.35
IPE: MPLAB IPE v3.35
Compilateur: XC8
Microchip a fourni ces trois logiciels gratuitement. Ils peuvent être téléchargés directement depuis leur page officielle. J'ai également fourni le lien pour votre commodité. Une fois téléchargés, installez-les sur votre ordinateur. Si vous rencontrez un problème, vous pouvez visionner la vidéo donnée à la fin.
Pour la simulation, nous avons utilisé un logiciel appelé PROTEUS 8, fourni par Labcenter. Ce logiciel peut être utilisé pour simuler notre code généré à l'aide du MPLABX. Il existe un logiciel de démonstration gratuit qui peut être téléchargé à partir de leur page officielle via le lien.
Se préparer avec le matériel:
Tous nos tutoriels finiront avec du matériel. Pour apprendre le PIC de la meilleure façon possible, il est toujours recommandé de tester nos codes et circuits sur du matériel, car la fiabilité de la simulation est très moindre. Les codes qui fonctionnent sur un logiciel de simulation peuvent ne pas fonctionner comme prévu sur votre matériel. Par conséquent, nous allons construire nos propres circuits sur des cartes Perf pour vider nos codes.
Pour vider ou télécharger notre code dans PIC, nous aurons besoin de PICkit 3. Le programmeur / débogueur PICkit 3 est un débogueur en circuit simple et peu coûteux qui est contrôlé par un PC exécutant le logiciel MPLAB IDE (v8.20 ou supérieur) sur une plate-forme Windows. Le programmeur / débogueur PICkit 3 fait partie intégrante de la suite d'outils de l'ingénieur de développement. En plus de cela, nous aurons également besoin d'autres matériels comme la carte Perf, la station de soudage, les CI PIC, les oscillateurs à cristal, les condensateurs, etc. Mais nous les ajouterons à notre liste au fur et à mesure que nous progressons dans nos tutoriels.
J'ai apporté mon PICkit 3 d'Amazon, la vidéo de déballage du même peut être trouvée dans la vidéo ci-dessous. Le lien pour PICKIT3 est également fourni; le prix peut être un peu élevé mais croyez-moi, cela vaut la peine d'investir.