Une nouvelle famille de systèmes Microchip avec des blocs logiques configurables

Les microcontrôleurs de la nouvelle famille PIC16F131xx de Microchip sont une réponse à l’évolution et à la miniaturisation en constante progression des appareils électroniques. Leur fonctionnalité vous permet de gérer l’énergie de manière économique et de construire des contrôleurs avec des temps de réponse prévisibles.

L’une des exigences clés des concepteurs de systèmes embarqués (soit embedded) modernes est d’obtenir un comportement du circuit prévisible dans le temps. En pratique, cela revient à raccourcir le temps de réponse aux changements survenant dans les processus gérés : réponse immédiate aux données d’entrée des capteurs, des ports de communication ou de l’interface utilisateur. Cet effet peut être obtenu en augmentant la puissance de calcul des systèmes, mais il s’agit d’une méthode sous-optimale car elle entraîne un gaspillage de grandes quantités d’énergie. Pour éviter de programmer les processus de base, Microchip utilise des périphériques fonctionnant indépendamment du cœur (Core Independent Peripherals) dans ses microcontrôleurs. Une nouveauté dans cette technologie est un système de portes logiques programmables (Configurable Logic Block), qui a été intégré dans la nouvelle famille de 8 bits des microcontrôleurs de ce fabricant, systèmes PIC16F131xx.
 

Paramètres et périphériques

La partie suivante du test aborde les solutions CIP et CLB et comment elles permettent de conserver la puissance de calcul des systèmes pour la gestion des applications, tout en prenant en charge des tâches plus simples (boutons de commande, certains affichages, conversion des valeurs reçues). des transducteurs). Cependant, tout d’abord, il convient de jeter un œil aux spécifications et à la structure des microcontrôleurs PIC16F131xx.

Les systèmes présentés sont basés sur l’architecture Harvard classique 8 bits. Ils sont disponibles aux formats traversant (THT) et à montage en surface (SMD), et sont disponibles dans les boîtiers DIP, DFN, SSOP, TSSOP, SOIC et VQFN – offrant 6, 12 ou 18 broches E/S. Un grand avantage des systèmes est une large gamme de tensions d’alimentation acceptables : de 1,8 V à 5,5 V DC. L’horloge est cadencée à l’aide d’un signal d’une fréquence de 32 MHz et le temps minimum d’exécution des instructions est de 125 ns. Les systèmes incluent de 256 B à 1 024 B de mémoire d’exploitation SRAM et jusqu’à 14 Ko de mémoire programme (FLASH).

Les concepteurs disposent d’un large choix de périphériques matériels, tels que des générateurs de signaux PWM, des compteurs/timers 8 et 16 bits, un contrôleur de bus série EUSART, un port MSSP (Host

Synchronous Serial Port) pouvant fonctionner en mode de prise en charge de l’interface I2C ou SPI, comparateurs configurables avec temps de réponse réduit (50 ns), convertisseur numérique-analogique (DAC) 8 bits et convertisseur analogique-numérique 10 bits avec possibilité de calcul (ADCC), c’est-à-dire traitement matériel des valeurs téléchargées. À ce stade, vous devez faire attention aux périphériques CIP inclus dans les systèmes présentés.

Core Independent Peripherals

Les périphériques indépendants du cœur, c’est-à-dire les CIP (en anglais Core Indpendent Peripherals), sont inclus depuis longtemps dans les produits Microchip, tant dans les familles PIC® que AVR®. Ils permettent d’effectuer certaines tâches (par exemple la communication avec les capteurs) en arrière-plan, sans utiliser la puissance de traitement du processeur, entièrement disponible pour l’exécution du programme principal, ce qui entraîne une consommation d’énergie réduite et une simplification du programme lui-même. Des périphériques dédiés peuvent être utilisés pour gérer la transmission de données (I2C, CAN, USB), mesurer le temps (minuteries), générer des signaux PWM ou travailler avec des signaux analogiques (ADC, OP-AMP, DAC).
 
 

Périphérique CLB

