Retour Accueil A2SI680X0 Description et utilisation
	des kits 68000/68010

La Programmation du 68230 dans le mode 0 sous-mode 1X.








Sommaire












Adressage des registres du 68230:


  Register 
   Select
    Bits
5 4 3 2 1      7      6      5       4       3       2       1       0   
-------------------------------------------------------------------------
         |   Port Mode   |  H34  |  H12  |   H4  |   H3  |   H2  |   H1  | Port General
0 0 0 0 0|               |       |       |       |       |       |       |
         |    Control    | Enable| Enable| Sense | Sense | Sense | Sense | Control Register
          --------------------------------------------------------------- -------------------
         |       |    SVCRQ      |    Operation  |     Port Interrupt    |  Port Service
0 0 0 0 1|   *   |               |               |                       |
         |       |    Select     |     Select    |    Priority Control   |  Request Register
          --------------------------------------------------------------- -------------------
         |  Bit  |  Bit  |  Bit  |  Bit  |  Bit  |  Bit  |  Bit  |  Bit  |  Port A Data
0 0 0 1 0|       |       |       |       |       |       |       |       |
         |   7   |   6   |   5   |   4   |   3   |   2   |   1   |   0   |  Direction Register
          --------------------------------------------------------------- -------------------
         |  Bit  |  Bit  |  Bit  |  Bit  |  Bit  |  Bit  |  Bit  |  Bit  |  Port B Data
0 0 0 1 1|       |       |       |       |       |       |       |       |
         |   7   |   6   |   5   |   4   |   3   |   2   |   1   |   0   |  Direction Register
          --------------------------------------------------------------- -------------------
         |  Bit  |  Bit  |  Bit  |  Bit  |  Bit  |  Bit  |  Bit  |  Bit  |  Port C Data
0 0 1 0 0|       |       |       |       |       |       |       |       |
         |   7   |   6   |   5   |   4   |   3   |   2   |   1   |   0   |  Direction Register
          --------------------------------------------------------------- -------------------
         |                                               |       |       |  Port Interrupt
0 0 1 0 1|            Interrupt Vector Number            |   *   |   *   |
         |                                               |       |       |  Vector Register
          --------------------------------------------------------------- -------------------
         |    Port A     |                       |   H2  |  H1   |  H1   |  Port A
0 0 1 1 0|               |       H2 Control      |  Int  | SVCRQ | Stat  |
         |    Submode    |                       | Enable| Enable| Ctrl  |  Control Register
          --------------------------------------------------------------- -------------------
         |    Port B     |                       |   H4  |  H3   |  H3   |  Port B
0 0 1 1 1|               |       H4 Control      |  Int  | SVCRQ | Stat  |
         |    Submode    |                       | Enable| Enable| Ctrl  |  Control Register
          --------------------------------------------------------------- -------------------
         |  Bit  |  Bit  |  Bit  |  Bit  |  Bit  |  Bit  |  Bit  |  Bit  |  Port A
0 1 0 0 0|       |       |       |       |       |       |       |       |
         |   7   |   6   |   5   |   4   |   3   |   2   |   1   |   0   |  Data Register
          --------------------------------------------------------------- -------------------
         |  Bit  |  Bit  |  Bit  |  Bit  |  Bit  |  Bit  |  Bit  |  Bit  |  Port B
0 1 0 0 1|       |       |       |       |       |       |       |       |
         |   7   |   6   |   5   |   4   |   3   |   2   |   1   |   0   |  Data Register
          --------------------------------------------------------------- -------------------
         |  Bit  |  Bit  |  Bit  |  Bit  |  Bit  |  Bit  |  Bit  |  Bit  |  Port A Alternate
0 1 0 1 0|       |       |       |       |       |       |       |       |
         |   7   |   6   |   5   |   4   |   3   |   2   |   1   |   0   |  Register
          --------------------------------------------------------------- -------------------
         |  Bit  |  Bit  |  Bit  |  Bit  |  Bit  |  Bit  |  Bit  |  Bit  |  Port B Alternate
0 1 0 1 1|       |       |       |       |       |       |       |       |
         |   7   |   6   |   5   |   4   |   3   |   2   |   1   |   0   |  Register
          --------------------------------------------------------------- -------------------
         |  Bit  |  Bit  |  Bit  |  Bit  |  Bit  |  Bit  |  Bit  |  Bit  |  Port C
