Architecture introduction. Architecture de base Alimentation µC Périphériques Oscillateur.

Post on 04-Apr-2015

105 views 0 download

Transcript of Architecture introduction. Architecture de base Alimentation µC Périphériques Oscillateur.

Architecture

introduction

Architecture de base

Alimentation

µC

Périphériques

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 = 0x08voidInterruptVectorHigh (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.