Académique Documents
Professionnel Documents
Culture Documents
MHMicrocontroleur M68HC811E2
MHMicrocontroleur M68HC811E2
Microcontrôleur M68HC811E2
Introduction :
DATA DIRECTION D
SS\ PD5
SCK PD4
EEPROM PORT D
SPI PD3
MOSI
MISO PD2
PE5
PORTE
PE4
PE3
PE2 CONVERTISSEUR
A/D
PE1
PE0 M68HC11 CPU
VREFH
VREFL
XIRQ INTERRUPTIONS
IRQ
(VPPBULK) DIALOGUE ENTREES/SORTIES
XTAL
EXTAL
OSCILLATEUR DATA DIRECTION C
E PORT B PORT C
VDD VSS
Page 1
Ecole Supérieure de Technologie de Meknès Informatique Industrielle
Le mode de fonctionnement est défini par l’état des entrées MODA et MODB durant le RESET.
Les modes les plus souvent utilisés sont le mode bootstrap et le mode circuit seul :
le mode circuit seul, qui permet après la mise au point du logiciel et son chargement en
EEPROM, de faire fonctionner le microcontrôleur seul (sans mémoire externe) au sein d’une
application. Tous les ports sont alors disponibles.
74LS373
1
11
3
2
MODA 68HC811E2 PC0
9
10
3
4 5
2 A0
A1
MODB PC1
11 7 6 A2
PC2
19 12 8 9 A3
IRQ PC3
18 13 13 12 A4
X IRQ PC4
17 14 14 15 A5
RESET PC5
15 17 16 A6
PC6
34 16 18 19 A7
PA0 PC7
33
PA 1
32 42 A8
PA2 PB0
31 41 A9
PA3 PB1
30 40 A 10
PA4 PB2
29 39 A 11
PA5 PB3
28 38 A 12
PA6 PB4
27 37 A 13
PA7 PB5
36 A 14
PB6
20 35 A 15
PD0 PB7
21
PD1
22 6
PD2 STRB/R/W
23 4 3 2 1
PD3 STRA/AS
24 3 WE\=E\+ R/W\
PD4
25 5 2
PD5 E
Page 2
Ecole Supérieure de Technologie de Meknès Informatique Industrielle
mémoires
externes
BOOTROM $BF40
vecteurs
d'interruption
spéciaux
$BFFF
$F800
3) broches EXTAL et XTAL qui permettent la connexion du quartz qui va cadencer le 68HC11 ou une
horloge externe comme nous le montre la figure ci-dessous.
STOP STOP
M68HC11 M68HC11
EXTAL XTAL EXTAL XTAL
Rf
Horloge externe
XTAL
C1 C2
La fréquence du quartz doit être égale à quatre fois la fréquence réelle du bus E désirée.
4MHz
E
f= 1MHz T=1µs
Page 3
Ecole Supérieure de Technologie de Meknès Informatique Industrielle
4) Sortie de l’Horloge E utilisée en mode étendu qui permettra la synchronisation du transfert des
données (mode synchrone).
en entrée une remise à l’état initial du microcontrôleur qui permettra en outre à celui-ci de
dérouler son programme à son début.
et en sortie de générer un état bas pour initialiser les circuits externes lors d’un reset interne
(anomalie, chien de garde,..).
Vecteur RESET
Après avoir placé le programme en mémoire morte (en EEPROM en mode sigle chip), l’opération de
RESET permet le démarrage de l’application. Elle consiste à placer un état bas sur l’entrée RESET\ lors
de la mise sous tension. Cette broche doit rester dans cet état pendant un minimum de 4096 cycles
d’horloge afin de permettre à l’oscillateur à quartz de se stabiliser. L’unité centrale lance alors une
procédure d’initialisation interne et va aller chercher l’adresse de début de programme dans les cases
mémoire $FFFE et $FFFF et va la placer dans le compteur de programme. Cette adresse est appelée
vecteur RESET.
* en $FFFE : $F8
* en $FFFF : $00
Le RESET initialise un certain nombre de registres (voir la suite du cours) afin que les ports qui en
dépendent ne viennent commander des interfaces qui pourraient s’avérer dangereux. Les registres
concernés sont donc configurés lors du RESET avant que le programme ne vienne fixer leur contenu.
Lors du RESET, les interruptions sont masquées (X et I du CCR sont positionnés à 1) et le mode STOP
est interdit (S = 1).
Le RESET POR
Le RESET à la mise sous tension POR (Power On RESET) est destiné à initialiser le microcontrôleur. Un
délai minimum de 4096 cycles d’horloge est alors nécessaire pour permettre à l’oscillateur de se
stabiliser. Si la broche RESET\ est encore à l’état bas après ces 4096 cycles, le microcontrôleur reste en
condition de RESET jusqu’à ce que cette broche devienne inactive (état haut).
RESET extérieur
Le microcontrôleur distingue un RESET interne d’un RESET externe en détectant si la connexion repasse
à l’état haut en un temps inférieur à deux cycles d’horloge E après un RESET interne. Quand une
condition de RESET est détectée, la connexion est mise à zéro par un circuit interne au microcontrôleur
pendant 4 cycles d’horloge E puis est relâchée. Deux cycles plus tard, elle est testée. Si la connexion est
toujours à 0, le microcontrôleur en déduit que c’est un RESET externe et un RESET interne dans le cas
contraire.
Page 4
Ecole Supérieure de Technologie de Meknès Informatique Industrielle
6) 2 broches d’entrée de demande d’interruption IRQ et XIRQ :
XIRQ : entrée de demande d’interruption non masquable active sur niveau bas.
Une interruption, comme son nom l’indique, permet d’interrompre le programme principal afin
d’effectuer un sous-programme d’interruption. Cette interruption est déclenchée par activation d' IRQ ou
XIRQ par un signal issu d’un autre circuit qui informe le microcontrôleur d’un certain événement.
(exemple : signal DA issu d’un encodeur de clavier qui informe le microcontrôleur que quelqu’un a
appuyé sur une touche du clavier).
Définition : une interruption est dite masquable si elle peut être inhibée par programme (non prise en
compte).
Remarque : chacune de ces entrées doit être ramenée au niveau Haut grâce à une résistance de pull-up
(4,7k) lors qu’il n’y a pas de demande d’interruption.
VDD 1 kOhms
VREFH
1 µF
VREFL
9) PB0 à PB7 : 8 lignes de sortie du port B en mode circuit seul(8 lignes de poids fort d’adresse en
mode étendu)
10) PC0 à PC7 : 8 lignes du port C bidirectionnelles (utilisables en entée ou en sortie par écriture du
registre DDRC.
11) PD0 à PD5 : 6 lignes de données du port D communes avec les lignes de la liaison série synchrone
SPI et de la liaison série asynchrone SCI.
12) PE0 à PE7 : 8 lignes d’entrées qui constituent le port E. Ces lignes sont partagées avec les entrées
du convertisseur analogique/digital.
13) STRA et STRB (respectivement appelés AS et R/W\ en mode étendu) sont utilisés pour divers
protocoles de dialogue lorsque le circuit est utilisé en mode circuit seul.
Page 5
Ecole Supérieure de Technologie de Meknès Informatique Industrielle
Chapitre II :L’unité centrale
L’unité centrale du 68HC11 est un modèle 8 bits disposant de fonctionnalités particulières lui
permettant d’exécuter avec un maximum de souplesse certaines instructions logiques et arithmétiques sur
16 bits.
L’unité centrale, cœur du microcontrôleur, est principalement composée d’une unité arithmétique
et logique (ALU), d’une unité de commande et de 7 registres.
II.1) L’unité arithmétique et logique (UAL), ou ALU (Arithmetic and Logic Unit).
II.1.a) Définition :
L’ALU , comme son nom l’indique, effectue, au sein du microcontrôleur, toutes les opérations
arithmétiques et logiques sur des mots binaires appliqués sur ses entrées. Ces mots binaires sont appelés
opérandes.
* addition * ET
* soustraction * OU
* décalage droite ou gauche * Complémentation
* incrémentation, décrémentation * OU exclusif
* etc. . . * etc. . .
II.1.b) Symbole :
mot X
de 8 bits
Résultat de l'opération
U.A.L arithmétique ou logique
mot Y sur 8 bits
de 8 bits
mot de commande
de l'opération arithmétique
ou logique
Le mot de commande permet de définir le type d’opération que l’on veut effectuer.
L’ALU permet également de positionner différents bits de test qui reflètent ce qui vient de se passer lors
de l’exécution d’une fonction élémentaire. Ces indicateurs, encore appelés flags (drapeaux), sont
constitués de bistables. Ils peuvent être testés automatiquement par le CPU ou par le programme.
Ces indicateurs sont regroupés dans un registre 8 bits appelé registre d’état ou CCR(Code Condition
Register)
Page 6
Ecole Supérieure de Technologie de Meknès Informatique Industrielle
registre
d'état
mot X
de 8 bits
Résultat de l'opération
U.A.L arithmétique ou logique
mot Y sur 8 bits
de 8 bits
mot de commande
de l'opération arithmétique
ou logique
CCR S X H I N Z V C
bit C (Carry) : bit de retenue est mis à un lorsqu’une opération arithmétique génère
une retenue.
bit Z comme Zéro : ce bit est positionné à 1 lorsque le résultat de l’instruction exécutée
est nul.
complément à 1 du mot 0 1 1 0 1 1 1 0
ajout de 1 + 1
complément à 2 du mot 0 1 1 0 1 1 1 1 soit 11110
Page 7
Ecole Supérieure de Technologie de Meknès Informatique Industrielle
bit I (Interrupt mask) : masque de l’interruption IRQ qui interdit toute interruption
lorsqu’il est mis à 1.
bit H (Half carry) : bit de demi-retenue positionné à 1 lors d’une retenue entre les bits 3
et 4 d’une opération arithmétique.
bit S (Stop disable) : bit qui permet lorsqu’il est mis à 1 d’interdire l’exécution de
l’instruction STOP.
Définition : un accumulateur est un registre à accès et sorties parallèles qui permet le stockage temporaire
de la donnée binaire sur laquelle va travailler l’instruction en cours de déroulement. L’ALU est capable
d’effectuer sur un accumulateur un certain nombre d’opérations telles que décalage, rotation,
complémentation, etc. Le résultat de ces opérations est directement réintroduit dans le même
accumulateur.
L’ALU seule ne représente qu’un faible intérêt, car elle n’est pas capable, à elle seule, de réaliser
une suite d’opérations en automatique. Il faut donc lui associer au minimum un automate séquenceur qui
va décoder les instructions et générer les séquences de micro-instructions.
L’automate séquenceur est piloté par une horloge qui va permettre au microprocesseur de travailler en
mode synchrone.
Page 8
Ecole Supérieure de Technologie de Meknès Informatique Industrielle
Le registre d’instruction permet de recevoir l’instruction à exécuter et fournir à l’automate séquenceur le
code machine qui déterminera toute la séquence à dérouler pour réaliser cette instruction.
Il ne reste plus qu’à ajouter, à notre unité centrale partielle, un compteur de programme PC qui va pointer
l’adresse de la prochaine instruction à exécuter et permettre ainsi de réaliser un déroulement
chronologique des instructions. Ce compteur de programme sera bien sur incrémenté automatiquement
par l’automate séquenceur.
Déroulement d’une instruction (nous prendrons comme exemple la première instruction contenu dans
la mémoire programme (adresse $2000 et $2001) du schéma ci-dessus à savoir LDAA #$22) :
le compteur de programme PC (qui contient alors $2000) envoie, sur ordre de l’automate séquenceur,
l’adresse ($2000) de l’instruction à exécuter ainsi que l’ordre de lecture de la mémoire programme
la mémoire programme envoie alors sur le bus de donnée le code machine ($86) de l’opération à
effectuer(LDAA #). Cette donnée est alors dirigée, sur ordre de l’automate séquenceur, vers le registre
d’instruction.
ce code machine ($86) est alors fourni à l’automate séquenceur qui reconnaît l’instruction de
chargement de A en adressage immédiat et va dérouler toute la routine permettant l’exécution de cette
instruction, à savoir diriger l’octet de l’adresse suivante dans le registre accumulateur A.
le compteur de programme est incrémenté de 1 et est envoyé sur le bus d’adresse en même temps que
le signal de lecture de la mémoire programme qui envoie alors $22 sur le bus de donnée. Cette donnée
est alors dirigée dans l’accumulateur A.
le compteur de programme PC est alors incrémenté pour pointer l’adresse de l’instruction suivante
devant être exécuter (PC = $2002 pointe l’instruction ADDA en mode direct).
Page 9
Ecole Supérieure de Technologie de Meknès Informatique Industrielle
7 Accumulateur A 0 7 Accumulateur B 0
15 Accumulateur D 0
15 Registre d’index X 0
15 Registre d’index Y 0
15 Pointeur de pile SP 0
15 Compteur de programme PC 0
7 Registre CCR 0
un registre d’état CCR (Code Condition Register) de taille 8 bits qui renseigne sur l’état
d’une partie de l’unité centrale après chaque opération effectuée. Il contient 8 drapeaux
(flags) ayant chacun un rôle particulier.
Page 10
Ecole Supérieure de Technologie de Meknès Informatique Industrielle
Le langage source assembleur est en quelque sorte l’écriture abrégée des commandes en langue anglaise
et est dédié à la famille du micro-processeur utilisé. De plus, différents modes d’adressage permettent de
choisir l’origine de la donnée à traiter (donnée déjà dans un registre, donnée située à une adresse mémoire
ou donnée choisie directement par le programmeur).
Dans la suite du cours, nous parlerons d’adresse effective qui est l’adresse réelle de la donnée
manipulée par l’instruction. Nous utiliserons aussi les conventions d’écriture suivantes :
Exemples :
Un programme est une suite d’instructions en code machine. Chaque instruction doit être rédigée de façon
très précise grâce à 4 champs d’édition :
Afin de faciliter la relecture du programme, on utilise des étiquettes qui permettent de retrouver
facilement un emplacement mémoire utilisé par exemple pour un saut ou un branchement.
Page 11
Ecole Supérieure de Technologie de Meknès Informatique Industrielle
III.1.3) Ecriture du programme.
Le langage d’assemblage ou source assembleur utilise des symboles mnémoniques pour représenter les
codes opératoires (ex : LDAA, STAA, LDX, etc..)
Le texte source est écrit à l’aide d’un éditeur de texte sur ordinateur. Ce texte est ensuite traité par un
autre logiciel appelé assembleur qui traduit le texte source en codes hexadécimaux compréhensibles par
le microcontrôleur : le code machine.
Le texte source doit comporter, en plus des instructions, des informations appelées directives
d’assemblage. Les directives d’assemblage principales sont au nombre de trois :
Exemple de programme :
ORG $F800 ; ici ORG est la directive qui permet d’informer le programme assembleur que le
programme débute à l’adresse $F800
PORTC EQU $1003 ; cette directive EQU permet de faire une équivalence entre le texte PORTC et $1003.
Le programme utilisera dans son programme PORTC qui est plus facile à retenir que
$1003.
DEBUT LDAA #$22 ; instruction permettant de charger l’accumulateur A avec $22
STAA PORTC ; cette instruction est donc équivalente à STAA $1003 mais est plus ‘’parlante’’
Le programme assembleur, après avoir assemblé ce texte, fournit un autre texte appelé listing
d’assemblage qui fournit, en plus du texte édité, les codes machine correspondant aux instructions du
programme.
DEBUT f800
PORTC 1003
Page 12
Ecole Supérieure de Technologie de Meknès Informatique Industrielle
Dans ce listing, on retrouve le texte assembleur, les codes machinent ainsi que leur adresse et la table des
symboles :
Codes machine(HEXA)
0001 f800 ORG $F800
0002 1003 PORTC EQU $1003
0003 f800 86 22 DEBUT LDAA #$22
0004 f802 b7 10 03 STAA PORTC
DEBUT f800
PORTC 1003 Adresses des codes machine Texte édité précédemment
Nous pouvons remarquer, dans le listing ci-dessus, que PORTC a bien été remplacé par $1003 après
assemblage.
On peut déduire, du listing de programme, le futur contenu de la mémoire programme :
Dans ce mode, il n’y a pas d’adresse effective, car l’instruction concernée se suffit à elle-même et n’a
besoin d’accéder à aucune donnée externe. De ce fait, cet adressage est aussi appelé adressage de
registres.
Page 13
Ecole Supérieure de Technologie de Meknès Informatique Industrielle
III.2.b) L’adressage immédiat, indicateur : #
Dans ce mode, le code opératoire est suivi par l’opérande et ne fait appel à aucune adresse.
Le code opératoire est suivi d’un octet non signé qui est l’adresse effective de la donnée à
manipuler. Ce mode d’adressage ne peut donc fonctionner de l’adresse $00 à l’adresse $FF et ne concerne
donc que les 256 premiers octets de l’espace adressable du microcontrôleur.
Ce mode d’adressage ne nécessitant que deux octets est plus rapide que le mode d’adressage
étendu et est donc à utiliser le plus souvent possible pour réduire la taille du programme et augmenter sa
rapidité.
L’adresse de l’opérande est maintenant sur 16 bits et permet donc d’atteindre n’importe quelle
adresse mémoire de l’espace adressable. Ce mode d’adressage peut donc fonctionner de l’adresse $0100 à
l’adresse $FFFF.
L'adresse effective de l’opérande est obtenue en additionnant le contenu du registre d’index utilisé
avec le déplacement. Le déplacement sur un octet est le nombre qui suit le code opératoire.
LDAB $25,Y charge l’accumulateur B avec le contenu de la case mémoire pointé par
l’index Y augmenté de $25.
Ce mode n’est utilisé que pour les instructions de sauts et de branchements (branchements conditionnels).
Il spécifie l’adresse effective sous forme d’un déplacement qui est donc ajouté à la valeur courante du
compteur de programme PC pour déterminer l’adresse de poursuite du programme. Le calcul du
déplacement effectif est calculé automatiquement par l’assembleur et le branchement est réalisé à
l’adresse spécifiée par son étiquette.
Ce mode permet de modifier un ou plusieurs bits dans une case mémoire. Ce mode d’adressage ne qu’en
mode direct ou indexé.
Dans ce mode, l’instruction s’écrit en trois parties :
Masque est un octet dont les bits à 1 indiquent le ou les bits de Opérande à manipuler.
BSET comme Bit SET = mise à 1 de bits utilisée pour forcer à 1 l’état de certains bits.
BCLR comme Bit CLeaR = mise à 0 de bits utilisée pour forcer à 0 l’état de certains bits.
Ce mode permet de tester la valeur d’un ou plusieurs bits d’une donnée en mémoire et d’effectuer
ou non un saut en fonction de l’état de ce ou ces bits.
BRCLR BRanch if bit(s) CLeaR qui effectue un branchement si tous les bits testés sont à 0.
BRSET BRanch if bit(s) SET qui effectue un branchement si tous les bits testés sont à 1.
Page 16
Ecole Supérieure de Technologie de Meknès Informatique Industrielle
Chapitre IV : Les interfaces parallèles
Dans ce chapitre, nous développerons essentiellement l’utilisation des ports en tant que lignes
d’entrées/sorties. Les autres utilisations des ports (Timer, conversion, etc..) seront développés
ultérieurement dans des chapitres qui leur seront exclusivement consacrés.
Les interfaces parallèles peuvent permettent l’émission ou la réception de données sous forme
parallèle (8 bits émis ou reçus simultanément). Le microcontrôleur peut aussi gérer chaque ligne des ports
individuellement. Certains port possèdent des lignes figées en entrée qui ne peuvent que recevoir des
informations, d’autres possèdent des lignes figées en sortie qui ne peuvent qu’émettre des informations ou
commander des interfaces et d’autres lignes sont bidirectionnelles , c’est à dire qu’elles peuvent être
programmées pour fonctionner en entrées ou en sorties par écriture des bits de leur registre de direction
des données respectifs(registre DDR...).
IV.1) Le port A
Le port A est un port parallèle à usage général partagé avec le timer et l’accumulateur d’impulsions.
Un timer est système qui permet de fournir des signaux carrés ou rectangulaires avec des durées très
précises ou mesurer la durée d’une impulsion . L’accumulateur d’impulsions permet de compter les
impulsions présentes sur la ligne PA7 du port A pour le 68HC811E2.
Le port A possède des lignes figées en entrée PA0, PA1 et PA2, des lignes figées en sortie (PA4 à PA6)
et deux lignes bidirectionnelles PA3 et PA7.
E/S S S S E/S E E E
PORTA 0 0 0 0 0 0 0 0
Pour programmer les lignes PA3 et PA7 en entrée ou en sortie, on programme les bits 3 (DDRA3) et 7
(DDRA7) du registre PACTL (Port A ConTroL).
Si le bit de direction des données est à 1, la ligne du port A correspondante est programmée en sortie.
Si le bit de direction des données est à 0, la ligne du port A correspondante est programmée en entrée.
Page 17
Ecole Supérieure de Technologie de Meknès Informatique Industrielle
Exemple :
PACTL 0 1
Dans cet exemple, la ligne PA7 est programmée en entrée et la ligne PA3 est programmée en sortie.
Pour fixer l’état logique d’une sortie, on écrit le bit correspondant du registre PORTA ($1000) tandis que
l’état d’une ligne d’entrée est lu dans ce même registre.
Exercices :
ex 1 : fixons un état haut sur la ligne PA6 qui est toujours une sortie.
LDX #$1000
BSET PORTA, X %01000000 ; fixe à 1 PA6
ex 2 : fixons un état bas sur la ligne PA3 après l’avoir programmée en sortie
après ces instructions, l’accumulateur A contient tout l’état du port A donc le bit 7 de l’accumulateur A
correspond à l’état de la ligne PA7.
IV.2) Le port B
Le port B est unidirectionnel et ne fonctionne qu’en sortie (ces sorties deviennent des lignes d’adresses en
adressage étendu).
Les niveaux logiques sur ses sorties sont définis par écriture du registre PORTB à l’adresse $1004.
PORTB étant un registre, les états des sorties sont mémorisés jusqu'à ce que PORTB soit réécrit.
Page 18
Ecole Supérieure de Technologie de Meknès Informatique Industrielle
registre PORTB adresse $1004
IV.3) Le port C
Remarque : Lorsque le circuit fonctionne en mode étendu, le port C véhicule en mode multiplexé le bus
de données (8 bits bidirectionnels) et les 8 bits de poids faibles du bus d’adresses.
Les 8 lignes du port C sont bidirectionnelles, c’est à dire qu’elles peuvent être programmées
individuellement en entrée ou en sortie. Le registre DDRC (adresse $1007) permet cette programmation.
L’état des sorties est fixé par écriture du registre PORTC tandis que les états des lignes en entrées sont
donnés par lecture de ce même registre.
Avant utilisation de ce port, il est donc nécessaire d’écrire DDRC afin de définir le sens de travail des
lignes du port.
Nous pouvons remarquer, qu’après un RESET, toutes les lignes du port C sont en entrée.
Page 19
Ecole Supérieure de Technologie de Meknès Informatique Industrielle
ex 1 : fixons un état haut sur toutes les lignes du port C après l’avoir programmé en sortie
ex 2: programmons les quatre lignes de poids fort du port C en entrée et les 4 lignes de poids faible en
sortie et effectuons une lecture des entrées.
LDX #$1000
LDAA #%00001111
STAA DDRC,X ; PC7 à PC4 en entrée, PC3 à PC0 en sortie
LDAA PORTC,X ; lecture du port C et chargement dans A
après ces instructions, l’accumulateur A contient tout l’état du port C donc les bits de poids forts de
l’accumulateur A sont les images des états logiques présents sur les entrées PC7 à PC4 (juste au moment
du déroulement de l’instruction uniquement).
IV.4) Le port D
Le port D, de taille 6 bits seulement, est relié aux interfaces séries synchrone(SPI) et asynchrone SCI mais
il peut être utilisé tout simplement en port parallèle bidirectionnel grâce à la programmation des registres
DDRD et PORTD.
Nous pouvons remarquer, qu’après un RESET, toutes les lignes du port D sont en entrée.
la programmation du port D étant similaire à celle du port C, elle ne sera pas développée ici.
IV.4) Le port E
Les 8 lignes d’entrée du port E sont partagées avec le convertisseur analogique/numérique. Utilisées en
entrées simples, le registre PORTE permet de connaître les états logiques qui leur sont appliqués.
Page 20
Ecole Supérieure de Technologie de Meknès Informatique Industrielle
Registre PORTE adresse $100A
V.1) Définition
La transmission série d’informations consiste à envoyer les informations binaires bit après bit au
lieu de les envoyer en parallèle. Les liaisons parallèles nécessitent au moins autant de fils que de bits à
transmettre simultanément. La transmission série ne nécessite généralement que 2 fils(1 de données et 1
de masse), d’où son intérêt. Ce type de transmission permet de transmettre des informations sur des
distances beaucoup plus longues mais peut être aussi entaché d’erreurs dues par exemple à des parasites
d’origines électriques ou encore à l’atténuation des signaux provoquée par la résistance de la ligne.
La norme de transmission la plus courante est la RS232. Toutefois, en milieu industriel parasité,
on lui préfère les normes RS422 ou RS485 qui lui sont supérieures, car utilisant le mode différentiel.
Les niveaux logiques transmis sur la liaison RS232 sont représentés par des tensions comprises
entre +5V à +12V pour le 0 et entre -5V à -12V pour le 1. Les récepteurs eux sont prévus pour
recevoir des signaux atténués jusque -3V et +3V. La distance de transmission peut atteindre 15 mètres.
Page 21
Ecole Supérieure de Technologie de Meknès Informatique Industrielle
Les signaux d’entrée de l’émetteur et de sortie du récepteur sont compatibles TTL et CMOS.
Cette norme utilise une liaison différentielle sur une paire torsadée à laquelle on ajoute une liaison
référence de potentiel OVL qui sera véhiculée par une deuxième paire torsadée. Les deux paires sont
protégées des perturbations électromagnétiques par un blindage supplémentaire.
Page 22
Ecole Supérieure de Technologie de Meknès Informatique Industrielle
Dans ce mode de transmission, les niveaux logiques sont représentés par des niveaux de courant
différents dans une ligne. Les boucles de courant sont insensibles aux pertes dues à la résistance de ligne
et moins sensibles aux parasites.
Elles autorisent des transmissions jusqu'à 300 mètres.
Le niveau logique haut est représenté par un courant de 20 mA tandis que le niveau bas est de
4mA pour s’affranchir des coupures de lignes En effet, l’absence de courant dans la ligne sera considérée
comme une coupure de liaison.
Une erreur de transmission se traduit par le gain ou d’une perte d'un ou plusieurs bits transmis.
Pour détecter ces erreurs, en plus de la donnée, on émet un bit supplémentaire appelé bit de parité qui
permettra, lors de la réception, de vérifier s’il y a eu modification du nombre de bits pendant la
transmission. La détection standard de ces erreurs se fait par le contrôle de parité.
Ce contrôle consiste à ajouter un bit au caractère transmis de façon à ce que le nombre de bits à 1
transmis soit pair (contrôle de parité paire) ou soit impaire (contrôle de parité impaire).
Exemple : soit à transmettre la donnée $F8 = %11111000 avec un contrôle de parité paire.
111110001
mot $F8 bit de parité ajouté
nous pouvons remarquer que le nombre de bits transmis ici est pair (6) grâce au bit ajouté.
A la réception, il suffit alors de contrôler que le nombre de bits reçus à 1 est pair.
Page 23
Ecole Supérieure de Technologie de Meknès Informatique Industrielle
Cette liaison SCI (Serial Communication Interface) est dite asynchrone, car on ne transmet pas de
signal d’horloge en même temps que les données. C’est donc au récepteur de détecter le début ou la fin
d’une donnée.
Les données sont transmises les unes après les autres et la synchronisation se fait par
l’intermédiaire de bits de START et de STOP, la ligne étant toujours au niveau 1 lorsqu’il n’y a pas de
transmission d’informations.
Dans une liaison asynchrone, la durée d’un bit transmis est toujours identique pour une vitesse de
transmission donnée. Cette vitesse est exprimée soit en bits par seconde soit en Bauds.
la vitesse exprimée en bits par seconde veut dire que l’on émet X bits d’information utile à la
seconde.
la vitesse exprimée en Bauds exprime le nombre de bits bruts par seconde(bits d’information utile +
bit de START + bit de parité + bits de STOP) et ne dépend donc que de la durée d’un bit.
Exemple :
dans cet exemple, un bit dure 26,04µs (quelque soit le type de bit). La vitesse de transmission est donc de
1/26,04 E-6 soit 38400 Bauds.
8 bits de données sont émis en 11*26,04µs = 286,46µs, ce qui entraîne qu’un bit de donnée est émis en
286,46µs/8 soit 35,81µs la vitesse de transmission est de 1/35,81 E-6 soit 27927 bits par seconde.
Exercice : calculer la vitesse de transmission en bits par seconde d’une émission de données à une vitesse
de 9600 Bauds sachant que l’on utilise 1 bit de start, pas de bit de parité et deux bits de stop.
Page 24
Ecole Supérieure de Technologie de Meknès Informatique Industrielle
Réponse :
une de réception des données : ligne PD0 encore appelée RxD (Receive Data)
une de transmission des données : ligne PD1 encore appelée TxD (Transmit Data)
Le convertisseur (port E) possède 8 entrées analogiques multiplexées qui peuvent chacune recevoir une
tension pouvant atteindre 6 Volts. Un seul convertisseur est intégré au microcontrôleur. Un multiplexeur
analogique va sélectionner une entrée à convertir à la fois parmi les 8.
La tension de référence haute est appliquée sur la broche VrefH et le tension de référence basse sur la
broche VrefL.
Si la tension d’une entrée du port E atteint VrefH, celle-ci est convertie en mot binaire %11111111 et
inversement si elle égale la tension VrefL le convertisseur la traduit par %00000000.
Pour pouvoir convertir ces tensions, le convertisseur a besoin d’une tension supérieur à la tension
d’alimentation du microcontrôleur. Celle-ci est fabriquée à l’aide d’une pompe de charge interne au
microcontrôleur que l’on ‘démarre’ par l’écriture du bit ADPU (AD Power Up, bit 7) du registre option
($1039). Il conviendra d’attendre 100µs, après cette écriture, pour laisser le temps à la pompe de charge
d’atteindre la tension voulue.
Page 25
Ecole Supérieure de Technologie de Meknès Informatique Industrielle
registre OPTION $1039
7 6 5 4 3 2 1 0
ADPU CSEL IRQE DLY CME 0 CR1 CRO
0 0 0 1 0 0 0 0 RESET
Le bit CSEL (Clock SELect, bit 6) du registre OPTION sera mis à 1 pour des fréquences du bus E
supérieures à 750 kHz (cas le plus courant). Sinon, il sera mis à zéro mais dans ce cas la précision du
convertisseur sera moins précise.
Les conversions n’ont pas lieu simultanément mais de façon successive. Les résultats sont stockés dans
des registres appelés ADR1($1031), ADR2 ($1032), ADR3 ($1033) et ADR4 ($1034).
7 6 5 4 3 2 1 0
Il existe deux modes de fonctionnement suivant l’état du bit MULT (bit 4) du registre ADCTL (Analog
Digital ConTroL:
7 6 5 4 3 2 1 0
CCF 0 SCAN MULT CD CC CB CA
0 0 - - - - - - RESET
Page 26
Ecole Supérieure de Technologie de Meknès Informatique Industrielle
Rôle de chaque bit du registre ADCTL
choisie
0 CA 0 0 0 0 PE0 ADR1 1 0 0 0 réservé ADR1
ces bits sélectionnent 0 0 0 1 PE1 ADR2 1 0 0 1 réservé ADR2
1 CB l’entrée ou les entrées du 0 0 1 0 PE2 ADR3 1 0 1 0 réservé ADR3
port E qui seront utilisées 0 0 1 1 PE3 ADR4 1 0 1 1 réservé ADR4
2 CC par la conversion 0 1 0 0 PE4 ADR1 1 1 0 0 VRH ADR1
0 1 0 1 PE5 ADR2 1 1 0 1 VRL ADR2
3 CD 0 1 1 0 PE6 ADR3 1 1 1 0 ½ VRH ADR3
0 1 1 1 PE7 ADR4 1 1 1 1 réservé ADR4
4 MULT MULTiple channel 0 le CAN réalise 4 conversions successives sur l’entrée choisie par CA à CD
1 le CAN réalise une conversion sur chaque entrée du groupe choisi par CD et CC
5 SCAN SCAN control 0 les 4 conversions (1 ou 4 entrées suivant MULT) sont réalisées une seule fois
1 les conversions demandées ont lieu en continu et les registres sont actualisés
6 0 0
7 CCF Conversion Complete Flag 0 remis à 0 par écriture de ADCTL
1 mis à 1 à la fin des 4 conversions qui ont lieu au moins une fois
1er cas : SCAN = 0, acquisition de la tension de l’entrée 4 fois de suite, les 4 résultats étant stockés
dans les registres ADR1 à ADR4.
2ème cas : SCAN = 1, acquisition continue de la tension d’entrée, les résultats étant mis en mémoire
successivement dans les registres ADR1 à ADR4. Les résultats suivants écrasent les anciennes valeurs
dans ces mêmes registres.
VI.2.b) Le mode canaux multiples : MULT = 1
1er cas : SCAN = 0, acquisition unique des quatre canaux sélectionnés et mise en mémoire dans les
registres ADR1 à ADR4.
2ème cas : SCAN = 1, acquisition permanente des quatre canaux, les résultats étant mis en mémoire
dans les registres ADR1 à ADR4. Les résultats suivants écrasent les anciennes valeurs dans ces
mêmes registres.
Dans tous les cas de figure ci-dessus, la fin de la conversion est détectée par lecture ou test du bit CCF
(Conversion Complete Flag) du registre ADCTL (voir détail du registre ci-dessus). Le passage à l’état
haut de ce bit indique que les quatre registres de résultats contiennent des données valides. Ce bit est
remis à zéro par écriture du registre ADCTL.
Page 27
Ecole Supérieure de Technologie de Meknès Informatique Industrielle
Exemple de programme de conversion :
***************************************************************
* programme d'affichage du résultat de la conversion numérique/analogique *
* de l'entrée PE0 sur le bargraph relié au port B de la maquette *
***************************************************************
org $0
start ldx #$1000
bset optio,x %10000000
bsr tempo
ldaa #%00100000 *scan,mult,PE0 a PE3
staa adctl,x
atten brset adctl,x %10000000 acqui
bra atten
acqui ldaa adr1,x
staa portb,x
bsr tempo
jmp acqui
Page 28
Ecole Supérieure de Technologie de Meknès Informatique Industrielle
Les registres de configuration et de programmation de l’EEPROM
0-1-2-3 REG3 à REG0 Ces 4 bits définissent le chiffre de poids fort de l’adresses de base du bloc de 64 registres internes. Suite à un RESET, ces
bits sont initialisés à 0001 ce qui place donc les registres de $1000à $103F
4-5-6-7 RAM3 à RAM0 Ces 4 bits définissent le chiffre de poids fort de l’adresses de base de la RAM. Suite à un RESET, ces bits sont initialisés à
0000 ce qui place la RAM à partir de l’adresse $0000
Page 29
Ecole Supérieure de Technologie de Meknès Informatique Industrielle
registre HPRIO : High PRIOrity interrupt $103C
7 6 5 4 3 2 1 0
RBOO SMOD MDA IRV PSEL3 PSEL2 PSEL1 PSEL0
T
- - - - 0 1 0 1 RESET
7 6 5 4 3 2 1 0
ODD EVEN - BYTE ROW ERAS EELA EEPGM
E T
0 0 0 0 0 0 0 0 RESET
Page 30
Ecole Supérieure de Technologie de Meknès Informatique Industrielle
PORTA : port parallèle d’usage général partagé avec le TIMER et l’accumulateur d’impulsions.
0 PR0 PR1 = 0 et PR0 = 0 (facteur de division =1) (résol=500ns - capa max = 32,77ms)
Facteur de prédivision PR1 = 0 et PR0 = 1 (facteur de division =4) (résol=2µs - capa max = 131,1ms)
1 PR1 (pour un quartz de 8 Mhz) PR1 = 1 et PR0 = 0 (facteur de division =8) (résol=4µs - capa max = 262,1ms)
PR1 = 1 et PR0 = 1 (facteur de division =16) (résol=8µ - capa max = 524,3ms)
2 non utilisé 0
3 non utilisé 0
4 PAII Pulse Accumulator 0 interruption interdites mais PAOVF continue de fonctionner normalement
Interrupt enable 1 génération d’interruption au passage du bit PAIF
5 PAOVI Pulse Accumulator 0 interruptions interdites mais PAOVF continue de fonctionner normalement
Overflow Interrupt enable 1 interruptions autorisées par le passage à 1 du bit PAOVF(bit 5 de TFLG2)
6 RTII Real Time Interrupt enable 0 IRQ de la RTI inhibées, la RTI continue de fonctionner et de positionner le bit RTI
1 les interruptions de la RTI sont autorisées
7 TOI Timer Overflow Interrupt 0 interruptions interdites mais le bit TOF continue de fonctionner normalement
Enable 1 autorise les interruptions produite par le passage à 1 de TOF(bit 7 de TFLG2)
Page 31
Ecole Supérieure de Technologie de Meknès Informatique Industrielle
0 non utilisé 0
1 non utilisé 0
2 non utilisé 0
3 non utilisé 0
4 PAIF Pulse Accumulator Input 0 remis à 0 par écriture de ce bit avec un 1 (oui un 1)
Flag 1 mis à 1 lors de la détection d’une transition valide sur l’entrée PAI
5 PAOVF Pulse Accumulator 0 remis à 0 par écriture de ce bit avec un 1 (oui un 1)
Overflow Flag 1 mis à 1 lors du débordement du compteur de $FF à $00
6 RTIF Real Time Interrupt Flag 0 remis à 0 par écriture de ce bit avec un 1 (oui un 1) avant l’instruction RTI
1 passe à 1 lorsqu’une interruption temps réel a lieu
7 TOF Timer Overflow Flag 0 remis à 0 par écriture de ce bit avec un 1 (oui un 1)
1 positionné à 1 à chaque débordement du compteur de $FFFF à $0000
registres TIC1, TIC2, TIC3 : Timer Input Capture register
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
b15 b0 TIC1
$1011
$1010
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
b15 b0 TIC2
$1012 $1013
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
b15 b0 TIC3
$1014 $1015
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
b15 b0 TOC2
$1018 $1019
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
b15 b0 TOC3
$101A $101B
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
b15 b0 TOC4
$101C $101D
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
b15 b0 TOC5
$101E $101F
Page 32
Ecole Supérieure de Technologie de Meknès Informatique Industrielle
registre TCTL2 : Timer ConTroL 2 $1021
7 6 5 4 3 2 1 0
- - EDG1 EDG1 EDG2 EDG2 EDG3 EDG3
B A B A B A
0 0 0 0 0 0 0 0 RESET
0 IC3I Input Capture Interrupt enable 0 les interruption sont interdites mais le bits IC3F continue de fonctionner normalement
1 autorise les interruptions produites par la passage à 1 du bit IC3F
1 IC2I Input Capture Interrupt enable 0 les interruption sont interdites mais le bits IC2F continue de fonctionner normalement
1 autorise les interruptions produites par la passage à 1 du bit IC2F
2 IC1I Input Capture Interrupt enable 0 les interruption sont interdites mais le bits IC1F continue de fonctionner normalement
1 autorise les interruptions produites par la passage à 1 du bit IC1F
3 OC5I Output Compare Interrupt enable 0 les interruption sont interdites mais le bits OC5F continue de fonctionner normalement
1 autorise les interruptions produites par la passage à 1 du bit OC5F
4 OC4I Output Compare Interrupt enable 0 les interruption sont interdites mais le bits OC4F continue de fonctionner normalement
1 autorise les interruptions produites par la passage à 1 du bit OC4F
5 OC3I Output Compare Interrupt enable 0 les interruption sont interdites mais le bits OC3F continue de fonctionner normalement
1 autorise les interruptions produites par la passage à 1 du bit OC3F
6 OC2I Output Compare Interrupt enable 0 les interruption sont interdites mais le bits OC2F continue de fonctionner normalement
1 autorise les interruptions produites par la passage à 1 du bit OC2F
7 OC1I Output Compare Interrupt enable 0 les interruption sont interdites mais le bits OC1F continue de fonctionner normalement
1 autorise les interruptions produites par la passage à 1 du bit OC1F
Page 33
Ecole Supérieure de Technologie de Meknès Informatique Industrielle
0 IC3F Input capture Flag 3 0 remis à 0 par écriture de ce bit avec un 1 (oui un 1)
1 passe à 1 lorsqu’une transition valide sur IC3 est détectée(si une capture a lieu)
1 IC2F Input capture Flag 2 0 remis à 0 par écriture de ce bit avec un 1 (oui un 1)
1 passe à 1 lorsqu’une transition valide sur IC2 est détectée(si une capture a lieu)
2 IC1F Input capture Flag 1 0 remis à 0 par écriture de ce bit avec un 1 (oui un 1)
1 passe à 1 lorsqu’une transition valide sur IC1 est détectée(si une capture a lieu)
3 OC5F Output Compare Flag 5 0 remis à 0 par écriture de ce bit avec un 1 (oui un 1)
1 passe à 1 lorsqu’il y a égalité entre le contenu du compteur et le contenu de TOC5
4 OC4F Output Compare Flag 4 0 remis à 0 par écriture de ce bit avec un 1 (oui un 1)
1 passe à 1 lorsqu’il y a égalité entre le contenu du compteur et le contenu de TOC4
5 OC3F Output Compare Flag 3 0 remis à 0 par écriture de ce bit avec un 1 (oui un 1)
1 passe à 1 lorsqu’il y a égalité entre le contenu du compteur et le contenu de TOC3
6 OC2F Output Compare Flag 2 0 remis à 0 par écriture de ce bit avec un 1 (oui un 1)
1 passe à 1 lorsqu’il y a égalité entre le contenu du compteur et le contenu de TOC2
7 OC1F Output Compare Flag 1 0 remis à 0 par écriture de ce bit avec un 1 (oui un 1)
1 passe à 1 lorsqu’il y a égalité entre le contenu du compteur et le contenu de TOC1
0 OL5 ces deux bits définissent le OM5 = 0 OL5 = 0 pas d’action sur la sortie OC5
comportement de la sortie OM5 = 0 OL5 = 1 changement d’état à chaque comparaison valide
1 OM5 OC5 lors d’une comparai- OM5 = 1 OL5 = 0 mise à zéro à chaque comparaison valide
son réussie OM5 = 1 OL5 = 1 mise à 1 à chaque comparaison valide
2 OL4 ces deux bits définissent le OM4 = 0 OL4 = 0 pas d’action sur la sortie OC4
comportement de la sortie OM4 = 0 OL4 = 1 changement d’état à chaque comparaison valide
3 OM4 OC4 lors d’une comparai- OM4 = 1 OL4 = 0 mise à zéro à chaque comparaison valide
son réussie OM4 = 1 OL4 = 1 mise à 1 à chaque comparaison valide
4 OL3 ces deux bits définissent le OM3 = 0 OL3 = 0 pas d’action sur la sortie OC3
comportement de la sortie OM3 = 0 OL3 = 1 changement d’état à chaque comparaison valide
5 OM3 OC3 lors d’une comparai- OM3 = 1 OL3 = 0 mise à zéro à chaque comparaison valide
son réussie OM3 = 1 OL3 = 1 mise à 1 à chaque comparaison valide
6 OL2 ces deux bits définissent le OM2 = 0 OL2 = 0 pas d’action sur la sortie OC2
comportement de la sortie OM2 = 0 OL2 = 1 changement d’état à chaque comparaison valide
7 OM2 OC2 lors d’une comparai- OM2 = 1 OL2 = 0 mise à zéro à chaque comparaison valide
son réussie OM2 = 1 OL2 = 1 mise à 1 à chaque comparaison valide
0 RTR0 Ces deux bits fixent le RTR1 = 0 RTR0 = 0 rythme= 4,10 ms (E/2 13 divisé par 1)
rythme de génération des RTR1 = 0 RTR0 = 1 rythme= 8,19 ms (E/213 divisé par 2)
1 RTR1 interruptions temps réel RTR1 = 1 RTR0 = 0 rythme= 16,38 ms (E/2 13 divisé par 4)
(valeur pour quartz 8MHz) RTR1 = 1 RTR0 = 1 rythme= 33,77 ms (E/2 13 divisé par 8)
2 0 0
3 0 0
4 PEDGE Pulse accumulator EDGE 0 l’entrée PAI réagit sur des fronts descendants et ouvre le comptage par niveau bas
Select 1 PAI réagit sur des fronts montants et ouvre la porte de comptage sur un niveau haut
5 PAMOD Pulse Accumulator MODe 0 l’accumulateur d’impulsions compte les impulsions sur PAI
1 l’accumulateur d’impulsions compte l’horloge E/64 sous contrôle du niveau de PAI
6 PAEN Pulse Accumulator ENable 0 l’accumulateur d’impulsions est inactif, le compteur est arrêté
1 l’accumulateur d’impulsions est validé
7 DDRA7 Data Direction Register A7 0 la patte PA7 qui est aussi PAI est configurée en entrée
1 PA7 est configurée en sortie. Elle peut être utilisée par OC1 du timer général
Le registre du PORT B
Page 35
Ecole Supérieure de Technologie de Meknès Informatique Industrielle
Les registres du PORT C
0 INVB INVert strobe 0 STRB est une impulsion active au niveau bas (état de repos=1)
1 STRB est une impulsion active au niveau haut
1 EGA EdGe select for strobe A 0 les transitions valides du signal STRA sont des fronts descendants
1 les transitions valides du signal STRA sont des fronts montants
2 PLS strbe B PuLSe mode select 0 la ligne STRB fonctionne en mode dialoge
1 STRB fonctionne en mode impulsionnel d’une durée de 2 période d’horloge E
3 OIN Output Input haNdshake 0 sélectionne le mode dialogue complet en entrée si HNDS =1
select 1 sélectionne le mode dialogue complet en sortie si HNDS =1
4 HNDS HaNdshake simple strobe 0 mode dialogue simple
moDe Select 1 mode précisé par l’état du bit OIN
5 CWOM port C Wire Or Mode 0 les sorties du port C fonctionnent en push pull
1 les sorties du port C supportent le OU cablé (transistor relié à VDD désactivé)
6 STAI STrobe A Interrupt enable 0 les interruptions générées par STAF sont interdites
1 le passage à 1 du STAF génère une interruption de type Strobe A
7 STAF STrobe A Flag 0 remis à zero par une procédure automatique(lecture de PIOC + R/W\ de PORTCL)
1 positionné à 1 par une transition actice sur STRA
Page 36
Ecole Supérieure de Technologie de Meknès Informatique Industrielle
0 DDRD0 Data Direction Register D0 0 PD0 est une entrée (l’état de ce bit est fixé d’office s'il est utilisé par la SCI)
1 PD0 est une sortie (l’état de ce bit est fixé d’office s'il est utilisé par la SCI)
1 DDRD1 Data Direction Register D1 0 PD1 est une entrée (l’état de ce bit est fixé d’office s'il est utilisé par la SCI)
1 PD1 est une sortie (l’état de ce bit est fixé d’office s'il est utilisé par la SCI)
2 DDRD2 Data Direction Register D2 0 PD2 est une entrée (patte MISO pour la SPI configurée en esclave quelquesoit DDRD2)
1 PD2 est une sortie (patte MISO pour la SPI configurée en maître)
3 DDRD3 Data Direction Register D3 0 PD3 est une entrée (patte MOSI pour la SPI configurée en esclave quelquesoit DDRD3)
1 PD3 est une sortie (patte MOSI pour la SPI configurée en maître)
4 DDRD4 Data Direction Register D4 0 PD4 est une entrée (entrée d’horloge SCK pour la SPI configurée en esclave)
1 PD4 est une sortie (sortie d’horloge SCK pour la SPI configurée en maître)
5 DDRD5 Data Direction Register D5 0 PD5 est une entrée(SS\ ou entrée de détection des défauts de transmission)
1 PD5 est une sortie d’usage général
6 - non utilisé
7 - non utilisé
Page 37
Ecole Supérieure de Technologie de Meknès Informatique Industrielle
0 non utilisé
1 non utilisé
2 non utilisé
3 non utilisé
4 MODF MODe Fault flag 0 remis à 0 par lecture de SPSR suivie d’une écriture dans le SPCR
1 passe à 1 lorsque plusieurs maîtres sont détectés simultanément sur la liaison
5 non utilisé 0
6 WCOL Write COLlision 0 remis à zero par une lecture de SPSR suivie d’un accés (lect ou ecrit) au SPCR
1 passe à 1 lors d’une écriture de SPDR alors qu’un transfert de données est en cours
7 SPIF Serial PerIpheral data 0 remis à zero par une lecture de SPSR suivie d’un accés (lect ou ecrit) au SPCR
transfert Flag 1 passe à 1 lorsqu’un transfert est terminé(si SPIE=1 interruption de type SPI)
0 non utilisé 0
1 non utilisé 0
2 non utilisé 0
3 WAKE WAKE (reveil) 0 reveil du recepteur lorsque la ligne restera inactive pendant la durée d’un caractère au moins
1 réveil du récepteur lors de la reception d’un 1 sur le bit de poids + fort du mot reçu
4 M format de transmission 0 1 bit de start, 8 bits de données, un bit de stop
1 1 bit de start, 9 bits de données, un bit de stop
5 non utilisé 0
6 T8 Transmit 8 x destiné à recevoir le 9 ème bit de donnée à transmettre lorque le bit M=1
7 R8 Receive 8 x ce bit contient le 9ème bit de donnée reçu lorsqu’un tel format a été selectionné par le bit M (M=1)
Page 38
Ecole Supérieure de Technologie de Meknès Informatique Industrielle
7 6 5 4 3 2 1 0
TIE TCIE RIE ILIE TE RE RWU SBK
0 0 0 0 0 0 0 0 RESET
0 SBK Send Break 0 la SCI fonctionne normalement
1 l’emetteur de la SCI envoie en permanence des breaks(block de 10 ou 11 zéros)
1 RWU Receive Wake Up 0 reveil conforme au choix fait par WAKE de SCCR1
1 le recepteur est mis en sommeil
2 RE Receive Enable 0 le recepteur de la SCI est désactivé ,les bits RDRF, IDLE, OR, NF, FE sont inhibés
1 le recepteur fonctionne normalement
3 TE Transmitter Enable 0 l’emetteur est désactivé, la broche PD1 passe sous contrôle de DDRD1
1 l’emmeteur est activé
4 ILIE Idle Line Interrupt Enable 0 les interruptions causées par le bit IDLE du SCSR ne sont pas autorisées
1 les interruptions causées par le bit IDLE du SCSR sont autorisées
5 RIE Receive Interrupt Enable 0 les interruptions causées par les bits RDRF et OR de SCSR ne sont pas autorisés
1 les interruptions causées par les bits RDRF et OR de SCSR sont autorisés
6 TCIE Transmit Complete 0 les interruptions causées par le bit TC du SCSR ne sont pas autorisées
Interrupt Enable 1 les interruptions causées par le bit TC du SCSR sont autorisées
7 TIE Transmit Interrupt Enable 0 les interruptions causées par le bit TDRE du SCSR ne sont pas autorisées
1 les interruptions causées par le bit TDRE du SCSR sont autorisées
7 6 5 4 3 2 1 0
TCLR - SCP1 SCP0 RCKB SCR2 SCR1 SCR0
0 0 0 0 0 - - - RESET
Page 39
Ecole Supérieure de Technologie de Meknès Informatique Industrielle
0 0 non utilisé 0
1 FE Framing error 0 remis à 0 par une lecture de SCSR suivie d’une lecture de SCDR
1 mis à 1 par un erreur de format (non détection du bit de stop de fin de caractère)
2 NF Noise Flag 0 remis à 0 par une lecture de SCSR suivie d’une lecture de SCDR
1 mis à 1 si du bruit est détecté lors de la réception y compris sur bits de start et stop
3 OR Ove Run error 0 remis à 0 par une lecture de SCSR suivie d’une lecture de SCDR
1 mis à 1 lors du débordement du recepteur
4 IDLE IDLE line detect 0 remis à 0 par une lecture de SCSR suivie d’une lecture de SCDR
1 mis à 1 lorsque la ligne de réception est détectée comme étant au repos
5 RDRF Receive Data Register Full 0 remis à 0 par une lecture de SCSR suivie d’une lecture de SCDR
1 mis à 1 lorsque le registre de réception SCDR est plein et peut donc être lu
6 TC Transmit Complete 0 remis à 0 par une lecture de SCSR suivie d’une lecture de SCDR
1 mis à 1 lorsqu’une émission de donnée est terminée (y compris bit de stop)
7 TDRE Transmit Data Receive 0 remis à 0 par une lecture de SCSR suivie d’une lecture de SCDR
Empty 1 mis à 1 pour indiquer que le registre d’émission SCDR est vide
Page 40
Ecole Supérieure de Technologie de Meknès Informatique Industrielle
choisie
0 CA 0 0 0 0 PE0 ADR1 1 0 0 0 réservé ADR1
ces bits sélectionnent 0 0 0 1 PE1 ADR2 1 0 0 1 réservé ADR2
1 CB l’entrée ou les entrées du 0 0 1 0 PE2 ADR3 1 0 1 0 réservé ADR3
port E qui seront utilisées 0 0 1 1 PE3 ADR4 1 0 1 1 réservé ADR4
2 CC par la conversion 0 1 0 0 PE4 ADR1 1 1 0 0 VRH ADR1
0 1 0 1 PE5 ADR2 1 1 0 1 VRL ADR2
3 CD 0 1 1 0 PE6 ADR3 1 1 1 0 ½ VRH ADR3
0 1 1 1 PE7 ADR4 1 1 1 1 réservé ADR4
4 MULT MULTiple channel 0 le CAN réalise 4 conversions successives sur l’entrée choisie par CA à CD
1 le CAN réalise une conversion sur chaque entrée du groupe choisi par CD et CC
5 SCAN SCAN control 0 les 4 conversions (1 ou 4 entrées suivant MULT) sont réalisées une seule fois
1 les conversions demandées ont lieu en continu et les registres sont actualisés
6 - non utilisé 0
7 CCF Conversion Complete Flag 0 remis à 0 par écriture de ADCTL
1 mis à 1 à la fin des 4 conversions qui ont lieu au moins une fois
Page 41