Laboratoire Architecture et Systèmes

MVME162lx

Les cartes MVME162LX de MOTOROLA






Registre ID et le registre de Revision

 
BIT
7
6
5
4
3
2
1
0
NOM
IV7 
 IV6
 IV5
IV4
 IV3
 IV2
IV1
IV0
OPERATION
R/W
R/W
R/W
R/W
R
R
R
R
APRES UN RESET
0
0
0
0
1
1
1
1
Ce registre est utilise pour envoyer un numero de vecteur vers le MC68xx040 pendant les cycles  de reconnaissance d'interruption. Seul les bits 7 'a 4 sont modifiables. Les 4 autres bits sont utilises pour encoder l'origine de l'interruption comme le montre le tableau suivant:
Source de l'Interruption
IV3-IV0
Prioritee
vecteur non utilise
$0    $1   $2
 ....
Timer 4
$3
inferieure
 .
.
.
.
.
.
.
.
.
.
.
.
.
.
Superieure
Timer 3
$4
 
SCSI IRQ
$5
 
LANC ERR
$6
 
LANC IRQ
$7
 
Timer 2
$8
 
Timer 1
$9
 
vecteur non utilise
$A
 
Paity Error
$B
 
vecteur non utilise
$C   $D
 
Serial I/O (Z85230)
Note 1
 
ABORT Switch
$E
 
vecteur non utilise
$F
...

Programmer les Timers

Le MCchip possede 4 timers programmables.

Les registres Tick Timer Counter

Ce sont des registres de 32 bits qui sont incr'ement'es chaque fois qu'apparait un Tick d'horloge si le timer correspondent est active'.
Les operations permises sont la lecture et l'ecriture. Un RESET ne modifie pas les bits de ces registres. Quand vous programmez un timer
pour g'en'erer une interruption p'eriodique, le Tick Timer Counter devra etre mis 'a zero par logiciel. Sinon l'apparition de la premiere
interruption ne serra pas determin'ee: soit au plus-tard dans 71,6 minutes !

Les registres Tick Compare
Ce sont des registres de 32 bits. les operations permises sont la lecture et l'ecriture. Un RESET remet a zero les bits de ces registres.
La valeur du Tick Timer Counter est compare au Tick Compare. Lorsqu'ils sont egaux, une interruption est envoyer vers le bus local
et le counter d'overflow est incremente. Si le mode clear on compare est valide, le Tick Timer Counter est remis 'a zero.

Le Registre Prescaler Clock Adjust Register

Ce registre de 8 bits permet de programmer la frequence d'apparition des Ticks des 4 timers suivant l'equation suivante:

               Tick clock  MHz   =   processor clock  MHz  /   (256 - precaler value)

Remarque: la valeur $FF n'est pas permise, la fr'equence maximum pour les Ticks timers est donc la fr'equences du processeur divise par deux.
Par exemple si l'on veut un Tick `a 1 MHz, l'equation devient:

                           Prescaler value = 256  -  (processor clock  /  Tick Clock)
                           Prescaler value = 256  -  25MHz
                           Prescaler value = $E7
 

Les registres de contr^ole des timers

Chaque timer a un registre de contr^ole:
NOM
OV3
OVF2
OVF1
OVF0
 
COVF
COC
CEN
OPERATION
R
R
R
R
R
C
R/W
R/W
APRES UN RESET
0
0
0
0
0
0
0
0
 
CEN    quand ce bit vaut 1, le registre de comptage est incr'ement'e tous les Ticks (le timer fonctionne); quand ce bit vaut 0, le registre de
             comptage n'est pas incr'ement'e (le timer est arr'et'e).
COC    quand ce bit vaut 1, le registre de comtage est remis a z'ero quand il atteint la valeur du registre de comparaison ; si ce bit vaut 0,
 le registre de comtage continue 'a ^etre incr'ement'e apre`es avoir atteint la valeur du registre de comparaison.
COVF  le compteur d'overflow est remis a 0 chaque fois que l'on e'crit un 1 dans ce bit.
OVFL   Ces bits constituent le compteur d'overflow. Il est incr'ement'e chaque fois ou le timer g'en'ere une interruption.

Les registre de contr^ole d'interruption des Timers

NOM
 
 
 INT
 IEN
ICLR
 IL2
IL1
IL0
OPERATION
 R
 R
R
R/W
C
R/W
R/W
R/W
APRES UN RESET
0
0
0
0
0
0
0
0
 
IL2 - IL0   Ces 3 bits code le niveau d'interruption compatible avec la famille 680000. Le niveau 0 ne g'en'ere pas d'interruption.
ICLR         Ecrire un 1 dans ce bit met 'a 0 le bit INT.
IEN          La mise 'a 1 de ce bit, valide les interruptions. Sa mise a 0 invalide les interruptions.
INT          Quand ce bit vaut 1, c'est qu'une interruption 'a ete g'en'er'e. Ce bit passe 'a 0 en ecrivant un 1 dans le bit ICLR.

Le VMEchip2

Le VMEchip2 est un ASIC qui permet d'interfacer le bus interne de la carte MVME162LX avec le bus externe VME. Donc de pouvoir communiquer avec toutes autres cartes presentes sur le bus VME du rack. Il possede 36 registres de 32 bits: pffff bonsoir la programmation ! Heureusement nous
allons utiliser un cas particulier et simple de sa programmation (ouf !).  Le chapitre 2 du manuel MVME162 Embedded Controller Programmer's Guide  d''etaille les moindres bits de ce circuit.
Nous allons donc aborder le cas de figure des TP IMIPRO. Il s'agit de communiquer (lire/ecrire) via le VMEbus entre une carte maitre MVME162lx et une carte exclave d'entree/sortie (qui permet le controle/commande des robots Fischers):