0 1 1 0 0|       |       |       |       |       |       |       |       |
         |   7   |   6   |   5   |   4   |   3   |   2   |   1   |   0   |  Data Register
          --------------------------------------------------------------- -------------------
         |  H4   |  H3   |  H2   |  H1   |       |       |       |       |  Port Status
0 1 1 0 1|       |       |       |       |  H4S  |  H3S  |  H2S  |  H1S  |
         | Level | Level | Level | Level |       |       |       |       |  Register
          --------------------------------------------------------------- -------------------
         |       |       |       |       |       |       |       |       |
0 1 1 1 0|   *   |   *   |   *   |   *   |   *   |   *   |   *   |   *   |
         |       |       |       |       |       |       |       |       |
          ---------------------------------------------------------------
         |       |       |       |       |       |       |       |       |
0 1 1 1 1|   *   |   *   |   *   |   *   |   *   |   *   |   *   |   *   |
         |       |       |       |       |       |       |       |       |
          --------------------------------------------------------------- -------------------
         |      TOUT/TIACK\      |  ZD   |       |    Clock      | Timer |  Timer Control
1 0 0 0 0|                       |       |  *    |               |       |
         |        Control        |Control|       |   Control     | Enable|  Register
          ---------------------------------------------------------------
         |  Bit  |  Bit  |  Bit  |  Bit  |  Bit  |  Bit  |  Bit  |  Bit  |  Timer Interrupt
1 0 0 0 1|       |       |       |       |       |       |       |       |
         |   7   |   6   |   5   |   4   |   3   |   2   |   1   |   0   |  Vector Register
          --------------------------------------------------------------- -------------------
         |       |       |       |       |       |       |       |       |
1 0 0 1 0|   *   |   *   |   *   |   *   |   *   |   *   |   *   |   *   |
         |       |       |       |       |       |       |       |       |
          --------------------------------------------------------------- -------------------
         |  Bit  |  Bit  |  Bit  |  Bit  |  Bit  |  Bit  |  Bit  |  Bit  |  Counter Preload
1 0 0 1 1|       |       |       |       |       |       |       |       |
         |  23   |  22   |  21   |  20   |  19   |  18   |  17   |  16   |  Register High
          --------------------------------------------------------------- -------------------
         |  Bit  |  Bit  |  Bit  |  Bit  |  Bit  |  Bit  |  Bit  |  Bit  |  Counter Preload
1 0 1 0 0|       |       |       |       |       |       |       |       |
         |  15   |  14   |  13   |  12   |  11   |  10   |   9   |   8   |  Register Mid
          --------------------------------------------------------------- -------------------
         |  Bit  |  Bit  |  Bit  |  Bit  |  Bit  |  Bit  |  Bit  |  Bit  |  Counter Preload
1 0 1 0 1|       |       |       |       |       |       |       |       |
         |   7   |   6   |   5   |   4   |   3   |   2   |   1   |   0   |  Register Low
          --------------------------------------------------------------- -------------------
         |       |       |       |       |       |       |       |       |
1 0 1 1 0|   *   |   *   |   *   |   *   |   *   |   *   |   *   |   *   |
         |       |       |       |       |       |       |       |       |
          --------------------------------------------------------------- -------------------
         |  Bit  |  Bit  |  Bit  |  Bit  |  Bit  |  Bit  |  Bit  |  Bit  |  Counter Register
1 0 1 1 1|       |       |       |       |       |       |       |       |
         |  23   |  22   |  21   |  20   |  19   |  18   |  17   |  16   |  High
          --------------------------------------------------------------- -------------------
         |  Bit  |  Bit  |  Bit  |  Bit  |  Bit  |  Bit  |  Bit  |  Bit  |  Counter Register
1 1 0 0 0|       |       |       |       |       |       |       |       |
         |  15   |  14   |  13   |  12   |  11   |  10   |   9   |   8   |  Mid
          --------------------------------------------------------------- -------------------
         |  Bit  |  Bit  |  Bit  |  Bit  |  Bit  |  Bit  |  Bit  |  Bit  |  Counter Register
1 1 0 0 1|       |       |       |       |       |       |       |       |
         |   7   |   6   |   5   |   4   |   3   |   2   |   1   |   0   |  Low
          --------------------------------------------------------------- -------------------
         |       |       |       |       |       |       |       |       |  Timer Status
