Introduction au PIC16F17146
Le PIC16F17146 est une puce microcontrôleur appartenant à la famille PIC16F, réputée pour ses performances élevées et sa faible consommation d'énergie. Elle est couramment utilisée dans divers appareils électroniques, tels que les appareils électroniques grand public, les applications automobiles et les systèmes de contrôle industriels. Le PIC16F17146 offre un large éventail de fonctionnalités, notamment plusieurs interfaces de communication, des convertisseurs analogique-numérique et une mémoire importante pour stocker les instructions et les données du programme. Cette puce polyvalente permet aux développeurs de créer facilement des applications sophistiquées, grâce à son architecture flexible et à son ensemble complet de périphériques. Elle peut par exemple être utilisée dans les systèmes automobiles pour contrôler les fonctions du moteur, ou dans les appareils domestiques intelligents pour gérer diverses tâches domotiques.

Caractéristiques du PIC16F17146
- Architecture RISC optimisée pour compilateur C
- Cœur de milieu de gamme amélioré avec 49 instructions et 16 niveaux de pile
- Mémoire programme Flash avec capacité de lecture/écriture autonome
- Réinitialisation à faible courant à la mise sous tension (POR)
- Réinitialisation programmable en cas de baisse de tension (BOR) avec récupération rapide
- Réinitialisation en cas de baisse de tension à faible consommation (LPBOR)
- Modes veille et hibernation à faible consommation
- Temporisateur de surveillance fenêtré (WWDT)
- Désactivation du module périphérique (PMD)
- Sélection des broches périphériques (PPS)
- Réinitialisation améliorée à la mise sous/hors tension
- Minuterie de mise sous tension configurable (PWRT)
Spécifications du PIC16F17146
| Attribute | Value |
|---|---|
| Model | PIC16F17146 |
| Architecture | RISC |
| Temperature Range | -40°C to 85°C |
| Frequency | up to 32MHz |
| Voltage | 1.8V to 5.5V |
| Size | 6.5 x 9.4 x 1.5mm |
| Memory | up to 28 KB |
| EEPROM | up to 256 Bytes |
| SRAM | up to 2 KB |
| Timer | 3 x 16-bit, 3 x 8-bit |
| PWM | 4 x 16-bit |
| CLC | 4 |
| DAC | 2 x 8-bit |
| ADC | 1 x 12-bit |
| USART | 1 |
| I2C | 1 x 7/10-bit |
| SPI | 1 |
| Operational Amplifier | 1 |
| I/O Port | up to 35 pins |
| Package | 14-Pin PDIP, SOIC, TSSOP; 16-Pin VQFN; 20-Pin PDIP, SOIC, SSOP, VQFN |
Comment programmer la carte de développement PIC16F17146 Curiosity Nano ?

Outils requis :
- Environnement de développement intégré (IDE) MPLAB® X
- Carte Curiosity Nano PIC16F17146 *1
- Câble USB * 1
PIC16F17146 Curiosity Nano - Test de clignotement des LED
Tout d'abord, téléchargez et installez MPLAB X IDE v6.10 depuis le site Microchip :
https://www.microchip.com/en-us/tools-resources/develop/mplab-x-ide#


Après avoir configuré MPLAB® X IDE, vous découvrirez une interface conviviale. Si vous êtes débutant, plusieurs tutoriels vous aideront à vous familiariser avec le logiciel.
Poursuivez notre projet, cliquez sur « Fichier > Nouveau projet » pour créer un nouveau projet.

Dans cette étape, nous choisissons « Microchip Embedded > Standalone Project » (Microchip intégré > Projet autonome), qui utilise un fichier makefile généré par l'IDE pour créer votre projet.

Ensuite, sélectionnez le dispositif « PIC16F17146 » et son outil.

Sélectionnez les chaînes d'outils de compilation pour votre carte de développement.

Une fois les étapes ci-dessus terminées, cliquez sur le bouton « MCC » pour configurer le code du programme.

Sélectionnez un type de contenu dans « MCC Content Manager Wizard » pour votre projet. Si vous ne savez pas lequel choisir, veuillez consulter les détails officiels.

Afin de garantir le démarrage rapide de la fonction MCC, vous pouvez la régler en mode hors ligne.

Avant de configurer l'E/S, lisez attentivement le schéma de la carte de développement PIC16F17146 Curiosity Nano. Le schéma nous apprend que :
L'E/S s'allume lorsque RC1 émet un niveau bas ; l'E/S n'a pas de résistance de rappel externe, donc le rappel intégré peut être configuré, et le port déclenche un signal de niveau bas après avoir été enfoncé.

La configuration finale est la suivante. Cette configuration entraînera l'allumage de la LED par défaut. Si vous souhaitez éteindre la LED par défaut, vous pouvez cocher la case Start High correspondante, c'est-à-dire que la sortie IO est élevée lorsqu'elle est sous tension.

Si nous n'utilisons pas la fonction d'interruption d'E/S, la configuration s'arrête ici. Cliquez sur « Générer » pour générer le code.

Lors de l'écriture de code, nous pouvons utiliser la fonction d'auto-complétion du code, dont les détails sont les suivants :

