MVME162lx

une carte MVME162LX de MOTOROLA

base des kits 68040



 

 

 
 
 
 

Nous avons 3 modèles de cartes MVME162LX:


Mapping mémoire

Présentation des principaux contrôleurs

Registre ID et le registre de Révision

Registe de contrôle général

BIT
15
14
13
12
11
10
9
8
NOM
           
MIEN
FAST
OPÉRATION
R
R
R
R
R
R
R/W
R/W
APRÈS UN RESET
0
0
0
0
0
0
0
0
Ce registre est utilise pour envoyer un numéro de vecteur vers le MC68xx040 pendant les cycles de reconnaissance d'interruption. Seul les bits 7 à 4 sont modifiables. Les bits 0-3 sont toujours lus a 0. Le moniteur 162bug initialise ce registre a la valeur $50.
 
BIT
7
6
5
4
3
2
1
0
NOM
IV7 
 IV6
 IV5
IV4
 IV3
 IV2
IV1
IV0
OPÉRATION
R/W
R/W
R/W
R/W
R=0
R=0
R=0
R=0
APRÈS UN RESET
0
0
0
0
1
1
1
1

 
 
 
 
 
 
 
 
 
 
 

Les 4 autres bits IV0-IV3 sont utilisés pour encoder l'origine de l'interruption comme le montre le tableau suivant:
 
Source de l'Interruption
IV3-IV0 
Priorité
vecteur non utilise
$0 $1 $2
 ....
Timer 4
$3
inférieure

       .

       .

       .

       .

       .

       .

       .

.

.

.

.

.

Supérieure

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
...

Note1: Le controleur Z85230 possede un registre de vecteur d'interruption qui n'a rien a voir avec celui du MCchip. Lors d'une reconnaisance d'interruption, le vecteur renvoyer est celui contenu dans le registe de vecteur du Z85230 et non celui du MCchip. De plus comme la carte possede deux Z85230, le premier est prioritaire sur le second.

Programmer les Timers

Le MCchip possède 4 timers programmables.

Les registres Tick Timer Counter

Ce sont des registres de 32 bits qui sont incrémentes chaque fois qu'apparaît un Tick d'horloge si le timer correspondent est activé.
Les opérations permises sont la lecture et l'écriture. Un RESET ne modifie pas les bits de ces registres. Quand vous programmez un timer pour générer une interruption périodique, le Tick Timer Counter devra être mis 'a zéro par logiciel. Sinon l'apparition de la première interruption ne serra pas déterminée: soit au plus-tard dans 71,6 minutes !

Les registres Tick Compare
Ce sont des registres de 32 bits. les opérations permises sont la lecture et l'écriture. Un RESET remet a zéro les bits de ces registres. La valeur du Tick Timer Counter est compare au Tick Compare. Lorsqu'ils sont égaux, 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 à zéro.

Le Registre Prescaler Clock Adjust Register

Ce registre de 8 bits permet de programmer la fréquence d'apparition des Ticks des 4 timers suivant l'équation suivante:

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

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

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

Les registres de contrôle des timers

Chaque timer a un registre de contrôle:
NOM
OV3
OVF2
OVF1
OVF0
 
COVF
COC
CEN
OPÉRATION
R
R
R
R
R
C
R/W
R/W
APRÈS UN RESET
0
0
0
0
0
0
0
0
 
CEN    quand ce bit vaut 1, le registre de comptage est incrémente tous les Ticks (le timer fonctionne); quand ce bit vaut 0, le registre de comptage n'est pas incrémenté (le timer est arrête).
COC    quand ce bit vaut 1, le registre de comptage est remis a zéro quand il atteint la valeur du registre de comparaison ; si ce bit vaut 0, le registre de comptage continue à être incrémenté après avoir atteint la valeur du registre de comparaison.
COVF  le compteur d'overflow est remis a 0 chaque fois que l'on écrit un 1 dans ce bit.
OVFL   Ces bits constituent le compteur d'overflow. Il est incrémenté chaque fois ou le timer génère une interruption.

Les registre de contrôle d'interruption des Timers

NOM
 
 
 INT
 IEN
ICLR
 IL2
IL1
IL0
OPÉRATION
 R
 R
R
R/W
C
R/W
R/W
R/W
APRÈS 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énère pas d'interruption.
ICLR        Écrire 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 à été généré. Ce bit passe 'a 0 en écrivant un 1 dans le bit ICLR.
 

ABORT Switch Interrupt Control Register $FFF42043;b

La table suivante decrit le role des bits du registre de controle du poussoir ABORT:
 
BIT
7
6
5
4
3
2
1
0
NOM
 
ABS
INT
IEN
ICLR
IL2
IL1
IL0
OPÉRATION
R
R
R
R/W
C
R/W
R/W
R/W
RESET
0
0 PL
0 PL
0 PL
0 PL 
0 PL
0 PL
0 PL

ABS          Etat du poussoir ABORT: Il vaut 1 lorque le poussoir est presse, 0 s'il n'est pas presse.
INT           Ce bit vaut 1 lorsqu'une interruption a ete genere par le poussoir ABORT.
IEN           Il faut mettre a 1 ce bit pour activer l'interruption du poussoir ABORT.
ICLR        Il faut ecrire 1 dans ce bit pour acquitter l'interruption du poussoir ABORT (raz du bit INT).
IL2-IL0    Ces 3 bits codent le niveau d'interruption provoque par le poussoir ABORT. Le niveau 0 ne genere pas d'interruption.

Lors de la reconnaissance d'interruption du poussoir ABORT, le vecteur renvoyer est par defaut celui place par le moniteur 162bug soit la valeur $50 + $E = $5E (Registre de base des vecteurs d'interruptions).


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 présentes sur le bus VME du rack. Il possède 36 registres de 32 bits. Heureusement nous allons utiliser un cas particulier et simple de sa programmation. Le chapitre 2 du manuel MVME162 Embedded Controller Programmer's Guide  d''etaille les moindres bits de ce circuit disponible en 5205.
Nous allons donc aborder le cas de figure type des TP IN201. Il s'agit de communiquer (lire/ecrire) via le VMEbus entre une carte maître MVME162lx et une carte esclave d'entrée/sortie (qui permet le contrôle/commande des robots Fischers):