HARDWARE ★ MONTAGES, EXTENSIONS ET PÉRIPHÉRIQUES DU CPC ★

Book Montages Extension Peripheriques du CPC 06 : Décodage d'adresses

6. DECODAGE D'ADRESSES

Le décodage d'adresses constitue un des plus gros problèmes à résoudre lorsque l'on veut brancher des extensions sur un système existant. Tout ordinateur possède un certain nombre d'adresses réservées à la sélection des circuits internes, mais aussi des éventuelles extensions extérieures. Ces adresses sont définies lors de la conception du système/ et ne peuvent Plus être modifiées par la suite. ;I1 est bien évident que les circuits périphériques ne doivent pas occuper les mêmes adresses que les mémoires internes comme par exemple le système d'exploitation.

Le CPC possède au total 16 lignes d'adresses, numérotées de A0 à A15. Ces 16 lignes permettent d'adresser 65536 octets, c'est dans ce domaine que doit se passer toute l'activité de l'ordinateur. Certaines de ces adresses sont réservées aux circuits externes. Sur le CPC 464, elles se trouvent à la fin de l'espace mémoire, au-dessus de F8xx. Le décodeur d'adresse doit être en mesure de ne tenir compte et de n'accaparer que ce domaine bien précis d'adresses, pour ne pas en bloquer d'autres inutilement.
De plus, tous les circuits périphériques sont équipés d'une, parfois de deux entrées de validation. En général on appelle ces broches CHIP-SELECT (sélection du circuit). On trouve aussi les dénominations OUTPUT-ENABLE (OE) ou CHIP-ENABLE (CE). En général ces entrées sont actives à L.
L'adressage d'un circuit n'est possible que lorsque le Chip-Select est activé, et ceci ne doit avoir lieu qu'une fois que les données se trouvent sur le BUS de données.

Le tableau ci-dessous vous indique l'adresse maximale que l'on peut atteindre en fonction des bits d'adresses utilisés:

A l'aide de ce tableau vous pouvez par exemple voir qu'avec les bits A7-A0 il est possible d'accéder à 2 puissance 8=256 adresses allant de 0 à 255 (rappelez-vous qu'en informatique on compte toujours à partir de 0, et non à partir de 1 comme nous y sommes habitués), La partie inférieure de l'espace mémoire doit rester exempte de toute intervention de notre part, en effet c'est ici (à partir de l'adresse 0000) que le Z-80 CPU va chercher ces instructions après un RESET ou après la mise en marche de l'ordinateur.

A l'aide du signal Chip-Select il est possible d'adresser plusieurs circuits différents se trouvant dans le même espace mémoire/ il suffit de l'activer au bon moment.
Lorsque l'on commence la réalisation d'un système, il n'est souvent pas encore possible de déterminer avec précision avec combien de composants on va travailler. Si l'on met alors en œuvre des décodeurs spécifiques à une certaine adresse, on risquera de rencontrer des problèmes lorsque l'on voudra rajouter des circuits.

Il est bien sûr beaucoup plus simple de réaliser un décodeur à adresse fixe, mais pensez que cette adresse sera définitivement perdue pour d'autres extensions.

Le principe d'un tel décodeur vous est donné à la figure 12.

On utilise ici les bits d'adresse A10-A4 pour le décodage. De plus il faut comme condition préalable au décodage que le signal IRQ soit actif. Etant donné que celui-ci est actif U, on à intercalé un inverseur (7400). L'IRQ inversé et les bits d'adresse sont reliés à une porte NAND, ici un 7430. La sortie du NAND ne vaudra L que si toutes les entrées sont § H. Une seconde inversion permet de disposer à la fois d'un chlp-select positif et négatif.

FIGURE 12
EXEMPLE D'UN DECODEUR A ADRESSE FIXE

L'adressage d'un tel décodeur est très simple. Des 16 lignes
d'adresses il faut que celles appliquées au décodeur soient à ^ ce
qui se résume dans le tableau suivant (un x désigne un état indifférent):

--------------------BITS D'ADRESSES-------------+ = adresses+
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 I de / à I
================================================+===========+
x x x x x 1 1 1 1 1 1 l x x x x I 09F0/FFFF I
================================================+===========+

Dans le signal chip-select, un circuit externe équipé d'un tel décodeur serait adressé pour 62991 (=FFFF-09F0) adresses différentes.

Vous le voyez-, un tel décodage d'adresse n'est pas utilisable. Nous nous y sommes seulement attardé pour faire apparaître à l'aide d'un exemple simple les problèmes qui se poseront à nous avec les décodeurs universels que nous allons voir par la suite.
Dans le guide de l'utilisateur du CPC 464» dans l'appendice IV, on trouve les adresses réservées aux entrées/sorties. Les adresses suivantes doivent être utilisées pour le matériel extérieur:

F8xx, F9xx, FAxx, FBxx

Les bits d'adresse A7 à A0 désignés par "xx", sont divisés comme suis:

00 - 7B ne pas utiliser
7C - 7F réservés à l'interface disquette
80 - 8B ne pas utiliser

BC - BF réservés à des usages ultérieurs
C0 - DB ne pas utiliser
DC - DF réservés pour les interfaces de communication
E0 - FF disponibles pour l'utilisateur pour des extensions

On en déduit que les domaines suivants sont disponibles sans restriction pour nos extensions:

F8E0 - F8FF, F9E0 - F9FF,
FAE0 - FAFF, FBE0 - FBFF

Chaque domaine englobe 32 adresses, donc au total on dispose de 32 x 4 = 128 adresses pour nos applications périphériques. De plus il est également possible d'utiliser les adresses suivantes:

F8BC - F8BF, F9BC - F9BF,
FABC - FABF, FBBC - FBBF

soient 4 x 4 = 16 adresses supplémentaires.

Vous constaterez que les bits d'adresse A15-A12 sont toujours à 1 (c.à.d. H).
Dans ce qui suit vous seront présentés différents décodeurs d'adresses avec lesquels il sera possible de "programmer" certaines adresses que l'on désire utiliser pour les extensions.

Le choix du décodeur dépend essentiellement du nombre d'extensions que vous désirez utiliser. Plus vous voulez connecter d'appareils périphériques et plus performant devra être le décodeur.

Page précédente : Book Montages Extension Peripheriques du CPC 05 : Circuits Logiques de Base
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 085 millisecondes et consultée 1987 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.