Déclencheurs de fenêtres contextuelles automatiques pour les identifiants C/C++ :
.;->;.*;->*;::;new ;A;a;B;b;C;c;D;d;E;e;F;f;G;g;H;h;I;i;J;j;K;k;L;l;M;m;N;n;O;o;P;p;Q;q;R;r;S;s;T;t;U;u;V;v;W;w;X;x;Y;y;Z;z;_;
Écrivez le code dans le corps de la boucle comme suit :
while(1)
{
if(BUTTON_GetValue()==0)
{
while(BUTTON_GetValue()==0);
LED_Toggle();
}
}
Cliquez sur le bouton Exécuter pour compiler et graver le programme LED sur la carte de développement PIC16F17146 Curiosity Nano.

Ensuite, retournez à l'onglet MCC, ajoutez la fonction de retard au projet, cliquez simplement sur « Device Resources » (Ressources du périphérique) > Timer (Minuterie) > « DELAY » (RETARD). Puis, cliquez sur le bouton « Generate » (Générer).

Maintenant, nous entrons la lettre « DE » dans main.c et la fonction de retard apparaîtra.

Nos codes de retard sont les suivants, l'un en microsecondes et l'autre en millisecondes :
while(1)
{
LED_Toggle();
DELAY_milliseconds(500);
}
Enregistrez et exécutez ce programme, vous verrez que la LED de notre carte de développement commence à clignoter à un cycle d'une seconde.
Réduction de la consommation électrique avec la série PIC16F17146
De nombreuses conceptions embarquées actuelles impliquent des systèmes analogiques, qu'il s'agisse de capteurs, d'amplificateurs, de convertisseurs de données ou de tout autre module analogique. Ces conceptions sont souvent alimentées par batterie pour le confort des consommateurs dans les appareils électroniques quotidiens. Cependant, l'autonomie de la batterie représente un défi pour les concepteurs, car les signaux analogiques doivent être numérisés et traités, ce qui n'est pas idéal pour les applications alimentées par batterie. Voici plusieurs moyens de réduire la consommation d'énergie :
Périphériques indépendants centraux (CIP)
Avec les microcontrôleurs de la série PIC16F17146, de nombreuses conceptions analogiques peuvent surmonter les défis liés à la consommation d'énergie. Les dispositifs PIC® et AVR® offrent divers périphériques indépendants du cœur (CIP). Les CIP sont des composants matériels dédiés qui peuvent fonctionner indépendamment de l'unité centrale (CPU). Comme les dispositifs PIC et AVR disposent de nombreux CIP, ceux-ci peuvent être utilisés pour décharger la CPU d'autres tâches tout en gérant les interfaces des capteurs, le contrôle des formes d'onde, la synchronisation/mesure, etc. Le système peut ainsi fonctionner en mode basse consommation, ce qui réduit la consommation électrique globale de la conception.
Convertisseur analogique-numérique avec calcul (ADCC)
L'un des périphériques analogiques qui offrent des possibilités d'économie d'énergie est notre convertisseur analogique-numérique avec calcul (ADCC). Le CPU dispose de plusieurs modes d'économie d'énergie permettant de réduire la consommation électrique globale. L'une des fonctionnalités d'économie d'énergie offertes par les microcontrôleurs de la série PIC16F17146 est le mode SLEEP, dans lequel la plupart des composants du microcontrôleur sont désactivés, ce qui réduit la consommation d'énergie et le bruit de mesure pendant la conversion ADC. L'ADCC dispose d'un oscillateur spécial qui permet au matériel de fonctionner en mode veille. Lorsqu'un déclencheur de réveil est activé, le CPU reprend son fonctionnement peu après.
Mode veille et mode veille prolongée
Les autres modes d'économie d'énergie proposés par les microcontrôleurs de la série PIC16F17146 comprennent le mode veille et le mode veille prolongée. En mode veille, le processeur arrête toutes les autres opérations tandis que les périphériques restent actifs. En mode veille prolongée, le processeur fonctionne avec une fréquence d'horloge réduite.
Désactivation du module périphérique (PMD)
La désactivation des modules périphériques (PMD) est une autre fonctionnalité du microcontrôleur. Même lorsqu'ils ne sont pas activés, les périphériques inutilisés consomment une petite quantité d'énergie parasite. En activant la fonction PMD, les utilisateurs peuvent activer ou désactiver tous les périphériques inutilisés. En désactivant ces périphériques, le microcontrôleur fonctionne à son niveau de consommation d'énergie le plus bas possible, ce qui réduit sa consommation totale d'énergie.
Dans le domaine du développement embarqué, la série de microcontrôleurs PIC16F17146, ainsi que d'autres microcontrôleurs 8 bits de Microchip, offre aux utilisateurs de nombreuses options pour optimiser la consommation d'énergie des systèmes embarqués. Pour plus d'informations et pour découvrir comment réaliser une implémentation à faible consommation d'énergie dans votre prochaine conception, consultez MPLAB® Discover, qui regroupe une multitude de projets, dont de nombreuses applications à faible consommation d'énergie.