1 1 0 1 0|   *   |   *   |   *   |   *   |   *   |   *   |   *   |  ZDS  |
         |       |       |       |       |       |       |       |       |  Register
          --------------------------------------------------------------- -------------------
         |       |       |       |       |       |       |       |       |
1 1 0 1 1|   *   |   *   |   *   |   *   |   *   |   *   |   *   |   *   |
         |       |       |       |       |       |       |       |       |
          ---------------------------------------------------------------
         |       |       |       |       |       |       |       |       |
1 1 1 0 0|   *   |   *   |   *   |   *   |   *   |   *   |   *   |   *   |
         |       |       |       |       |       |       |       |       |
          ---------------------------------------------------------------
         |       |       |       |       |       |       |       |       |
1 1 1 0 1|   *   |   *   |   *   |   *   |   *   |   *   |   *   |   *   |
         |       |       |       |       |       |       |       |       |
          ---------------------------------------------------------------
         |       |       |       |       |       |       |       |       |
1 1 1 1 0|   *   |   *   |   *   |   *   |   *   |   *   |   *   |   *   |
         |       |       |       |       |       |       |       |       |
          ---------------------------------------------------------------
         |       |       |       |       |       |       |       |       |
1 1 1 1 1|   *   |   *   |   *   |   *   |   *   |   *   |   *   |   *   |
         |       |       |       |       |       |       |       |       |
          ---------------------------------------------------------------

Port General Control Register:


     7     6      5        4       3       2       1       0
   -------------------------------------------------------------
  | Port Mode |  H34   |  H12   |  H4   |  H3   |  H2   |  H1   |
  |  Control  | Enable | Enable | Sense | Sense | Sense | Sense |
   -------------------------------------------------------------

PGCR
7 6          Port Mode Control 
0 0  Mode 0 (Unidirectionnelle 8 bits)
0 1  Mode 1 (Unidirectionnelle 16 bits)
1 0  Mode 2 (Bidirectionnelle 8 bits)
1 1  Mode 3 (Bidirectionnelle 16 bits)

PGCR
 5           Fonctionnement avec H34
 0   non
 1   oui

PGCR
 4           Fonctionnement avec H12
 0   non
 1   oui

PGCR
3-0          Niveau logique de fonctionnement des broches H 
 0   Logique negative: La broche H associe est au niveau haut de tension lorsqu'elle est
     non positionnee et au niveau bas de tension lorsqu'elle est positionnee.

 1   Logique positive: La broche H associe est au niveau bas de tension lorsqu'elle est
     non positionnee et au niveau haut de tension lorsqu'elle est positionnee.

Port Service Request Register:


     7    6   5     4    3      2     1     0
   ---------------------------------------------
  |     |  SVCRQ | Operation |  Port Interrupt  |
  |  *  | Select |  Select   | Priority Control |
   ---------------------------------------------

PSRR
6 5          SVCRQ Select
0 X  la broche PC4/DMAREQ\ est utilisee en PC4; Le mode DMA n'est pas utilise.

PSRR
4 3          Selection du fonctionnement des broches d'interruption
0 0  la broche PC5/PIRQ\ est utilisee en PC5, la broche PC6/PIACK\ est utilisee en PC6,
     sans interruption.

0 1  la broche PC5/PIRQ\ est utilisee en PIRQ\, la broche PC6/PIACK\ est utilisee en PC6,
     avec interruption autovectorisee.

1 0  la broche PC5/PIRQ\ est utilisee en PC5, la broche PC6/PIACK\ est utilisee en PIACK\.

1 1  la broche PC5/PIRQ\ est utilisee en PIRQ\, la broche PC6/PIACK\ est utilisee en PIACK\,
     avec interruption vectorisee.

PSRR     Determine l'ordre de priorite d'interruption des broches H
2 1 0  du + prioritaire au - prioritaire
0 0 0  H1S > H2S > H3S > H4S
0 0 1  H2S > H1S > H3S > H4S
0 1 0  H1S > H2S > H4S > H3S
0 1 1  H2S > HSS > H4S > H3S
1 0 0  H3S > H4S > H1S > H2S
1 0 1  H3S > H4S > H2S > H1S
1 1 0  H4S > H3S > H1S > H2S
1 1 1  H4S > H3S > H2S > H1S

Port Data Direction Registers:


Il y a 3 registres de direction, un pour chaque Port: PADR, PBDR et PCDR. Un bit positionne a 0 dans l'un de ces registres indique que la broche correspondante est une entree. De meme, un bit positionne a 1 indique que la broche correspondante est une sortie. Apres un RESET tous les bits de ces registres sont a 0.


