Chapitre 2: Le Microcontrôleur Pic 18F45K22.: 1 Présentation
Chapitre 2: Le Microcontrôleur Pic 18F45K22.: 1 Présentation
Chapitre 2: Le Microcontrôleur Pic 18F45K22.: 1 Présentation
1 Présentation.
2 Caractéristiques du PIC18.
3 Architecture interne des microcontrôleurs PIC18.
Architecture interne
Il existe différents types d’horloge (on compte jusqu’à12 types sur certains PIC). Elle peut
être soit interne, soit externe.
Avec une horloge externe et un oscillateur à quartz, on peut avoir des fréquences allant
jusqu'à64 MHz. Le filtre passe bas (Rs, C1, C2) limite les harmoniques dus à l’écrêtage et
réduit l’amplitude de l’oscillation, il n'est pas obligatoire.
Quelque soit l'oscillateur utilisé, l'horloge système dite aussi horloge instruction est obtenue
en divisant la fréquence par 4. Dans la suite de ce document on utilisera le terme Fosc/4 pour
désigner l'horloge système. Avec un quartz de 4 MHz, on obtient une horloge instruction de 1
MHz, soit le temps pour exécuter une instruction de 1µs. La configuration de l’horloge
s’effectue via plusieurs registres de configuration : CONFIG1H, OSCON, OSCTUNE etc.
PLL . Phase
LockLoop, permet de
multiplier en interne la
fréquence par 4
Horloge interne secondaire 31.25 kHz (fréquence d’entrée
entre 4 et 16 MHz)
5 Organisation de la mémoire.
256 octets est une très petite mémoire pour stocker des données. Dans certaines
cas, cela peut être suffisant mais très souvent on rajoute une mémoire de
stockage externe (composant EEPROM ou carte Flash). Par exemple :
datalogger.
Pour lire une valeur logique en entrée, on utilisera le registre PORTx (PORTA
par exemple). Pour écrire une valeur logique en sortie, on utilisera le registre
LATx (LATA par exemple).
Si on veut utiliser ce type de port pour allumer une LED, on peut utiliser le
schéma ci-dessous. Il faut juste remarquer que la logique est inversée, si on
envoie 0 sur le port, l'interrupteur se ferme et la LED s'allume. Si on envoie 1,
l'interrupteur s'ouvre et la LED s'éteint.
Les broches RA6 et RA7 peuvent être utilisées en E/S ou comme lignes
d’entrée de l’oscillateur principal.
La ligne RA4 est quant à elle multiplexée avec l’entrée d’horloge externe du
Timer0 (T0CKL) et l’une des sorties du comparateur 1 (C1OUT). Elle est
parfois nommée RA4/T0CKL/C1OUT.
Les autres lignes RA0 àRA3 et RA5 sont partagées avec les entrées du
convertisseur analogiques/numérique (CAN), les entrées Vref+ et Vref-, la
tension de référence de sortie du comparateur etc.
Les lignes RA0 àRA5 peuvent aussi être utilisées comme entrées ou sorties
du comparateur.
En entrée, une quelconque des lignes RB4 àRB7 peut déclencher, sur
changement d’état, une interruption (scrutation d’un clavier par exemple ; le
µcontrôleur reste en veille tant qu’aucune touche n’est activée). Cette fonction
peut être validée au moyen du bit RBIF du registre INTCON.
Comme tous les autres ports, le port B peut être partagée avec une ou
plusieurs autres ressources internes.
-Le timer0 (8 ou 16 bits): il peut être incrémenté par des impulsions extérieures
via la broche (TOCKI/ RA4) ou par l’horloge système (Fosc/4).
-Les timers1/3/5 (16 bits): ils peuvent être incrémentés soit par l’horloge
interne(Fosc), par l’horloge système (Fosc/4), par des impulsions sur les broches
TxCKI (RC0/RB5/RC2) ou encore par un oscillateur (RC ou quartz) connecté
sur les broches SOSC0/RCO et SOSC1/RC1.
-Le timers2/4/6 (8 bits) : ils sont incrémentés par l’horloge système (Fosc/4),
celle-ci peut être prédivisée par 4 ou 16.
Le TIMER0:
C’est le plus ancien des timer simplantés dans les PICs, son ancienne appellation
était RTC, pour Real Time Clock (horloge temps réelle). C’est aussi le plus
simple car il est autonome, c’est-à-dire qu’il n’est pas associé à d’autres
ressources internes.
Il est incrémenté soit par l’horloge système (Fosc/4), soit par un front montant
ou descendant appliqué sur la broche TOCKI/RA4.
Il est configuré par les registres T0CON, TMR0L, TMR0H et les registres
INTCON, INTCON2 (interruptions) et TRISA (broche RA4).