LES PERIPHERIQUES DU MICROCONTRÔLEUR SIEMENS C167

Transcription

LES PERIPHERIQUES DU MICROCONTRÔLEUR SIEMENS C167
LES PERIPHERIQUES
DU
MICROCONTRÔLEUR
SIEMENS C167
Les périphériques du microcontrôleur C167
1
M. DALMAU IUT de Bayonne
Notation : Dans tout ce qui suit sont notés en gras les registres qui sont en zone ESFR, et en normal ceux qui
sont en zone SFR. Sont notés en italiques les registres qui sont adressables bit par bit.
1.Les ports parallèles
1.1 Registres associés :
Port numéro
Registre de données
Registre de direction
Registre de mode
Registre de niveaux
taille en bits
0
P0H
DP0H
8
1
P0L
DP0L
8
P1H
DP1H
P1L
DP1L
8
2
3
P2
P3
DP2
DP3
ODP2 ODP3
PICON
PICON
16
16
8
4
P4
DP4
5
P5
6
P6
DP6
7
8
P7
P8
DP7
DP8
ODP7 ODP8
ODP6
8
16
PICON
PICON
8
8
8
1.2 Description des registres :
Registre de données : permet de lire l’état des lignes en entrée et de positionner les lignes en sortie
Registre de direction : 1 bit par ligne (0=> ligne en entrée, 1=> ligne en sortie)
Registre de mode : 1 bit par ligne (0=> ligne en mode TTL (0 ou 1) , 1=> ligne en mode 0 ou haute impédance)
Registre PICON : utilisé pour définir les niveaux d’entrée sur les ports 2,3,7 et 8:
15
14
13
12
11
10
9
8
7
6
P8LIN
P7LIN
5
4
3
2
1
0
P3HIN
P3LIN
P2HIN
P2LIN
Les bits définis correspondent à 8 lignes d’un port (H ou L fort ou faible poids). Si le bit est à 1 les niveaux
d’entrée sont TTL, s’il est à 0 on peut accepter des niveaux d’entrée bruités.
Remarque : Les bits 15 et 12 du port 3 sont toujours en niveaux TTL, le bit 14 n’existe pas.
1.3 Utilisation des ports
Tous les ports peuvent être utilisés comme lignes d’entrée/sortie normales, toutefois certains autres usages leur
sont réservés :
Port 0 : Peut être utilisé pour le bus externe
Port 1 : Peut être utilisé pour le bus externe
Port 2 : Interruptions rapides (bits 15 à 8)
Port 3 : Lignes de commande et de sortie des timers et communication série
Port 4 : Peut être utilisé pour le bus externe
Port 5 : Lignes de commande des timers et entrées du convertisseur A/N
Port 6 : Peut être utilisé pour le bus externe
Port 7 : Sorties des générateurs MLI (bits 0 à 3)
Port 8 : Pas d’autre utilisation
Les périphériques du microcontrôleur C167
2
M. DALMAU IUT de Bayonne
2.Les timers
2.1 Groupe 1 (timers T2,T3 et T4)
Ils peuvent être utilisés en mode timer avec ou sans déclenchement externe jusqu’à une fréquence de 2,5 MHz et
en mode compteur d’événements externes jusqu’à une fréquence de 1,25 MHz. Le comptage se fait sur 16 bits
mais on peut les chaîner pour compter sur 32 ou 33 bits.
2.1.1 Registres associés :
Timer numéro
Registre de données
Registre de contrôle
Registre d’interruption
Registres de port
2
T2
T2CON
T2IC
P3 , DP3 , ODP3 , P5
3
T3
T3CON
T3IC
P3 , DP3 , ODP3
4
T4
T4CON
T4IC
P3 , DP3 , ODP3 , P5
2.1.2 Les entrées et les sorties :
Timer numéro
Entrée de commande
(déclenchement ou comptage)
Entrée de sens de comptage
Sortie
2
bit 7 du port 3
3
bit 6 du port 3
4
bit 5 du port 3
bit 15 du port 5
bit 4 du port 3
bit 3 du port 3
bit 14 du port 5
Il faut que ces lignes aient été programmées correctement en entrée ou en sortie (voir description de ports
parallèles)
2.1.3 Description des registres :
Registre de données : contient la valeur de comptage (en lecture pour savoir où en est le comptage, en écriture
pour initialiser le compteur).
Registre de contrôle : détermine le mode de fonctionnement du timer.
Registre d’interruption : programmation des interruptions générées par le timer.
Registres de port : lignes d’entrée ou de sortie associées aux timers (sortie, déclenchement, sens de comptage).
T2CON et T4CON :
15
14
13
12
11
10
9
8
UDE
7
UD
6
R
5
4
M
3
2
1
I
0
UDE : 0 => sens de comptage déterminé par UD, 1 => sens de comptage déterminé par la ligne d’entrée de
sens de comptage (0 => comptage, 1 => décomptage)
UD :
0 => comptage, 1 => décomptage
R:
0 => timer arrêté, 1 => timer en marche.
M:
0 0 0 => mode timer simple
0 0 1 => mode compteur
0 1 0 => mode timer déclenché lorsque l’entrée de commande est à 0
0 1 1 => mode timer déclenché lorsque l’entrée de commande est à 1
1 0 0 => mode chargement
1 0 1 => mode capture
I:
Si on est en mode timer l’horloge du timer est l’horloge système (20MHz) divisée par 2I+3 . On obtient
donc des unités de temps allant de 400ns à 51,2µs.
Les périphériques du microcontrôleur C167
3
M. DALMAU IUT de Bayonne
Si on est en mode compteur :
000 non actif
001 comptage sur les fronts montants de l’entrée de commande
010 comptage sur les fronts descendants de l’entrée de commande
011 comptage sur les fronts montants et descendants de l’entrée de commande
100 non actif
101 comptage sur les passages à 1 du bit 10 de T3CON
110 comptage sur les passages à 0 du bit 10 de T3CON
111 comptage sur les basculements du bit 10 de T3CON
Si on est en mode chargement :
000 non actif
001 chargement de T2 ou T4 dans T3 sur les fronts montants de l’entrée de commande
010 chargement de T2 ou T4 dans T3 sur les fronts descendants de l’entrée de commande
011 chargement de T2 ou T4 dans T3 sur les fronts montants et descendants de l’entrée de commande
100 non actif
101 chargement de T2 ou T4 dans T3 sur les passages à 1 du bit OTL de T3CON
110 chargement de T2 ou T4 dans T3 sur les passages à 0 du bit OTL de T3CON
111 chargement de T2 ou T4 dans T3 sur les basculements du bit OTL de T3CON
Si on est en mode capture :
x00 non actif
x01 capture de T3 dans T2 ou T4 sur les fronts montants de l’entrée de commande
x10 capture de T3 dans T2 ou T4 sur les fronts descendants de l’entrée de commande
x11 capture de T3 dans T2 ou T4 sur les fronts montants et descendants de l’entrée de
commande
T3CON :
15
14
13
12
11
10
OTL
9
OE
8
UDE
7
UD
6
R
5
4
M
3
2
1
I
0
OTL :
OE :
bascule à chaque débordement de T3 (passage de 0 à FFFF en décomptage et de FFFF à 0 en comptage)
0 => sortie inactive, 1 => sortie active. La sortie est la ligne 3 du port 3, elle bascule lors de chaque
débordement du compteur (passage de 0 à FFFF en décomptage et de FFFF à 0 en comptage)
UDE : 0 => sens de comptage déterminé par UD, 1 => sens de comptage déterminé par la ligne d’entrée de
sens de comptage P3.4 (0 => comptage, 1 => décomptage).
UD :
0 => comptage, 1 => décomptage
R:
0 => timer arrêté, 1 => timer en marche.
M:
0 0 0 => mode timer simple
0 0 1 => mode compteur
0 1 0 => mode timer déclenché lorsque l’entrée de commande (P3.6) est à 0
0 1 1 => mode timer déclenché lorsque l’entrée de commande (P3.6) est à 1
I:
Si on est en mode timer l’horloge du timer est l’horloge système (20MHz) divisée par 2I+3. On obtient
donc des unités de temps allant de 400ns à 51,2µs.
Si on est en mode compteur :
000
non actif
001
comptage sur les fronts montants de l’entrée de commande (P3.6)
010
comptage sur les fronts descendants de l’entrée de commande (P3.6)
011
comptage sur les fronts montants et descendants de l’entrée de commande (P3.6)
T2, T3 et T4 :
Ce sont les compteurs internes des timers. Leur contenu peut-être lu à tout moment, par contre s'il est modifié
lorsque les compteurs sont en marche la modification ne sera prise en compte que lors du prochain débordement.
Les périphériques du microcontrôleur C167
4
M. DALMAU IUT de Bayonne
T2IC (IT n°34), T3IC (IT n°35) et T4IC (IT n°36) :
15
14
13
12
11
10
9
8
7
IR
6
IE
5
4
3
2
ILVL
1
0
GLVL
IR :
1 => une interruption a été générée par le débordement du compteur (passage de FFFF à 0 en comptage
et de 0 à FFFF en décomptage). Ce bit est positionné même si ILVL est à 0. Il est remis à 0 par la prise
en compte de l’IT ou doit l’être par écriture si l’IT n’est pas traitée.
IE :
0 => ne pas générer d’interruption physique, 1 => générer une interruption physique
ILVL : priorité de l’interruption : 0 => interruption non traitée
13 => interruption de priorité maximale
14 et 15 => interruption associée au transfert automatique de données (PEC)
GLVL : priorité entre 2 interruptions de même ILVL (0 => minimale, 3 => maximale)
2.2 Groupe 2 (timers T5 et T6)
Ils peuvent être utilisés en mode timer avec ou sans déclenchement externe jusqu’à une fréquence de 5 MHz et en
mode compteur d’événements externes jusqu’à une fréquence de 2,5 MHz. Le comptage se fait sur 16 bits mais
on peut les chaîner pour compter sur 32 ou 33 bits.
2.2.1 Registres associés :
Timer numéro
Registre de données
Registre de capture
Registre de contrôle
Registre d’interruption
Registres de port
5
T5
CAPREL
T5CON
T5IC , CRIC
P3 , DP3 , ODP3 , P5
6
T6
CAPREL
T6CON
T6IC
P3 , DP3 , ODP3 , P5
2.2.2 Les entrées et les sorties :
Timer numéro
Entrée de commande
(déclenchement ou comptage)
Entrée de sens de comptage
Entrée de capture
Sortie
5
bit 13 du port 5
6
bit 12 du port 5
bit 11 du port 5
bit 2 du port 3
bit 10 du port 5
bit 1 du port 3
Il faut que ces lignes aient été programmées correctement en entrée ou en sortie (voir description de ports
parallèles)
2.2.3 Description des registres :
Registre de données : contient la valeur de comptage (en lecture pour savoir où en est le comptage, en écriture
pour initialiser le compteur)
Registre de capture : permet de capturer la valeur de T5 ou de charger une valeur dans T6 lors d’un événement.
Registre de contrôle : détermine le mode de fonctionnement du timer.
Registre d’interruption : programmation des interruptions générées par le timer.
Registres de port : lignes d’entrée ou de sortie des timers (sortie, déclenchement, sens de comptage et capture)
Les périphériques du microcontrôleur C167
5
M. DALMAU IUT de Bayonne
T5CON :
15
SC
14
CLR
13
12
11
10
9
CI
8
UDE
7
UD
6
R
5
4
3
2
M
1
I
0
SC :
CLR :
CI :
0 => pas de capture de T5 dans CAPREL , 1 => capture de T5 dans CAPREL
0 => T5 n’est pas remis à 0 lors d’une capture, 1 => T5 est remis à 0 lors d’une capture
00 => pas de capture
01 => capture sur le front montant de l’entrée de capture (P3.2)
10 => capture sur le front descendant de l’entrée de capture (P3.2)
11 => capture sur le front montant et descendant de l’entrée de capture (P3.2)
UDE : 0 => sens de comptage déterminé par UD, 1 => sens de comptage déterminé par la ligne d’entrée de
sens de comptage P5.11 (0 => comptage, 1 => décomptage).
UD :
0 => comptage, 1 => décomptage
R:
0 => timer arrêté, 1 => timer en marche.
M:
0 0 => mode timer simple
0 1 => mode compteur
1 0 => mode timer déclenché lorsque l’entrée de commande P5.13 est à 0
1 1 => mode timer déclenché lorsque l’entrée de commande P5.13 est à 1
I:
Si on est en mode timer l’horloge du timer est l’horloge système (20MHz) divisée par 2I+2. On obtient
donc des unités de temps allant de 200ns à 25,6µs.
Si on est en mode compteur :
000 non actif
001 comptage sur les fronts montants de l’entrée de commande P5.13
010 comptage sur les fronts descendants de l’entrée de commande P5.13
011 comptage sur les fronts montants et descendants de l’entrée de commande P5.13
100 non actif
101 comptage sur les passages à 1 du bit OTL de T6CON
110 comptage sur les passages à 0 du bit OTL de T6CON
111 comptage sur les basculements du bit OTL de T6CON
T6CON :
15
SR
14
13
12
11
10
OTL
9
OE
8
UDE
7
UD
6
R
5
4
M
3
2
1
I
0
SR :
0 => pas de chargement de CAPREL dans T6 , 1 => chargement de CAPREL dans T6. Le chargement a
lieu lors du débordement de T6.
OTL : Bascule lors de chaque débordement de T6
OE :
0 => sortie inactive, 1 => sortie active. La sortie est la ligne 1 du port 3, elle bascule lors de chaque
débordement du compteur (passage de 0 à FFFF en décomptage et de FFFF à 0 en comptage)
UDE : 0 => sens de comptage déterminé par UD, 1 => sens de comptage déterminé par la ligne d’entrée de
sens de comptage P5.10 (0 => comptage, 1 => décomptage).
UD :
0 => comptage, 1 => décomptage
R:
0 => timer arrêté, 1 => timer en marche.
M:
0 0 0 => mode timer simple
0 0 1 => mode compteur
0 1 0 => mode timer déclenché lorsque l’entrée de commande P5.12 est à 0
0 1 1 => mode timer déclenché lorsque l’entrée de commande P5.12 est à 1
I:
Si on est en mode timer l’horloge du timer est l’horloge système (20MHz) divisée par 2I+2. On obtient
donc des unités de temps allant de 200ns à 25,6µs.
Si on est en mode compteur :
000
non actif
001
comptage sur les fronts montants de l’entrée de commande P5.12
010
comptage sur les fronts descendants de l’entrée de commande P5.12
011
comptage sur les fronts montants et descendants de l’entrée de commande P5.12
Les périphériques du microcontrôleur C167
6
M. DALMAU IUT de Bayonne
T5IC (IT n°37) et T6IC (IT n°38) :
15
14
13
12
11
10
9
8
7
IR
6
IE
5
4
3
2
ILVL
1
0
GLVL
IR :
1 => une interruption a été générée par le débordement du compteur (passage de FFFF à 0 en comptage
et de 0 à FFFF en décomptage). Ce bit est positionné même si ILVL est à 0. Il est remis à 0 par la prise
en compte de l’IT ou doit l’être par écriture si l’IT n’est pas traitée.
IE :
0 => ne pas générer d’interruption physique, 1 => générer une interruption physique
ILVL : priorité de l’interruption : 0 => interruption non traitée
13 => interruption de priorité maximale
14 et 15 => interruption associée au transfert automatique de données (PEC)
GLVL : priorité entre 2 interruptions de même ILVL (0 => minimale, 3 => maximale)
CRIC (IT n°39) :
15
14
13
12
11
10
9
8
7
IR
6
IE
5
4
3
ILVL
2
1
0
GLVL
IR :
1 => une interruption a été générée par une transition active sur l’entrée de capture (voir bits CI dans
T5CON). Ce bit est positionné même si ILVL est à 0. Il est remis à 0 par la prise en compte de l’IT ou
doit l’être par écriture si l’IT n’est pas traitée.
IE :
0 => ne pas générer d’interruption physique, 1 => générer une interruption physique
ILVL : priorité de l’interruption : 0 => interruption non traitée
13 => interruption de priorité maximale
14 et 15 => interruption associée au transfert automatique de données (PEC)
GLVL : priorité entre 2 interruptions de même ILVL (0 => minimale, 3 => maximale)
3 Le générateur MLI (PWM)
3.1 Registres associés :
Canal numéro
Registre de données
Registre de comptage
Registres de contrôle et
d’interruption
Registres de port
0
PP0 , PW0
PT0
1
2
PP1 , PW1
PP2 , PW2
PT1
PT2
PWMCON0 , PWMCON1 et PWMIC
3
PP3 , PW3
PT3
P7 , DP7 et ODP7
3.2 Les entrées et les sorties :
Numéro du canal
Ligne de sortie
0
bit 0 du port 7
1
bit 1 du port 7
2
bit 2 du port 7
3
bit 3 du port 7
Il faut que ces lignes aient été programmées correctement en sortie (voir description de ports parallèles)
Le signal de sortie d'un canal peut être inversé par la mise à 1 du bit correspondant de P7. Le signal en sortie sur
la ligne i du port 7 est le OU EXCLUSIF du signal généré par le canal i et de la valeur écrite dans le bit i de P7.
Le signal de sortie en mode train d’impulsions est sur la ligne 0 du port 7.
Les périphériques du microcontrôleur C167
7
M. DALMAU IUT de Bayonne
3.3 Description des registres :
Registres de données : Permettent de régler la fréquence et le rapport cyclique du signal généré.
Registre de comptage : Compteur interne du générateur MLI.
Registre de contrôle et d’interruption : programmation du fonctionnement et des interruptions des 4 générateurs.
Registres de port : lignes d’entrée ou de sortie associées aux générateurs MLI.
PWMCON0 :
15
14
13
12
11
10
9
8
7
PIR3 PIR2 PIR1 PIR0 PIE3 PIE2 PIE1 PIE0 PTI3
6
PTI2
5
4
3
2
1
0
PTI1 PTI0 PTR3 PTR2 PTR1 PTR0
PIRi :
Indicateur d’interruption du canal i (voir la description des modes de fonctionnement pour savoir quand
l’interruption est générée). 1 => une interruption a été générée. Ce bit doit être mis à 0 par écriture.
PIEi : Autorisation d’interruption du canal i. 0 => ne pas générer d’interruption, 1 => générer une interruption
PTIi : Horloge pour le canal i. 0 => horloge système (20MHz) , 1 => horloge système divisée par 64
PTRi : 0 => canal i arrêté, 1 => canal i en marche.
PWMCON1 :
15
PS3
14
PS2
13
12
11
10
9
8
PB01
7
PM3
6
PM2
5
4
3
2
1
0
PM1 PM0 PEN3 PEN2 PEN1 PEN0
PSi :
0 => le canal i est en mode normal, 1 => le canal i est en mode impulsion unique (voir description des
modes ci-dessous).
PB01 : 0 => les canaux 0 et 1 sont indépendants, 1 => les canaux 0 et 1 sont en mode train d’impulsions (voir
description des modes ci-dessous).
PMi : 0 => le canal i est en mode 0, 1 => le canal i est en mode 1. (voir description des modes ci-dessous)
PENi : 0 => la sortie du canal i n’est pas activée, 1 => la sortie du canal i est activée. Les sorties des canaux 0 à
3 sont les lignes 0 à 3 du port 7.
PWMIC (IT n° 63) :
15
14
13
12
11
10
9
8
7
IR
6
IE
5
4
3
ILVL
2
1
0
GLVL
IR :
1 => une interruption a été générée par l’un des 4 canaux. Ce bit est positionné même si ILVL est à 0. Il
est remis à 0 par la prise en compte de l’IT ou doit l’être par écriture si l’IT n’est pas traitée. Il faudra
regarder les bits PIR3 à PIR0 de PWMCON0 pour savoir quel canal est à l’origine de l’interruption.
IE :
0 => ne pas générer d’interruption physique, 1 => générer une interruption physique
ILVL : priorité de l’interruption : 0 => interruption non traitée
13 => interruption de priorité maximale
14 et 15 => interruption associée au transfert automatique de données (PEC)
GLVL : priorité entre 2 interruptions de même ILVL (0 => minimale, 3 => maximale)
3.4 Les modes :
Mode 0 : Le signal généré par le canal i est à 0 tant que le compteur est < PWi, puis il passe à 1 jusqu’à ce que le
compteur atteigne PPi. Une interruption est émise à chaque fin de cycle.
Mode 1 : Le signal généré par le canal i est à 0 tant que le compteur est < PWi, puis il passe à 1 jusqu’à ce que le
compteur atteigne PPi. A ce moment le compteur se met en décomptage et le signal retournera à 0
quand le compteur redeviendra < PWi. Une interruption est émise à chaque fin de cycle.
Mode train d’impulsions : Le signal généré sur la ligne 0 du port 7 est le ET logique des sorties qu’auraient
générées les canaux 0 et 1 qui peuvent être mis en mode 0 ou en mode 1. Une interruption est émise à
chaque fois qu’elle le serait sur le canal 0 ou sur le canal 1.
Mode impulsion unique : Fonctionne comme le mode 0 mais un seul cycle est généré. Une interruption est émise
à la fin du cycle.
Les périphériques du microcontrôleur C167
8
M. DALMAU IUT de Bayonne
4 Convertisseur Analogique / Numérique
4.1 Registres associées :
Registres de données
Registre de contrôle
Registres d’interruption
Registres de port
ADDAT et ADDAT2
ADCON
ADCIC et ADEIC
P5
4.2 Description des registres :
Registres de données : Lecture des résultats des conversions normale et insérée.
Registre de contrôle : Programmation du mode de fonctionnement et de la vitesse de conversion.
Registres d’interruption : Interruptions générées par les fins de conversion ou les pertes d’information.
Registres de port : Lignes d’entrée des valeurs analogiques (16 lignes)
ADCON :
15
14
ADCTC
13
12
ADSTC
11
10
9
8
7
ADCRQ
ADCIN
ADWR
ADBSY
ADST
6
5
4
3
2
ADM
1
0
ADCH
ADCTC: Temps de conversion
00 => 12 * période de horloge système
11 => 24 * période de horloge système
10 => 48 * période de horloge système
La période de l’horloge système est de 50ns (20 MHz).
ADSTC : Temps d'échantillonnage (chargement de la capacité utilisé par l'échantillonneur bloqueur interne)
00 => même valeur que le temps de conversion
01 => temps de conversion * 2
10 => temps de conversion * 4
11 => temps de conversion * 8
La durée totale d’une conversion est :
(14 * temps de conversion) + (2 * temps d'échantillonnage) + (2 * horloge système).
ADCRQ : Demande d’insertion d’une conversion dans un cycle, ADDAT2 indique le numéro du canal à insérer
(voir fonctionnement ci-dessous)
ADCIN : 0 => insertion de conversion interdite, 1 => insertion de conversion autorisée
ADWR : 0 => une conversion est relancée selon ce qui est indiqué dans ADM, 1 => la conversion est relancé par
la lecture de ADDAT
ADBSY : 0 => le convertisseur est inactif, 1 => le convertisseur est actif
ADST : La mise à 1 de ce bit lance une conversion
ADM : 00 => conversion unique sur un canal
01 => conversion en continu sur un canal
10 => conversion unique sur plusieurs canaux
11 => conversion continue sur plusieurs canaux
ADCH : Numéro du canal en mode conversion mono-canal ou numéro du dernier canal en mode conversion
multi-canaux.
ADDAT :
15
14
13
CHNR
12
11
10
9
8
7
6
5
4
ADRES
3
2
1
0
CHNR : Numéro du canal sur lequel a eu lieu la conversion.
ADRES : valeur de conversion (0 pour 0V, 1023 pour 5V).
ADDAT2 : Fonctionne comme ADDAT mais reçoit le résultat d’une conversion insérée dans un cycle (voir cidessous)
Les périphériques du microcontrôleur C167
9
M. DALMAU IUT de Bayonne
ADCIC (IT n° 40) :
15
14
13
12
11
10
9
8
7
IR
6
IE
5
4
3
2
ILVL
1
0
GLVL
IR :
1 => une interruption a été générée par la terminaison d’une conversion. Ce bit est positionné même si
ILVL est à 0. Il est remis à 0 par la prise en compte de l’IT ou doit l’être par écriture si l’IT n’est pas
traitée.
IE :
0 => ne pas générer d’interruption physique, 1 => générer une interruption physique
ILVL : priorité de l’interruption : 0 => interruption non traitée
13 => interruption de priorité maximale
14 et 15 => interruption associée au transfert automatique de données (PEC)
GLVL : priorité entre 2 interruptions de même ILVL (0 => minimale, 3 => maximale)
ADEIC (IT n° 41) :
15
14
13
12
11
10
9
8
7
IR
6
IE
5
4
3
ILVL
2
1
0
GLVL
IR :
1 => une interruption a été générée soit par un overflow (une conversion est terminée sans que l’on ait lu
le résultat précédent dans ADDAT) soit par la terminaison d’une conversion insérée (la valeur est
présente dans ADDAT2). Ce bit est positionné même si ILVL est à 0. Il est remis à 0 par la prise en
compte de l’IT ou doit l’être par écriture si l’IT n’est pas traitée.
IE :
0 => ne pas générer d’interruption physique, 1 => générer une interruption physique
ILVL : priorité de l’interruption : 0 => interruption non traitée
13 => interruption de priorité maximale
14 et 15 => interruption associée au transfert automatique de données (PEC)
GLVL : priorité entre 2 interruptions de même ILVL (0 => minimale, 3 => maximale)
4.3 Modes de fonctionnement
4.3.1Conversion mono-canal
La conversion se produit sur le canal choisi par les bits ADCH de ADDCON
- Conversion unique : Lancée par la mise à 1 du bit ADST, quand elle se termine ADST et ADBSY passent à 0
- Conversion continue :
Si ADWR est à 0, dès qu’une conversion est terminée une autre démarre et ceci tant que ADST est à 1 (ADBSY
reste à 1).
Si ADWR est à 1, une nouvelle conversion démarre dès la lecture de ADDAT et ceci tant que ADST est à 1
(ADBSY reste à 1).
4.3.2 Conversion multi-canaux
- Conversion unique : Lancée par la mise à 1 du bit ADST. L’entrée indiquée par ADCH est convertie puis, lorsque c’est
terminé, c’est l’entrée précédente qui l’est. Ceci jusqu’à l’entrée 0. Quand le cycle se termine ADST et ADBSY
passent à 0
- Conversion continue :
Si ADWR est à 0, dès qu’une conversion est terminée sur un canal, une autre démarre sur le canal précédent.
Lorsque l’on a fini sur le canal 0, on reprend à partir de ADCH. Ceci tant que ADST est à 1 (ADBSY reste à 1).
Si ADWR est à 1, une nouvelle conversion démarre sur le canal précédent démarre dès la lecture de ADDAT.
Lorsque l’on a fini sur le canal 0, on reprend à partir de ADCH. Ceci tant que ADST est à 1 (ADBSY reste à 1).
4.3.3 Insertion de conversion
Permet d'insérer une conversion en mode continu. Le cycle est suspendu, la conversion insérée est faite, son résultat est mis
dans ADDAT2 et le cycle reprend. Le numéro de l’entrée à insérer est placé dans ADDAT2 et l’insertion est lancée
par la mise à 1 du bit ADCRQ.
Les périphériques du microcontrôleur C167
10
M. DALMAU IUT de Bayonne
5 Interruptions externes rapides
5.1 Registres associés
Registre de contrôle
Registres d’interruption
Registres de port
EXICON
CC8IC à CC15IC
P2 , DP2 et ODP2
5.2 Les entrées :
Nom de l’interruption
Numéro d’interruption
Ligne d’entrée (bit du port 2)
EXI0
24
8
EXI1
25
9
EXI2
26
10
EXI3
27
11
EXI4
28
12
EXI5
29
13
EXI6
30
14
EXI7
31
15
Il faut que ces lignes aient été programmées correctement en entrée (voir description de ports parallèles)
5.3 Description des registres :
Registre de contrôle : Choix du front de déclenchement de l’interruption.
Registres d’interruption : Programmation des interruptions générées par les lignes d’entrée externes.
Registres de port : Lignes d’entrée d’interruption (8 lignes de fort poids du port 2)
EXICON :
15
14
EXI7ES
13
12
EXI6ES
11
10
EXI5ES
9
8
EXI4ES
7
6
EXI3ES
5
4
EXI2ES
3
2
EXI1ES
1
0
EXI0ES
EXIiES : contrôle la ligne d’entrée provoquant l’interruption EXTi c’est à dire la ligne 8+i du port 2.
00 => pas d’interruption générée
01 => Interruption sur front montant
10 => Interruption sur front descendant
11 => Interruption sur front montant ou descendant
CC8IC à CC15IC (ITs n° 24 à 31) :
15
14
13
12
11
10
9
8
7
IR
6
IE
5
4
3
ILVL
2
1
0
GLVL
IR :
1 => une interruption a été générée par la ligne 8 à 15 du port 2.
IE :
0 => ne pas générer d’interruption physique, 1 => générer une interruption physique
ILVL : priorité de l’interruption : 0 => interruption non traitée
13 => interruption de priorité maximale
14 et 15 => interruption associée au transfert automatique de données (PEC)
GLVL : priorité entre 2 interruptions de même ILVL (0 => minimale, 3 => maximale)
Les périphériques du microcontrôleur C167
11
M. DALMAU IUT de Bayonne

Documents pareils