Architecture introduction
Architecture de base Périphériques Alimentation µC Oscillateur
Alimentation Se constitue de deux éléments : Une source de tension régulée Fournit une tension stable Un superviseur Surveille les éventuelles chutes de tensions et reset le µC si besoin est. Evite le code aléatoire Intégré dans les pic 18FXXXX (mais à activer)
Alimentation Penser à placer un condensateur de 100nF en parallèle des pattes d’alimentation des pic et circuits logiques
Oscillateur En général circuit constitué d’un quartz et deux condensateurs.
Port d’E/S Les ports d’entrée sortie d’un µC ne peuvent fournir qu’un courant très faibles La tension en sortie est 0 ou Vcc (tension d’alimentation) On peut lire ou écrire sur le port Attention de ne forcer matériellement et en écriture un port à des valeurs différentes (court-circuit et destruction du µC)
Périphériques Il en existe de tout types Les pics en embarquent un certains nombres Prévoir des ressources et les moyens de communication (bus) et le traitement par le µC.
Périphériques embarqués par les PICs CAN Compare and capture unit =>générateur PWM UART (liaison série) Et bien d’autres à voir dans la datasheet
Architecture Spécificité des PIC
ICD2 Permet la programmation et le déboguage in-situ Nécessite une embase RJ-11 reliée aux pattes adéquates du µC
Programmation bases
Langage utilisé et restriction Sous ensemble du langage C Utilisation des ressources à gérer proprement : Par exemple ne pas mettre un long là ou un char suffirait Limiter l’utilisation des flottants
Syntaxe La syntaxe employée est celle du C standard. On n’utilise cependant pas les fonctions de stdio.h (sauf redirections) p18FXXXX.h à inclure dans la source.
Les registres Configurent ou permettent de lire l’état du microcontrôleur
Les registres Pour écrire dans le registre deux méthodes : Registre=valeur; (par exemple T0CON=0x30;) En accédant à chaque bit Registresbits.Lebit=0 ou 1; (exemple : T0CONbits.PSA=1;)
Exemple de code Void main (void) { while(1) PORTA=0XFF-PORTA; } }
Programmation Périphériques
Scrutation Le µC va régulièrement lire les registres associés au périphériques pour traiter le cas échéant les données reçus Avantage Facile à programmer à gérer Inconvénients Occupe beaucoup le processeurs Difficile à utiliser avec un beaucoup de périphérique
Interruption Les périphériques interrompent l’exécution du programme principal selon leurs besoins En cas d’IT le processeur saute au vecteur d’interruption de la priorité associée. Nécessite moins de ressources que la scrutation Plus difficile à programmer.
Interruption How to 1/2 Configurer le périphérique, donner une priorité à son IT(IPR1/2) et la démasquer (PIE1/2) Activer les interruptions (INTCON {0,1}) Ajouter du code à l’image de ce qui suit #pragma code InterruptVectorHigh = 0x08 void InterruptVectorHigh (void) { _asm goto InterruptHandlerHigh //jump to interrupt routine _endasm }
Interruption How to 2/2 La fonction void InterruptHandlerHigh() doit alors lire les flags d’IT (registre PIR1/2) pour trouver la source, traiter les données et acquitter l’IT On doit répéter ces deux bouts de code pour les IT de priorité basse (en changeant le vecteur)
Montages et périphériques basiques
Pont en H Contrôle le sens et la vitesse d’un moteur à courant continue Peut etre connecté directement en sortie du µC si constitué de mosfet
Générateur PWM Pulse Width Modulation. Génère un signal carré de rapport cyclique variable. Permet par exemple de faire varier la vitesse d’un moteur. Très utilisé en association avec le pont en H
CAN Convertisseur analogique numérique Retourne tous les Tconv une valeur numérique n sur N bit représentant la tension mesuré de telle sorte que V=n*(FULL-SCALE/(2^(N)) Utile pour mesurer le retour d’un capteur par exemple.