LE PIC 16C57C - Sn-Bretagne

publicité
COURS : LE PIC 16C57C
LE PIC 16C57C
Sommaire
I. PRESENTATION………………………………………………………………………….1
II. CARACTERISTIQUES…………………………………………………………………..2
III. L’OSCILLATEUR……………………………………………………………………….3
IV. INITIALISATION (RESET) et WATCHDOG………………………………………...4
V. ORGANISATION DE LA MEMOIRE ROM ET RAM………………………………..5
VI. CONFIGURATION DES PORTS………………………………………………………7
LYCEE LA FAYETTE
1/9
COURS : LE PIC 16C57C
I. PRESENTATION
Le PIC 16C57C faut partie de la famille des PIC 16C5X qui regroupe les PIC : 16C54, 16C56, 16C57,
16C58.
Voilà ci-dessous l'architecture interne d'un PIC de la famille 16C5X :
1/ Sur le schéma ci-dessus, encadrez les fonctions suivantes:
- Mémoire vive ;
- Mémoire morte de programme ;
- Interface d'entrée/sortie ;
- Horloge
- Chien de garde.
2/ Combien de ports contiennent les PIC de la famille 16C5X ?
………………………………………………………………………………………………………………………………………………….
LYCEE LA FAYETTE
2/9
COURS : LE PIC 16C57C
II. CARACTERISTIQUES
Le tableau ci-dessous regroupe les informations des PIC 16C5X :
1/ Quelle est la vitesse maximale de l’horloge que l’on peut appliquer au PIC 16C57C ?
………………………………………………………………………………………………………………………………………………….
2/ Quelle est la taille (en kilo-bits) de la mémoire programme du PIC 16C57C ?
………………………………………………………………………………………………………………………………………………….
3/ Quelle est la taille de la RAM (en octets) de la mémoire vive du PIC 16C57C ?
………………………………………………………………………………………………………………………………………………….
4/ Le PIC 16C57C contient-il une mémoire EEPROM interne ?
………………………………………………………………………………………………………………………………………………….
5/ Combien d’entrées – sorties contient le PIC 16C57C ?
………………………………………………………………………………………………………………………………………………….
6/ Combien d’instructions de programmation supporte le PIC 16C57C ?
………………………………………………………………………………………………………………………………………………….
LYCEE LA FAYETTE
3/9
COURS : LE PIC 16C57C
III. CONFIGURATION DE L’OSCILLATEUR
Rappel : L’oscillateur est le dispositif permettant de cadencer l’exécution du programme du PIC (par
exemple, à l’aide d’un quartz). Le schéma structurel d’un oscillateur à base de quartz est le suivant :
Oscillateur à
quartz
1/ En vous aidant de l’architecture du PIC16CX donnée en page 1, citer les deux broches d’entrée
d’horloge. Indiquer le nom de ces broches sur le schéma ci-dessus.
………………………………………………………………………………………………………………………………………………….
2/ Le tableau ci-dessous, issu de la documentation technique du PIC16CX, donne la valeur des
capacités C1 et C2 à utiliser pour l’oscillateur en fonction de la fréquence du quartz.
Sachant qu’on utilise un quartz de type XT, et de fréquence 4MHz, quelles doivent être les valeurs de
C1 et C2 afin de correctement dimensionner l’oscillateur ?
………………………………………………………………………………………………………………………………………………….
………………………………………………………………………………………………………………………………………………….
3/ Le cadencement des instructions du programme à l’intérieur de la mémoire du PIC se fait grâce au
signal d’horloge issu de l’oscillateur. Cependant, la fréquence à laquelle sont exécutées les
instructions du programme est égale au quart de la fréquence issu de l’oscillateur.
Fréquence d’exécution des instructions = Fréquence de l’oscillateur / 4
Calculer la durée d’exécution d’une instruction standard si la fréquence de l’oscillateur est de 4 Mhz.
………………………………………………………………………………………………………………………………………………….
………………………………………………………………………………………………………………………………………………….
………………………………………………………………………………………………………………………………………………….
………………………………………………………………………………………………………………………………………………….
LYCEE LA FAYETTE
4/9
COURS : LE PIC 16C57C
IV. L’INITIALISATION DU PIC16C57C (RESET)
Le RESET est l’opération permettant d’initialiser le PIC. Cette opération peut être effectuée de deux
manières :
- A la mise sous tension du système (RESET hardware), par l’intermédiaire de la broche
\MCRL.
- Lors d’un plantage dans l’exécution du programme (RESET software) par l’intermédiaire
du Watchdog (chien de garde).
IV.1. Le RESET hardware
A chaque mise sous tension du système, il faut initialiser le PIC pour qu’il puisse commencer à
exécuter son programme.
Cette opération se fait de la manière suivante :
- Après l’application de la tension d’alimentation VDD, il faut laisser la broche \MCLR à l’état
bas pendant une durée minimale tMIN ;
- Lorsque \MCRL passe à l’état haut, le PIC est initialisé en interne après une durée TDRT.
VDD
MCLR
RESET INTERNE DU PIC
IV.2. Le RESET par watchdog (chien de garde)
Un chien de garde est un dispositif logiciel (cas du PIC, mais il en existe des matériels réalisés par une
structure électronique externe au micro) permettant de vérifier que le programme s’exécute
correctement.
Le chien de garde logiciel est un compteur dont la taille est configurable et qui envoie une impulsion
interne au PIC toute les 18ms (par défaut), ce qui a pour effet d’initialiser le PIC.
En fonctionnement normal (lorsque le programme ne bogue pas), le but est d’éviter l’apparition de
cette impulsion. Pour cela, le programme exécuté par le PIC remet à 0 la valeur du compteur
régulièrement avant que s’écoule 18 ms.
Dans le cas d’un plantage du programme, la valeur du compteur ne sera pas remise à 0 et le chien de
garde enverra une impulsion de RESET au bout de 18ms, ce qui aura pour effet de réinitialiser le PIC.
LYCEE LA FAYETTE
5/9
COURS : LE PIC 16C57C
V. ORGANISATION DE LA MEMOIRE INTERNE DU PIC
V.1. Organisation de la mémoire programme (EPROM)
La mémoire EPROM du 16C57C est organisée de la manière suivante :
L’EPROM est organisée en quatre pages :
-
Page 0 : De l’adresse …………. à ………….. ;
-
Page 1 : De l’adresse …………. à ………….. ;
-
Page 2 : De l’adresse …………. à ………….. ;
-
Page 3 : De l’adresse …………. à ………….. ;
L’adresse 7FFh est particulière : elle contient le vecteur du RESET. C’est à cette adresse que le
PIC ira chercher la première instruction à exécuter lors d’un RESET.
LYCEE LA FAYETTE
6/9
COURS : LE PIC 16C57C
V.2. Organisation de la mémoire de données (RAM)
La mémoire RAM est également organisée en 4 pages :
Le « bas »
-
de chaque page contient les registres internes du PIC.
TMR0 : Compteur logiciel ;
PCL : Program Counter (Low) : Adresses basses du PC
STATUS : Registre qui contient diverses informations, comme la retenue d’une opération,
la sélection des banques mémoires en EPROM, …
FSR : Registre permettant la sélection des pages mémoire en RAM ;
PORTA, PORTB, PORTC : Registres permettant d’écrire et de lire les ports du PIC ;
Les espaces General Purpose Registers sont libres d’accès : C’est ici que le programme pourra
enregistrer des informations lors de son exécution.
1/ Quel registre se situe à l’adresse 04h ?
………………………………………………………………………………………………………………………………………………….
2/ Quel registre se situe à l’adresse 21h ?
………………………………………………………………………………………………………………………………………………….
3/ Quel registre se situe à l’adresse 43h ?
………………………………………………………………………………………………………………………………………………….
4/ Puis-je enregistrer une donnée à l’adresse 0Ah ?
………………………………………………………………………………………………………………………………………………….
5/ Puis-je enregistrer une donnée à l’adresse 23h ?
………………………………………………………………………………………………………………………………………………….
LYCEE LA FAYETTE
7/9
COURS : LE PIC 16C57C
V.3. Sélection des pages mémoires
Nous avons vu que la mémoire de programme (EPROM) ainsi que la mémoire de données (RAM) sont
organisées en 4 pages.
Sélection des pages en mémoire programme (EPROM) :
On utilise le registre STATUS :
PA2
(inutilisé)
X
X
X
X
PA1
PA0
Page EPROM sélectionnée
Page
Page
Page
Page
0
1
2
3
(000h
(200h
(400h
(600h
–
–
–
–
1FFh)
3FFh)
5FFh)
7FFh)
Sélection des pages en mémoire de données (RAM) :
On utilise le registre FSR (File Selection Register) :
Bit 6 du registre SFR
LYCEE LA FAYETTE
Bit 5 du registre SFR
Page RAM sélectionnée
Page 0 (00h – 1Fh)
Page 1 (20h – 3Fh)
Page 2 (40h – 5Fh)
Page 3 (60h – 7Fh)
8/9
COURS : LE PIC 16C57C
VI. CONFIGURATION DES PORTS
Le PIC 16C57C possède trois ports d’entrées / sorties :
- Le port A, de 4 bits [3..0] ; soit 4 fils
- Les ports B et C de 8 bits [7..0] ;
Le PIC 16C57C permet possède donc 8*2 + 4 = 20 fils d’entrées / sorties pour écrire ou lire des
données numériques.
Le registre TRIS permet de sélectionner la direction (entrée ou sortie) de chaque bit d’un port.
- Si le bit n de TRIS = 1, alors le bit n du port sera en entrée ;
- Si le bit n de TRIS = 0, alors le bit n du port sera en sortie ;
Exemple : On veut configurer le port A de la manière suivante :
PA0 : Entrée ;
PA1 : Entrée ;
PA2 : Sortie ;
PA3 : Entrée ;
On procède donc comme ceci : (W est un registre de travail interne du PIC)
Algorithme
W  00001011B
TRIS [PORTA]  W
Programme assembleur
MOVLW
00001011B
TRIS
PORTA
Commentaire
Charge W avec 00001011B
Charge TRIS du Port A
Exercice : Ecrire le programme assembleur permettant de configurer :
- PB0, PB1, PB2, PB6 : En entrée ;
- PB3, PB4, PB5, PB7 : En sortie ;
Pour cela, compléter le tableau suivant : (S : Sortie / E : Entrée)
PORTB
TRIS
PB7
S

0
PB6
E

1
PB5
PB4
PB3
PB2
PB1
PB0






En déduire le programme assembleur permettant de configurer le port B :
LYCEE LA FAYETTE
9/9
Téléchargement