Port Interrupt Vector Register:


     7    6    5    4    3    2    1     0
   -----------------------------------------
  |   Interrupt Vector Number   |  *  |  *  |
   -----------------------------------------
Ce registre contient dans ses 6 bits de poids fort le numero de base des 4 vecteurs d'interruption du port (H1S, H2S, H3S et H4S). Le contenu de ce registre peut etre lus de deux maniere: soit par un cycle de lecture ordinaire, soit par un cycle de reconnaissance d'interruption (IACK). Apres un RESET ce registre est egale a la valeur hexadecimale $0f. Apres une ecriture dans ce registre les bits 0 et 1 sont toujours a 0.


Port A Control Registers:


      7    6     5      4       3         2        1        0
   ---------------------------------------------------------------
  |           |                    |     H2    |   H1   |   H1    |
  |  Port A   |                    | Interrupt | SVCRQ  | Status  |
  |  Submode  |     H2 Control     |   Enable  | Enable | Control |
   ---------------------------------------------------------------

Attention: Seul le mode 0 Submode 1X est presente ici.

PACR
7 6       Submode du Port A
1 X    submode 1X

PACR
5 4 3     Contole H2
0 X X  Broche en entree, le bit H2 sens) est positionne sur un front
       montant ou descendant (en fonction du bit H2S) de la broche H2.

1 X 0  Broche en sortie au niveau logique bas (Attention le niveau de
       tension de H2 depend du bit H2 sens).

1 X 1  Broche en sortie au niveau logique haut, meme remarque que 1 X 0.

PACR
 2        Interruption avec H2
 0     Non
 1     Oui

PACR
 1        Interruption avec H1
 0     Non
 1     Oui

PACR
 0        Controle H1   
 X     En fonction du bit H1 sens, le bit H1S est positionne
       sur un front detecte sur la broche H1.

Port B Control Registers:


      7    6     5      4       3         2        1        0
   ---------------------------------------------------------------
  |           |                    |     H4    |   H3   |   H3    |
  |  Port B   |                    | Interrupt | SVCRQ  | Status  |
  |  Submode  |     H4 Control     |   Enable  | Enable | Control |
   ---------------------------------------------------------------

Attention: Seul le mode 0 Submode 1X est presente ici.

PBCR
7 6       Submode du Port B
1 X    submode 1X

PBCR
5 4 3     Contole H4
0 X X  Broche en entree, le bit H4 sens) est positionne sur un front
       montant ou descendant (en fonction du bit H4S) de la broche H4.

1 X 0  Broche en sortie au niveau logique bas (Attention le niveau de
       tension de H4 depend du bit H4 sens).

1 X 1  Broche en sortie au niveau logique haut, meme remarque que 1 X 0.

PBCR
 2        Interruption avec H4
 0     Non
 1     Oui

PBCR
 1        Interruption avec H3
 0     Non
 1     Oui

PBCR
 0        Controle H3   
 X     En fonction du bit H3 sens, le bit H3S est positionne
       sur un front detecte sur la  broche H3.

Port Data Register:


Il y a 3 registres de donnees, un pour chaque port: PADR, PBDR et PCDR. Ces registres ne sont pas affectes par un RESET.


Port Status Register:


      7         6           5          4          3          2          1          0
 ----------------------------------------------------------------------------------------
| H4 Level | H3 Level | H2 Level | H1 Level |    H4S   |    H3S    |   H2S    |   H1S    |
 ----------------------------------------------------------------------------------------
Les bits 7 a 4 indiques le niveau instantane des broches H. Attention ce niveau ne depend pas des bits de "sens" du registre PGCR: Un bit a 1 indique un niveau haut de tension sur la broche H correspondante. Un bit a 0 indique un niveau bas de tension.

L'interpretation des bits d'etat 3 a 0 depend de la programmation du mode et du submode:

Dans le mode 0 submode 1X, un bit HS 3 a 1 indique qu'il y a eu un front sur la broche H correpondante. Le type de front depend du bit H sens, par exemple: Si le bit H1 sens est a 0, H1S passera a 1 sur le premier front descendent de la broche H1. Inverssement, si le bit H1 sens est a 1, H1S passera a 1 sur un front montant de la broche H1.

