PRÉSENTATION DU MICROCONTRÔLEUR ST62E65

publicité
STAGE NOVEMBRE 2000
MICROCONTRÔLEUR ST62E65
- 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.
PRÉSENTATION DU
MICROCONTRÔLEUR ST62E65
2- ESPACE MÉMOIRE.
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 /
VPP
NMI
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
TEST
I NTERRUPTIONS
C. A.N.
8
P ORT A
BITS
0000h
DONNÉE
MÉMOIRE
PROGRAMME
EEPROM
4 KO
FENÊTRE EN
EPROM 64 O
P ORT C
RAM
128 OCTETS
TIMER N°2
A UTORECHAR .
EEPROM
128 OCTETS
TIMER N°1
0080h
PC0 / A IN
PC1 / TIM1 / A IN
PC2/ S IN /AIN
PC3 / S OUT / A IN
PC4 / S CK / AIN
23
22
3
PC
1
NIVEAU 2
NIVEAU 3
NIVEAU 4
NIVEAU 5
NIVEAU 6
PILE
PILE
PILE
PILE
PILE
C.P.U.
8 BITS
ALIMENTATION
VDD
VSS
DE
GARDE
OSCILLATEUR
O SCIN
O SCOUT
11
RESET
RESET
OSCIN
OSCOUT
NMI
RST
VPP/TEST
VDD
PA0/AIN
PA1/AIN
PA2/AIN
PA3/AIN
PA4/AIN
PA5/AIN
PA6/AIN
PA7/AIN
PB0
PB1
PB2
PB3
PB4
PB5
ARTIMIN/PB6
ARTINOUT/PB7
10
13
14
15
16
17
18
19
1
2
4
5
6
7
8
9
28
PC0/AIN
Il est constitué de :
27
PC1/SCK/AIN
26
PC2/SOUT/AIN
- Une CPU 8 bits,
25
PC3/SIN/AIN
12
24
- 4 Ko d’EPROM,
GND
PC4/TIM1/AIN
- 128 octets de RAM,
ST62E65B
- 128 octets d’EEPROM,
- Une pile à 6 niveaux,
- Un convertisseur Analogique Numérique 8 bits à approximation successive,
- Un timer 8 bits,
PADIOLLEAU JEAN-LUC
080h
U1
S.P.I.
PILE NIVEAU
040h
Mémoire
programme
EPROM
20
21
CHIEN
000h
RÉSERVÉ
PB0..PB5
PB6 / ARTIM IN
PB7 / ARTIM OUT
P ORT B
MÉMOIRE DE
ESPACE DONNEE
PA0..PA7 / A IN
Pages
RAM / EEPROM
Fenêtre en
EPROM
Registre X
Registre Y
Registre V
Registre W
084h
RAM
0C0h
0FF0h
0FFFh
Vecteur de RESET
et d'interruptions
0FFh
Registres des
périphériques
Accu. A
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
PAGE B-1
STAGE NOVEMBRE 2000
MICROCONTRÔLEUR ST62E65
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 :
DRBR (0E8H)
00h
01h
02h
10h
Autres
PAGE SÉLECTIONNÉE
Aucune
EEPROM page 0
EEPROM page 1
RAM
page2
Déconseillé
Ø 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 D’INDEX : “X” ET “Y” :
L’ESPACE MÉMOIRE DE DONNÉE CONTIENT AUSSI LES REGISTRES DE LA CPU.
3- LE MICROPROCESSEUR (CPU).
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.
STRUCTURE INTERNE DE LA C.P.U. 8 Bits
Bus des données
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.
Les possibilités de décrémentation et d’incrémentation permettent une gestion
efficace des données rangées sous forme de table.
Instruction m ém oire program m e
Ø REGISTRE COMPTEUR PROGRAMME : PC
REGIS TRES
AUX IL L IAIRES
V et W
ACCUM UL AT EUR
A
REG IS T RE
D'INDEX
X et Y
Le contenu de ce registre détermine l’adresse de l’instruction que doit
exécuter le processeur. Il pointe en permanence l’adresse de la prochaine
instruction à exécuter. Sa taille est 12 bits.
Ø REGISTRES DE PILE :
INDICAT EUR
Z et C
La pile est utilisé par le microprocesseur pour gérer la sauvegarde du
compteur programme pendant l’exécution de programmes d’interruptions ou
de sous-programmes. Cette opération permet de récupérer l’adresse d'origine
lorsque le sous programme est terminé.
UNITE
ARIT HM ET IQUE
ET L OGIQUE
INDICATEUR: “Z” ET “C”.
DECODAGE ET S EQUENCEM ENT DES INS T RUCTIONS
P IL E
6 NIV EAUX
CO M P T EUR
P ROGRAM M E
Horloge
Interruptions
et Reset
Adresses
Program m e
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” :
PADIOLLEAU JEAN-LUC
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”.
PAGE B-2
STAGE NOVEMBRE 2000
MICROCONTRÔLEUR ST62E65
4- LE RESET ET LES INTERRUPTIONS
Le ST6 possède deux modes d’interruptions 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 d’interruption, 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
d’interruption ;
ú la prise en compte d’une interruption ne se fait jamais pendant l’exé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
LES
ESB
GEN
X
LES ESB GEN
X
X
RÔLE
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
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
Active ou désactive les interruptions
masquables
X
X
“1”
“0”
Front
montant
Font
descendant
Niveau
bas
Front
descendant
Actives
Inactives
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.
PADIOLLEAU JEAN-LUC
SOURCE D’INTERRUPTION
FF0h
FF1h
FF2h
FF3h
FF4h
FF5h
FF6h
FF7h
FF8h
FF9h
FFAh
FFBh
FFCh
FFDh
FFEh
FFFh
Temporisateur (TIMER)r et
C.A.N. (ADC)
Temporisateur
autorechargeable (AR TIMER)
PORT C et Interfaface série
synchrone (SPI)
N° DU VECTEUR
D’INTERRUPTION
Vecteur n°4
Vecteur n°3
Vecteur n°2
PORTS A et B
Vecteur n°1
Réservé
X
Réservé
X
Broche NMI
Vecteur n°0
RESET
X
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.
Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
IOR (0C8h)
ADRESSES
5- LE JEU D’INSTRUCTION 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 :
Langage machine
08E1 17 FF
Langage assembleur
LABEL LDI A,0FFh
Opérandes
Code opération
Adresse
Opérandes
Code opération
PAGE B-3
STAGE NOVEMBRE 2000
Ø Instructions de transfert des données.
Ces instructions permettent le chargement et la sauvegarde des registres
internes du microprocesseur.
INSTRUCTION
FONCTION
LD
Chargement des registres du microcontrôleur
Ø Les instructions arithmétiques.
Les instructions suivantes permettent les fonctions arithmétiques classiques.
INSTRUCTION
FONCTION
ADD
Addition du contenu mémoire à l’accumulateur
SUB
Soustraction du contenu mémoire à l’accumulateur
Ø 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.
INSTRUCTION
FONCTION
RLC
Rotation à gauche des bits d’une mémoire avec affectation “C”
SLA
Décalage à gauche de l’accumulateur
Ø Les instructions logiques
Il s’agit seulement des opérations logiques “ET” et “NON”.
INSTRUCTION
FONCTION
AND
“ET LOGIQUE ” entre mémoire et registre interne
COM
Complément logique du contenu mémoire ou de l’accumulateur
Ø Instruction de comparaison
Cette instruction est utilisée pour réaliser des comparaisons. A l’issue de ces
opérations les indicateurs “Z” et “C” sont positionnés.
INSTRUCTION
FONCTION
CP
Comparaison du contenu d’une mémoire avec l’accumulateur
Ø Les instructions d’incrémentation / décrémentation et de mise à 0.
Ces instructions ont la particularité de n’agir que sur une seule opérande.
INSTRUCTION
FONCTION
CLR
Remise à zéro du contenu mémoire ou de l’accumulateur
DEC
Décrémentation du contenu mémoire ou de l’accumulateur
INC
Incrémentation du contenu mémoire ou de l’accumulateur
PADIOLLEAU JEAN-LUC
MICROCONTRÔLEUR ST62E65
NOP
Pas d’opération
Ø 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 d’une quantité défini dans le
programme, et ce depuis la position de l’instruction 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).
INSTRUCTION
JRC
JRZ
JRNC
JRNZ
JRS
JRR
FONCTION
Branchement si le bit “C” de retenue est à 1
Branchement si le bit “Z” de zéro est à 1
Branchement si le bit “C” de retenue n’est pas à 1
Branchement si le bit “Z” de zéro n’est pas à 1
Branchement si le bit de rang “b” d’une mémoire est à 1
Branchement si le bit de rang “b” d’une mémoire n’est pas à 1
Ø 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).
INSTRUCTION
JP
CALL
RET
RETI
FONCTION
Saut à l’adresse indiqué. (Le PC prend la valeur indiqué)
Appel du sous - programme indiqué
Retour de sous - programme
Retour de sous - programme de traitement d’interruption
Ø Les instructon de positonnement de bits
Il s’agit de positionner à “0” ou à “1” le bit du rang et du registre spécifiés.
INSTRUCTION
FONCTION
SET
Positionne à “1” le bit du rang et du registre spécifiés.
RES
Positionne à “0” le bit du rang et du registre spécifiés.
Voir document sur le jeu d’instructions du ST6.
PAGE B-4
STAGE NOVEMBRE 2000
6- LES MODES D’ADRESSAGES 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 d’adressage inhérent ou implicite.
L’adressage 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 à l’accumulateur.
Ø Mode d’adressage immédiat.
Dans ce mode d’adressage, le code opératoire 8 bits est directement suivi de
la valeur prise en compte par l’instruction. Ce type d’adressage 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 d’adressage direct.
Ce mode d’adressage nécessite 2 octets pour avoir accès à l’ensemble 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 l’adresses.
Exemple : ADD A,43h → additionne l’accumulateur avec le contenu de
la mémoire ayant l’adresse hexadécimal 43.
Ø Mode d’adressage direct court.
Ce mode d’adressage 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 d’adressage é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.
PADIOLLEAU JEAN-LUC
MICROCONTRÔLEUR ST62E65
Ø Mode d’adressage relatif court.
Ce mode d’adressage est réservé pour les instructions de branchement
conditionnel. L’instruction 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 l’instruction).
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 d’adressage 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 d’adressage 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 l’opération. On peut accéder en un temps
record à une suite de donnée placée en mémoire.
ADD A,(X) → Additionne à l’accumulateur le contenu de
Exemple :
l'adresse pointée par X.
7- EDITION ET ASSEMBLAGE D’UN 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”.
PAGE B-5
STAGE NOVEMBRE 2000
MICROCONTRÔLEUR ST62E65
SGS Thomson fournit gratuitement un logiciel d’assemblage fonctionnant sous
DOS “AST6.EXE”. La ligne de commande à saisir est :
AST6 Nom_de_Fichier.asm -L -S
L’option -L permet de généré un fichier listing et l’option -S permet de fournir un
fichier de symboles définissant les équivalences d’adresses des registres.
La notation des nombres (codé sur 8 bits pour les données et 12 bits pour les
adresses) peut se faire en binaire (b), en hexadécimal (h) ou en décimal.
Exemple : 110 en décimal s’écrit 110 en base 10, 6Eh en hexadécimal et
01101110b en binaire.
L’écriture de programme est constituée d’instructions supplémentaires appelées
“directives d’assemblages” servant à faciliter l’utilisation du langages assembleur
mais n’ayant aucune traduction en langage machine. Les directives d’assemblages
sont décalées d’au moins un espace du bord gauche de la zone d’édition et sont
précédées d’un point. Celles les plus couramment employées sont les suivantes :
DIRECTIVE
.TITLE
.VERS
.ROMSIZE
.INPUT
.EQU
.DEF
.ORG
.BYTE
.WORD
.ASCII
DÉSIGNATION
Indique le titre du projet de programmation
Indique la version du ST6 utilisé
Indique la taille de la mémoire programme en Ko
Permet d’inclure un autre fichier assembleur
Permet de définr une variable
Permet de définir une constante
Permet d’indiquer l’adresse de l’instruction suivante
Permet de placer une suite d’octets en mémoire EPROM
Permet de plcaer un suite de mots de 16 bits en EPROM
Permet de placer une suite symboles ascii en EPROM
8- CARACTÉRISTIQUES ÉLECTRIQUES.
Paramètre
Tension d’alimentation
Fréquence de l’oscillateur
Tension de programmation de
l’EPROM
Température de fonctionnement
PADIOLLEAU JEAN-LUC
Symb.
Min
Valeur
Typ.
3
5
VDD
Fosc
0
VPP
-
-
TA
-40
-
Max
6
8
Unité
V
MHz
V
85
°C
Largeur d’impulsion du Reset
Cycles écriture / effacement
EEPROM
Durée d’effacement de l’EPROM
aux UV
Puissance d’effacement aux UV
TWR
100
-
-
300 000
-
-
15
-
-
12 000
-
-
ns
Cycles
20
mn
µW/cm 2
9- REGISTRES DES PÉRIPHÉRIQUES.
ADRESSE
0C0h
0C1h
0C2h
0C4h
0C5h
0C6h
0C8h*
0C9h
0CAh et 0CBh
0CCh
0CDh
0CEh
0D0h
0D1h
0D2h
0D3h
0D4h
0D5h
0D6h
0D7h
0D8h
0D9h
0DAh
0DBh
0DCh*
0DDh
0DEh et 0DFh
0E0h
NOM
DRA
DRB
DRC
DDRA
DDRB
DDRC
IOR
DRWR
ORA
ORB
ORC
ADR
ADCR
PSC
TCR
TSCR
ARMC
ARSC0
ARSC1
WDR
ARRC
ARCP
ARLR
OSCR
MISCR
SPIDSR
DESCRIPTION
Registre de donnée du port A
Registre de donnée du port B
Registre de donnée du port C
Registre de direction du port A
Registre de direction du port B
Registre de direction du port C
Registre d’option des interruptions masquables
Registre de fenêtre de donnée en EPROM
Réservés
Registre d’option du port A
Registre d’option du port B
Registre d’option du port C
Registre de donnée du CAN
Registre de contrôle du CAN
Registre de prédivision du Timer
Registre de comptage du Timer
Registre de contrôle et de status du Timer
Registre de mode du AR Timer
Registre n°0 de contrôle et de status du AR Timer
Registre n°1 de contrôle et de status du AR Timer
Registre du chien de garde
Registre de capture / rechargement du AR Timer
Registre de comparaison du AR Timer
Registre de chargement du ARTimer
Registre de contrôle de l’oscillateur
Registre de contrôle varié
Réservés
Registre de donnée du SPI
PAGE B-6
STAGE NOVEMBRE 2000
0E1h
0E2h
0E3h à 0E7h
0E8h*
0EAh
0EBh à 0FEh
SPIDIV
SPIMOD
DRBR
EECTL
MICROCONTRÔLEUR ST62E65
Registre de division du SPI
Registre de contrôle et de mode du SPI
Réservés
Registre de sélection de pages RAM / EEPROM
Registre de contrôle de l’EEPROM
Réservé
* Accessible uniquement en lecture
PADIOLLEAU JEAN-LUC
PAGE B-7
Téléchargement