L’innovation la plus importante introduite dans les microcontrôleurs PIC16F131xx est l’inclusion d’éléments logiques indépendants et configurables dans leur structure (en raison de leur mode de fonctionnement, ce système est classé comme périphérique CIP). Cette technologie est abrégée en CLB, qui signifie Configurable Logic Block. Son objectif est d’assurer la sécurité fonctionnelle et un temps de réponse immédiat. CLB est basé sur des structures connues des systèmes FPGA, c’est-à-dire offrant le temps de traitement du signal d’entrée le plus court possible. CLB fonctionne à l’aide de portes logiques de base qui peuvent être librement configurées par le concepteur pour répondre aux besoins d’une application spécifique. De plus, il vous permet de miniaturiser les appareils cibles en excluant les composants externes et en réduisant les dimensions des PCB. Un avantage significatif de CLB est la capacité de déterminer avec précision le temps dans lequel les tâches seront terminées. En effet, même si ces tâches prennent la forme de procédures relativement complexes, elles seront toujours implémentées matériellement.

Types de portes logiques disponibles

Dans les microcontrôleurs PIC16F131xx, la structure CLB est constituée de composants discrets formant 32 cellules identiques, dont chacune constitue ce qu’on appelle élément logique de base (abrégé en BLE pour Basic Logic Element). Tous sont cadencés avec le front montant du signal CLBCLK. En fonction des besoins, la cellule simule un circuit logique spécifié lors de la programmation. Il pourrait être :
 
  • porte AND (max. 4 entrées) ;
  • porte NAND (2 entrées) ;
  • porte OR (max. 4 entrées) ;
  • porte NOR (2 entrées) ;
  • porte XOR (max. 4 entrées) ;
  • porte XNOR (2 entrées) ;
  • négateur ou tampon (1 entrée et sortie) ;
  • bascule D ou JK ;
  • tableau configurable LUT (Lookup Table, jusqu’à 4 entrées).
Important : l’utilisateur dispose d’un large choix de signaux d’entrée et de sortie. Les valeurs de conditionnement peuvent provenir d’un registre 32 bits accessible depuis le programme, représenter l’état sur les lignes d’E/S du microcontrôleur, et également provenir d’un générateur PWM, d’un timer/compteur, ou encore d’une série SPI tampon de bus. Il en va de même pour les broches des portes configurées, qui peuvent être connectées au transducteur, à la minuterie et aux lignes de sortie physiques (broches) du système au stade de la programmation. Facultatif : chacun des 4 groupes de cellules peut générer une interruption supportée par le programme. Il convient également de mentionner que les sorties des cellules BLE sont à 3 états.
 
schemat_microchip-01.png
Configurations de cellules disponibles de la structure CLB.
Pour résumer : le concepteur reçoit une structure entièrement configurable similaire au FPGA implémenté dans un microcontrôleur 8 bits moderne. 102 octets de mémoire interne sont fournis pour stocker les paramètres. La question demeure donc : comment se fait la configuration ?

Configuration et programmation

La configuration des FPGA est souvent considérée comme une spécialisation stricte nécessitant des connaissances approfondies. Les outils pour travailler avec les produits PIC16F131xx ont été préparés de manière à ce que leur utilisation ne pose pas de difficultés majeures. Même les programmeurs non avancés peuvent apprendre les bases en peu de temps et obtenir les résultats souhaités.

Tout d’abord, le processus de configuration du CLB est effectué à l’aide d’un logiciel dédié appelé CLB Synthesizer, qui est basé sur une interface graphique. Son utilisation revient à préparer un schéma fonctionnel, grâce auquel le programme reste lisible même pour des personnes peu familiarisées avec toutes les fonctionnalités de l’environnement.

Le programme est disponible sous la forme d’un plug-in pour l’IDE propriétaire de Microchip, à savoir MPLAB® X. Vous pouvez également utiliser l’outil dans un navigateur classique, car il est disponible sous forme d’application Web. Le résultat du travail dans CLB Synthesizer est un fichier de configuration, qu’il faut ensuite importer dans le projet, ou un fichier source en langage VERILOG (extension .clb).
 
53451411614_aa7ca9f1ae_o.png
Exemple de configuration utilisant l’environnement CLB Synthesizer.
Le diagramme est construit en faisant glisser des blocs symboliques et en les connectant entre eux et avec des lignes d’entrée/sortie prédéfinies. Le travail dans MPLAB® peut être décrit en sept étapes :
  1. Réglage des signaux de synchronisation (horloge).
  2. Définition de blocs numériques tels que UART, I2C, TMR et autres.
  3. Ajout de périphériques analogiques tels que ADCC, DAC.
  4. Ajout un périphérique CLB à la conception en créant un schéma fonctionnel avec les composants des cellules BLE et en définissant les connexions entre elles et les signaux d’entrée.
  5. Réalisation d’une synthèse (création d’un fichier de configuration)
  6. Définition et attribution des fonctionnalités aux entrées/sorties du microcontrôleur utilisées dans le projet.
  7. Finalement, le code Melody est généré.
Il convient de souligner qu’à des fins éducatives, Microchip a préparé un certain nombre d’exemples pratiques d’utilisation de CLB pour mettre en œuvre diverses tâches. Ceux-ci inclus :
 
  • prise en charge du registre à décalage LED WS2812 programmables;
  • matériel debouncing signaux des boutons ;
  • encodage/décodage de la modulation Manchester;
  • multiplexage d’une valeur de 4 bits en signaux contrôlant un affichage à 7 segments;
  • conversion de fréquence.
L’une de ces applications, créant un pilote d’affichage LED à 7 segments, est présentée dans la vidéo ci-dessous. Et il convient de souligner ici que l’effet d’une telle configuration CLB est un programme fonctionnant de manière totalement indépendante du cœur du microcontrôleur. En pratique, il remplacerait un système de contrôleur dédié, simplifiant et réduisant le circuit de l’appareil conçu, ainsi que sa demande d’énergie.
 
 

Kit de développement Curiosity Nano

La plateforme Curiosity Nano a été créée pour permettre aux clients de Microchip d’accéder à des kits de développement présentant les capacités des derniers microcontrôleurs du fabricant. Les cartes sont préparées dans un format pratique : avec un débogueur intégré, un programmateur et un accès aux broches du microcontrôleur. Cela en fait un excellent outil de formation et d’éducation. Bien entendu, une carte Curiosity Nano spéciale a également été développée pour la famille PIC16F131xx.
 
EV06M52A.png
À l’aide de connecteurs à broches, la carte peut être connectée au circuit prototypé.
Le modèle EV06M52A est un kit de développement équipé d’un microcontrôleur PIC16F13145. Le circuit dispose d’un connecteur USB C pour l’alimentation et la programmation. La tension fournie au microcontrôleur provient du stabilisateur LDO MIC5353. En option, un résonateur à quartz pour l’horloge RTC (32,768 kHz) peut être placé dans le circuit. L’état d’alimentation et de programmation est indiqué par une LED verte. Une autre LED jaune est connectée à l’une des sorties du microcontrôleur et peut être pilotée par le microcontrôleur. Il y a aussi un bouton sur le tableau.
 
Disposition des composants et description du brochage de la carte EV06M52A
Disposition des composants et description du brochage de la carte EV06M52A

Adapteurs

Les fonctionnalités du kit de développement peuvent être étendues en utilisant des adaptateurs dédiés aux cartes Curiosity Nano.

Les produits ci-dessus disposent d’un connecteur à broches universel (femelle) pour le montage de la carte Curiosity Nano. Dans le cas de l’AC164162, le circuit est équipé de plusieurs éléments intéressants, comme 3 connecteurs compatibles avec la norme mikroBUS™ utilisée dans les modules Click de Mikroe. Il convient de noter ici que plus d’un millier de modèles différents de ces cartes sont disponibles dans le catalogue TME.. Il y a également un connecteur d’extension Xplained Pro sur le PCB. De plus, le tout peut être alimenté par des piles, car l’adaptateur dispose d’un système de charge et de gestion de l’énergie intégré compatible avec les cellules lithium-ion et lithium-polymère.
 
AC164162.png
Adaptateur AC164162
Texte préparé par Transfer Multisort Elektronik Sp. z o.o.
https://www.tme.eu/fr/news/about-product/page/60236/microcontroleurs-pic16-avec-fonctionnalite-fpga/