Un bit HS repasse a 0, soit par un RESET, soit par une ecriture a 1 de ce bit sinon il reste toujours a 1 quelque soit l'etat de son entree H.


Timer Control Register:


     7     6     5     4       3     2     1     0
   ---------------------------------------------------
  |  TOUT/TIACK\  |   Z.D.  |  *  |  Clock   | Timer  |
  |  Control      | Control |     |  Control | Enable |
   ---------------------------------------------------

TCR
7 6 5       Controle de TOUT/TIACK\
0 0 X  Les broches PC3/TOUT et PC7/TIACK\ sont dediees au port C.

0 1 X  La broche PC3/TOUT est utilise pour generer un signal carre: TOUT change d'etat
       a chaque passage du compteur par 0.
       La broche PC7/TIACK\ est dediee au port C.

1 0 0  Pas presente ici.

1 0 1  La broche PC3/TOUT est utilise pour generer une interruption. TOUT passe au niveau
       bas au passage du compteur par 0 (bit ZDS a 1). La broche PC7/TIACK\
       est utilise pour la reconnaissance d'interruption vectorisee.

1 1 0  Pas presente ici.

1 1 1  La broche PC3/TOUT est utilise pour generer une interruption. TOUT passe au niveau
       bas au passage du compteur par 0 (bit ZDS a 1). La broche PC7/TIACK\
       est dediee au port C, le mode d'interruption est donc autovectorisee.

TCR
4           Control de la detection du passage a zero
0  Apres le passage a zero du compteur 24 bits celui ci est recharge a l'aide des registres de
   prechargement sur la premiere impulsion d'horloge CLK.

1   Apres le passage a zero du compteur 24 bits celui ci passe a la valeur maximale $FFFFFF.

TCR
3           Toujours a zero

TCR
2 1         Controle du decomptage
0 0  La broche PC2/TIN est dediee au port C c'est donc la broche CLK qui sert d'horloge.
     Le prediviseur est utilise. Il est decremente a chaque transition de CLK. Le compteur
     24 bits est decremente quand le predivieur passe de la valeur $00 a $1f. La mise en marche
     du timer est controlee par le bit 0 du TCR.

0 1  La broche CLK et le prediviseur sont utilises. Le prediviseur est decremente a chaque
     transition de CLK. Le compteur 24 bits est decremente quand le predivieur passe de la valeur
     $00 a $1f. La broche PC2/TIN controle le fonctionnement du TIMER. Si l'entree TIN est au niveau
     Haut le TIMER ce met en marche.

1 0  La broche PC2/TIN est utilise comme signal d'horloge. Le prediviseur est utilise. Il est
     decremente a chaque transition de TIN. Le compteur 24 bits est decremente quand le predivieur
     passe de la valeur $00 a $1f. La mise en marche du timer est controlee par le bit 0 du TCR.

1 1  La broche PC2/TIN est utilise comme signal d'horloge. Le compteur 24 bits est decremente a
     chaque transition de TIN. La mise en marche du timer est controlee par le bit 0 du TCR.

TCR
0           Mise en marche du TIMER
0  Non
1  Oui

Timer Interrupt Vector Register:


Ce registede 8 bits contient le numero du vecteur qui est retourne sur le bus de donne a chaque reconnaissance d'interruption (TIACK\). A chaque RESET ce registre prend la valeur $0f.


Counter Preload Registers (CPRH, CPRM, CPRL):


Constitue un groupe de 3 registres de 8 bits chaqu'un. Il sont utilises pour memoriser la valeur qu'il faut charger dans le compteur 24 bits. Un RESET n'affecte pas la valeur de ces registres.


Counter Registers (CRH, CRM, CRL):


Ce groupe de 3 registres de 8 bits constitue le registre compteur de 24 bits du TIMER. La lecture de ces registres donnent la valeur courante du compteur. Cette valeur n'est pas memorise et est succeptible de changer si le TIMER est en fonctionnement.


Timer Status Register:


     7     6     5    4     3     2     1     0
   ----------------------------------------------
  |  *  |  *  |  * |  *  |  *  |  *  |  *  | ZDS |
   ----------------------------------------------
Ce registre contient un seul bit significatif: le Zero Detect Status. Ce bit vaut 1 lorsque le compteur de 24 bits passe de la valeur $00001 a $00000. Le ZDS repasse a zero soit par un RESET ou soit par un arret du TIMER. Pour acquiter une interrutpion, il faut mettre a 1 ce bit.