CODINGCLEFS POUR AMSTRAD 2 ★ Système disque par Daniel Martin et Philippe Jadoul ★

Clefs2 41 - Ctc8253 Registres et ProgrammationCoding Clefs Pour Amstrad 2

CTC 8253

Registre et programmation

Le REGISTRE MODE

Le 8253 se programme par l'intermédiaire d'un seul registre appelé REGISTRE MODE.
Ce registre est à écriture seule et il permet d'accéder séparément à chacun des trois compteurs.
Format du REGISTRE MODE

B7 ;B6 ;B5 ;B4 ;B3 ;B2 ;B1 ;BO
SC1 SCO RL1 RLO M2 ;M1 ;MO BCD

SC0 et SC1 : ces bits permettent de sélectionner un des trois compteurs selon la table suivante :

SC1 SCO Compteur
--------------------------------
0 ; 0 ;0
0 ; 1 ;1
1 ; 0 ;2
1 ; 1 illégal

RL0 et RL1 : permettent de définir la sélection de la procédure de lecture ou d'écriture suivant la table figurant ci-dessous :

RL1 RL0 ;Procédure
-----------------------------------------------------------------
0 0 Mémorisation temporaire du compteur.
0 1 Ecriture/lecture de l'octet le moins significatif.
1 0 Ecriture/lecture de l'octet le plus significatif.
1 1 Ecriture/lecture des deux octets consécutifs
; (le moins significatif en premier).

M0, M1 et M2 : permettent de définir le mode opératoire du compteur suivant la table que voici :

M2 M1 M0 MODE
0 0 0 0
0 0 1 1
0 1 0 2
0 1 1 3
1 0 0 4
1 0 1 5
1 1 0 2
1 1 1 3

Les six modes possibles sont définis au point "Définition des modes" ci-dessous.

BDC : ce bit permet de sélectionner le mode de fonctionnement du compteur.

Si BCD vaut 0, le compteur fonctionne en mode 16 bits.
Si BCD vaut 1, le compteur fonctionne en mode BCD.

Définition des modes

MODE 0 : interruption à la fin du comptage.

Dans ce mode, la sortie du compteur est positionnée à l'état bas après la sélection du mode. Après le chargement de la valeur du compteur, la sortie reste à l'état bas et le compteur commence à compter. Lorsque le comptage est terminé, la sortie passe à l'état haut et reste dans cet état jusqu'à ce qu'une nouvelle commande soit envoyée au compteur.
Si une nouvelle valeur de comptage est chargée pendant l'exécution, le chargement du premier octet arrête le compteur, le chargement du second octet redémarre le compteur qui commence à décompter en partant de la nouvelle valeur.

MODE 1 : génération d'une impulsion programmable.

Dans ce mode, la sortie passe à l'état bas après le changement d'état de la gâchette. Le compteur commence alors à compter, à l'issue du comptage, la sortie repasse à l'état haut. Si une nouvelle transition apparaît sur la gâchette, le compteur recommence son comptage (le compteur est dit "RETRIGGERABLE").

MODE 2 : générateur de vitesse de transmission.

Dans ce mode, le compteur se comporte comme un diviseur par n. La sortie passe à l'état bas pendant une période d'horloge et ce, à chaque passage à zéro du compteur qui se réarme automatiquement.

Si une nouvelle valeur est chargée pendant un cycle, elle commencera son action à la fin du cycle en cours-Le passage à l'état bas de la gâchette force la sortie à l'état haut. La transition de la gâchette à l'état bas redéclenche le compteur.

MODE 3 : générateur de signaux carrés.

Dans ce mode, la sortie passe à l'état bas durant la moitié du comptage et à l'état haut durant l'autre moitié. Le compteur se réarme automatiquement. La sortie produit donc un signal dont l'état bas et l'état haut présentent la même période.

MODE 4 : impulsion générée par le logiciel.

Dans ce mode, la sortie» qui est à l'état haut au départ, passe à l'état haut pendant une période d'horloge à l'issue du comptage.
Si la gâchette est à l'état bas, le compteur est inhibé.

MODE 5 : impulsion générée par le matériel.

Dans ce mode, le compteur commence à compter après la transition de la gâchette vers l'état haut. A l'issue du comptage, la sortie passe à l'état bas pendant une période d'horloge. Si une nouvelle transition apparaît sur la gâchette, le compteur recommence son comptage.

Ecriture dans un compteur

Le chargement d'une valeur dans un compteur doit se faire en fonction du choix effectué lors de la programmation du registre MODE {voir RL1 et RL0).
Le compteur doit donc être chargé avec un ou deux octets en fonction de l'état des bits RL1 et RLO.
Le chargement de la valeur ne doit pas nécessairement suivre la programmation du registre MODE. Elle peut être chargée à n'importe quel moment pour autant qu'elle reflète la sélection effectuée.

Si RL1 et RL0 sont positionnés à 1, les deux octets doivent être chargés dans le compteur. Le premier octet transmis prendra la place la moins significative (B0 à B7), l'autre occupera la place la plus significative (B8 à B15).

Lecture d'un compteur

Deux méthodes de lecture sont possibles :

— La première consiste à lire le port idoine, la première lecture fournissant l'octet le moins significatif, la seconde fournissant l'autre octet. Cette opération ne requiert qu'une seule précaution : il faut inhiber le compteur durant l'opération par l'intermédiaire de la gâchette ou par l'interruption de l'horloge.

— La seconde utilise une des options des bits RL1 et RL0. Si ces deux bits sont à 0, lors de l'écriture dans le registre MODE, la valeur courante du compteur est copiée sur le port de lecture du compteur spécifié et cette valeur est maintenue jusqu'à ce qu'une lecture en prenne connaissance. Dans ce dernier cas, l'état des bits B4 à B0 du registre MODE n'a aucune importance.

★ ANNÉE: ???
★ AUTEUR(S): ???

Page précédente : Clefs2 41 - Ctc8253 Interfacage
Je participe au site:

» Vous avez remarqué une erreur dans ce texte ?
» Aidez-nous à améliorer cette page : en nous contactant via le forum ou par email.

CPCrulez[Content Management System] v8.7-desktop/c
Page créée en 053 millisecondes et consultée 1427 fois

L'Amstrad CPC est une machine 8 bits à base d'un Z80 à 4MHz. Le premier de la gamme fut le CPC 464 en 1984, équipé d'un lecteur de cassettes intégré il se plaçait en concurrent  du Commodore C64 beaucoup plus compliqué à utiliser et plus cher. Ce fut un réel succès et sorti cette même années le CPC 664 équipé d'un lecteur de disquettes trois pouces intégré. Sa vie fut de courte durée puisqu'en 1985 il fut remplacé par le CPC 6128 qui était plus compact, plus soigné et surtout qui avait 128Ko de RAM au lieu de 64Ko.