PRÉSENTATION DU
MICROCONTRÔLEUR ST62E65
1- DESCRIPTION.
Le ST62E65 de chez Thomson est un microcontrôleur 8 bits intégrant un bon
nombre de périphériques lui permettant de réaliser des traitements numériques
assez complexes. Il se présente dans un boîtier CDIP 28 broches.
TEST
INTERRUPTIONS
MÉMOIRE
PROGRAMME
EEPROM
4 KO
PILE NIVEAU 1
PILE NIVEAU 2
PILE NIVEAU 3
PILE NIVEAU 4
PILE NIVEAU 5
PILE NIVEAU 6
PC
C.P.U.
8 BITS
ALIMENTATION OSCILLATEUR RESET
MÉMOIRE DE
DONNÉE
C.A.N.
8 BITS PORT A
PORT B
PORT C
TIMER N°2
AUTORECHAR .
TIMER N°1
S.P.I.
CHIEN DE
GARDE
PA0..PA7 / AIN
PB0..PB5
PB6 / ARTIMIN
PB7 / ARTIMOUT
PC0 / AIN
PC1 / TIM1 / AIN
PC2/ SIN /AIN
PC3 / SOUT / AIN
PC4 / SCK / AIN
T
EST
/
VPP
NMI
V
DD
V
SS
O
SCIN
O
SCOUT
RESET
FENÊTRE EN
EPROM 64 O
RAM
128 OCTETS
EEPROM
128 OCTETS
Il est constitué de :
- Une CPU 8 bits,
- 4 Ko d’EPROM,
- 128 octets de RAM,
- 128 octets d’EEPROM,
- Une pile à 6 niveaux,
- Un convertisseur Analogique Numérique 8 bits à approximation successive,
- Un timer 8 bits,
- Un timer autorechargeable 8 bits,
- Une interface série synchrone,
- 3 ports d’entrées / sorties (2 de 8 bits, 1 de 5 bits),
- Un chien de garde numérique,
- Un circuit de RESET et d’interruption.
2- ESPACE MÉMOIRE.
La taille du bus des données est de 8 bits, celle du bus des adresses est de 12
bits. Les données peuvent donc aller de la valeur 0 à la valeur 255 (FF en
hexadécimal). L’espace adressable est donc de 4 Ko (4096 octets).
ESPACE PROGRAMME
0000h
0FF0h
0FFFh Vecteur de RESET
et d'interruptions
Mémoire
programme
EPROM
ESPACE DONNEE
000h
0C0h
0FFh
Registres des
périphériques
Fenêtre en
EPROM
040h
Pages
RAM / EEPROM
080h Registre X
Registre Y
Registre V
Registre W
084h RAM
Accu. A
0080h RÉSERVÉ
L’espace de données est figé à 256 octets et est complètement séparé de l’espace
adressable de la mémoire programme. Ceci signifie que, mis à part la lecture des
instructions, les opérations de lecture de la mémoire programme se font par
l’intermédiaire d’une “fenêtre” dans la mémoire de donnée (de 040h à 7Fh). La
sélection de la zone d’EPROM accessible via cette fenêtre est définie grâce au
registre DRWR situé à l’adresse 0C9h de l’espace de donnée.
Les adresse de données comprises entre 000h et 040h permettent d’accéder a 2
pages d’EEPROM et une page de RAM (1 page = 64 octets). La sélection de pages
STAGE NOVEMBRE 2000 MICROCONTRÔLEUR ST62E65
PADIOLLEAU JEAN-LUC PAGE B-1
U1
10
12
13
14
15
16
17
18
19
1
2
4
5
6
7
8
9
28
27
26
25
24
20
21
23
22
3
11
PA0/AIN
GND
PA1/AIN
PA2/AIN
PA3/AIN
PA4/AIN
PA5/AIN
PA6/AIN
PA7/AIN
PB0
PB1
PB2
PB3
PB4
PB5
ARTIMIN/PB6
ARTINOUT/PB7
PC0/AIN
PC1/SCK/AIN
PC2/SOUT/AIN
PC3/SIN/AIN
PC4/TIM1/AIN
OSCIN
OSCOUT
NMI
RST
VPP/TEST
VDD
s’effectue par une opération d’écriture dans le registre DRBR situé à l’adresse
0E8h. Voici les codes à placer dans ce registre pour obtenir la page souhaitée :
DéconseilléAutres RAM page210h EEPROM page 102h EEPROM page 001h Aucune00h PAGE SÉLECTIONNÉEDRBR (0E8H)
L’ESPACE MÉMOIRE DE DONNÉE CONTIENT AUSSI LES REGISTRES DE LA CPU.
3- LE MICROPROCESSEUR (CPU).
ACCUMULATEUR
A
REGISTRES
AUXILLIAIRES
V et W
UNITE
ARITHMETIQUE
ET LOGIQUE
INDICATEUR
Z et C
DECODAGE ET SEQUENCEMENT DES INSTRUCTIONS
REGISTRE
D'INDEX
X et Y
PILE
6 NIVEAUX
COMPTEUR
PROGRAMME
Bus des données
Adresses
Programme
Interruptions
et Reset
Horloge
STRUCTURE INTERNE DE LA C.P.U. 8 Bits
Instruction mémoire programme
Adresses
Données
Le microprocesseur du ST6 est constitué d’un décodeur d’instructions, d’un
compteur programme, d’une pile 6 niveaux d’un accumulateur, de 2 registres
auxilliaires, de 2 registres d’index et d’une unité arithmétique et logique (ALU).
ØØ ACCUMULATEUR “A” :
Les calculs arithmétiques et les manipulations de données se font grâce à
l’accumulateurs. Dans la plupart des opérations, une des opérande ainsi que
le résultat sont contenus dans l’accumulateur. Sa taille est de 8 bits.
ØØ REGISTRES AUXILIAIRES : “V” ET “W” :
Ils ont pour rôles de compléter l’accumulateur pour ce qui concerne les
traitements un peu plus complexes. Leur taille est de 8 bits.
ØØ REGISTRES POINTEURS DINDEX : “X” ET “Y” :
Ces deux pointeurs d’utilisation parfaitement identiques sont utilisés dans les
modes d’adressage indexé, afin de positionner une valeur quelconque sur le
bus d’adresses.
Le contenu de ces registres permet de pointer des données. Leur taille est de
8 bits.
Les possibilités de décrémentation et d’incrémentation permettent une gestion
efficace des données rangées sous forme de table.
ØØ REGISTRE COMPTEUR PROGRAMME : PC
Le contenu de ce registre détermine ladresse de linstruction que doit
exécuter le processeur. Il pointe en permanence ladresse de la prochaine
instruction à exécuter. Sa taille est 12 bits.
ØØ REGISTRES DE PILE :
La pile est utilisé par le microprocesseur pour gérer la sauvegarde du
compteur programme pendant lexécution de programmes dinterruptions ou
de sous-programmes. Cette opération permet de récupérer l’adresse d'origine
lorsque le sous programme est terminé.
INDICATEUR: “Z” ET “C”.
Ces indicateurs sont des bits qui ont pour rôles de spécifier certaines
informations en ce qui concerne la dernière opération :
úLe bit “Z” est actif lorsque la dernière opération effectué a pour résultat 0 ;
úLe bit “C” est actif lorsque la dernière opération effectué a engendré un
retenue.
Il existe une paire d’indicateur “Z” et “C” pour les trois modes de
fonctionnement du ST6 :
úMode “NORMAL” ;
úMode “NMI” ;
úMode “INT”.
STAGE NOVEMBRE 2000 MICROCONTRÔLEUR ST62E65
PADIOLLEAU JEAN-LUC PAGE B-2
4- LE RESET ET LES INTERRUPTIONS
Le ST6 possède deux modes dinterruptions matérielles :
úNMI (No Maskable Interrupt) : interruption non - masquable déclenchée
par la broches 23 ;
úIRQ (Interrupt Request) : interruption masquable déclenchée par un des
périphériques intégrés.
Quelque soit la source dinterruption, le ST6265 réalise la séquence suivante :
úle programme principal est interrompu ;
úsauvegarde le contenu du PC dans la pile ;
úexécution d’une séquence spécifique, reflet du type de traitement
dinterruption ;
úla prise en compte dune interruption ne se fait jamais pendant lexécution
d’une instruction.
En ce qui concerne les interruptions masquables, un registre d’option IOR (adresse
0C8h) permet de définir comment s’effectuera la prise en compte des interruptions
requises par les différents périphériques.
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
XLES ESB GEN XXXXIOR (0C8h)
InactivesActives
Active ou désactive les interruptions
masquables
GEN
Front
descendant
Niveau
bas
Détermine si l’interruption requise par les
broches du port C et du SPI est déclenchée
par un niveau bas ou un front descendant
ESB
Font
descendant
Front
montant
Détermine si l’interruption requise par les
broches des ports A et B est déclenchée par
un front descendant ou un front montant
LES
“0”“1”RÔLEBIT
En plus des deux interruptions définies précédemment, le ST6 possède un mode
d’initialisation RESET. Ce mode est activé soit par la broche 22 (active au niveau
bas), soit par le chien de garde (compteur à 0).
Voici les adresses, en fonction de la source, vers lesquelles pointe le PC lors d’une
demande d’interruption ou de RESET.
FFFh XRESET
FFEh
FFDh Vecteur n°0Broche NMI
FFCh
FFBh XRéservé
FFAh
FF9h XRéservé
FF8h
FF7h Vecteur n°1PORTS A et B
FF6h
FF5h Vecteur n°2
PORT C et Interfaface série
synchrone (SPI)
FF4h
FF3h Vecteur n°3
Temporisateur
autorechargeable (AR TIMER)
FF2h
FF1h Vecteur n°4
Temporisateur (TIMER)r et
C.A.N. (ADC)
FF0h
N° DU VECTEUR
D’INTERRUPTION
SOURCE D’INTERRUPTIONADRESSES
Dans les 2 octets de mémoire programme associés à chaque interruption et au
RESET, on place une instruction de saut vers la procédure relative au traitement de
la requête.
5- LE JEU DINSTRUCTION DU ST6.
Le jeu d’instructions du ST6 est très performant malgré que le nombre
d’instructions soit limité . Il permet plusieurs modes d’adressages qui seront
détaillés par la suite. Dans la réalité chaque instruction correspond à un ou
plusieurs octets stockés dans la mémoire programme mais l’écriture de
programmes utilisant ces instructions se fait en langage assembleur, plus
compréhensible par l’homme.
Chaque instruction répond au modèle suivant :
LDI A,0FFh
Code opération
Opérandes
Langage machine
Langage assembleur
17 FF
Code opération
Opérandes
Adresse
08E1 LABEL
STAGE NOVEMBRE 2000 MICROCONTRÔLEUR ST62E65
PADIOLLEAU JEAN-LUC PAGE B-3
ØØ Instructions de transfert des données.
Ces instructions permettent le chargement et la sauvegarde des registres
internes du microprocesseur.
Chargement des registres du microcontrôleurLD FONCTIONINSTRUCTION
ØØ Les instructions arithmétiques.
Les instructions suivantes permettent les fonctions arithmétiques classiques.
Soustraction du contenu mémoire à l’accumulateurSUB Addition du contenu mémoire à l’accumulateurADD FONCTIONINSTRUCTION
ØØ Les instructions de rotations et décalage
La rotation ou le décalage permettent de décaler, vers la gauche un mot
binaire, bit à bit.
Décalage à gauche de l’accumulateur SLA Rotation à gauche des bits d’une mémoire avec affectation “C”RLC FONCTIONINSTRUCTION
ØØ Les instructions logiques
Il s’agit seulement des opérations logiques “ET” et “NON”.
Complément logique du contenu mémoire ou de l’accumulateurCOM “ET LOGIQUE ” entre mémoire et registre interneAND FONCTIONINSTRUCTION
ØØ Instruction de comparaison
Cette instruction est utilisée pour réaliser des comparaisons. A lissue de ces
opérations les indicateurs “Z” et “C” sont positionnés.
Comparaison du contenu d’une mémoire avec l’accumulateurCP FONCTIONINSTRUCTION
ØØ Les instructions d’incrémentation / décrémentation et de mise à 0.
Ces instructions ont la particularité de nagir que sur une seule opérande.
Incrémentation du contenu mémoire ou de l’accumulateurINC Décrémentation du contenu mémoire ou de l’accumulateurDEC Remise à zéro du contenu mémoire ou de l’accumulateurCLR FONCTIONINSTRUCTION
Pas d’opérationNOP
ØØ Instructions de tests et de branchements conditionnels.
Ces instructions permettent de réaliser des branchements conditionnels, à
partir de tests effectués sur les indicateurs ou le bit d’une mémoire. Le
branchement correspond à un décalage dune quantité défini dans le
programme, et ce depuis la position de linstruction en cours. Ce décalage
peut être positif ou négatif, codé sur 3 bits (on parlera de branchement court)
ou sur 5 bits (branchement long).
Branchement si le bit de rang “b” d’une mémoire n’est pas à 1JRRBranchement si le bit de rang “b” d’une mémoire est à 1JRSBranchement si le bit “Z” de zéro n’est pas à 1JRNZBranchement si le bit “C” de retenue n’est pas à 1JRNC Branchement si le bit “Z” de zéro est à 1JRZBranchement si le bit “C” de retenue est à 1JRC FONCTIONINSTRUCTION
ØØ Instructions de saut inconditionnels et d’appel de sous programmes.
Les instructions suivantes entraînent des ruptures de séquence, sans
conditions préalables. Il faut néanmoins distinguer les instructions de saut qui
n’affectent en rien la pile, aux instructions propres aux sous programmes qui
affectent la pile (Sauvegarde du PC).
Retour de sous - programme de traitement d’interruptionRETI Retour de sous - programmeRET Appel du sous - programme indiquéCALL Saut à l’adresse indiqué. (Le PC prend la valeur indiqué)JPFONCTIONINSTRUCTION
ØØ Les instructon de positonnement de bits
Il s’agit de positionner à “0” ou à “1” le bit du rang et du registre spécifiés.
Positionne à “0” le bit du rang et du registre spécifiés.RES Positionne à “1” le bit du rang et du registre spécifiés.SET FONCTIONINSTRUCTION
Voir document sur le jeu d’instructions du ST6.
STAGE NOVEMBRE 2000 MICROCONTRÔLEUR ST62E65
PADIOLLEAU JEAN-LUC PAGE B-4
6- LES MODES DADRESSAGES DU ST6.
Les modes d’adressages sont les différents moyens permettant d’accéder à une
opérande en vue de tester ou de modifier le contenu d’un registre ou d’une
mémoire.
ØØ Mode dadressage inhérent ou implicite.
Ladressage inhérent concerne les instructions qui ne comportent pas
d’opérande, cette dernière étant implicite. Un telle instruction est codée sur 1
octet.
Exemple : DEC A soustrait 1 à laccumulateur.
ØØ Mode dadressage immédiat.
Dans ce mode dadressage, le code opératoire 8 bits est directement suivi de
la valeur prise en compte par l’instruction. Ce type dadressage permet de
charger les registres internes du microprocesseur avec la valeur de
l’opérande. La lettre “i” signifie immédiat dans la syntaxe assembleur.
Exemple : LDI A,43 Charge l’accumulateur avec la valeur décimal 43.
ØØ Mode dadressage direct.
Ce mode dadressage nécessite 2 octets pour avoir accès à lensemble de
l’espace mémoire de donnée du microprocesseur. Le premier octet définit le
code opératoire, le second représente les huit bits de ladresses.
Exemple : ADD A,43h additionne l’accumulateur avec le contenu de
la mémoire ayant l’adresse hexadécimal 43.
ØØ Mode dadressage direct court.
Ce mode dadressage ne nécessite qu’un octet mais ne permet que
d’accéder aux registres X, Y, V et W ayant respectivement les adresses 80h,
81h, 82h et 83h hexadécimales.
Exemple : DEC Y soustrait 1 au contenu du registre Y.
ØØ Mode dadressage étendu..
Ce mode d’adressage est destiné à adresser la mémoire programme dans
sa globalité. Il ne s’adresse qu’aux instructions de saut ou d'appel de sous -
programme. Il nécessite 2 octets : 4 bits pour le code instruction et 12 bits
pour l’adresse.
Exemple : JP 0C2A Charge le compteur programme avec l’adresse
hexadécimale 0C2A afin de faire un saut.
ØØ Mode dadressage relatif court.
Ce mode dadressage est réservé pour les instructions de branchement
conditionnel. Linstruction de branchement opérant en adressage relatif court
fait appel à un format de un octets seulement. Les 3 derniers bits détermine
le code opératoire qui spécifie le type de branchement en même temps que
le test correspondant. Les 7 premiers bits spécifie la valeur du déplacement
qui peut être positif ou négatif (de -16 à +15 par rapport à la valeur du PC à
la fin du traitement de linstruction).
Exemple : JRZ -12 Effectue un branchement de 12 octets en arrière
dans la mémoire programme si le bit indicateur “Z” est à 1.
ØØ Mode d’adressage relatif long
Ce mode dadressage est toujours réservé aux 2 opérations de test avec
branchement conditionnel (JRS et JRR). Ces instructions sont codées sur 3
octets, le premier détermine le code opératoire ainsi que le n° du bit à tester,
le 2e spécifie la mémoire à tester et le 3e octet donne la valeur signée du
déplacement (de -128 à +127).
Exemple : JRS 3,A,+9 Effectue un branchement de 9 octets en avant
dans la mémoire programme si le bit de rang 3 de l’accumulateur est à
1.
ØØ Mode dadressage indexé ou indirect.
Ce mode d’adressage s’applique aux registres d’index X et Y. Ces derniers
contiennent une adresse mémoire dans laquelle est placée l’opérande.
Une telle instruction est codée sur 1 octet : le premier bit spécifie le registre
d’index, les 7 derniers le code de lopération. On peut accéder en un temps
record à une suite de donnée placée en mémoire.
Exemple : ADD A,(X) Additionne à l’accumulateur le contenu de
l'adresse pointée par X.
7- EDITION ET ASSEMBLAGE DUN PROGRAMME.
La saisie d’un programme (en assembleur) se fait grâce à éditeur de texte ayant de
préférence une indication ligne colonne et l’auto-indentation. On peut utiliser celui
du MS-DOS : EDIT.COM. L’enregistrement se fait généralement avec l’extension
“.asm” ou “.st6”.
STAGE NOVEMBRE 2000 MICROCONTRÔLEUR ST62E65
PADIOLLEAU JEAN-LUC PAGE B-5
1 / 7 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !