HARDWAREPERIPHERIQUES - INTERFACES ★ INTERFACES MAGECO ★

Interface - Mageco (CPC Revue)Hardware Peripheriques - Interfaces
Nous avons pensé à tous nos lecteurs qui ne construisent pas les interfaces décrites dans CPC. Voulant que cette revue soit aussi complète que possible, nous avons de décide décrire les possibilités offertes par deux cartes commercialisées. Il s'agit de l'interface 8 entrées-sorties et de la carte 8 entrées analogiques de MAGECO. Ces cartes sont disponibles en particulier chez ORDIVIDUEL, annonceur dans CPC. Leur bon rapport qualité/prix nous a paru être un argument favorable.

LA CARTE
8 ENTREES-SORTIES

Elle est organisée autour d'un 74LS244 (8 buffers), pour la partie "entrées" et d'un 74LS273 (8 bascules D), pour la partie "sorties". Par conséquent, elle sera facile à programmer. Le décodage d'adresses permet de sélectionner 4 emplacements différents, dans l'espace des entrées-sorties, ce qui garantit une certaine compatibilité avec d'autres cartes. Du très classique à ce niveau : 74LS30, 74LS32, 74LS04. La sélection de l'adresse se fait par un couple d'inverseurs agissant sur les lignes d'adresses A3 et A4. Munie d'un connecteur, la carte vient se monter directement sur le bus de sortie de rAMSTRAD. Ce connecteur est situé côté composants. De l'autre côté de la carte, on trouve un connecteur "mâle" permettant la connexion d'une autre interface (ou du drive pour le CPC 464). Une remarque : sur le 664 et le 6128, le montage de la carte sur le connecteur d'extension impose de surélever l'AMSTRAD. Ce petit défaut de conception disparaîtra si vous utilisez une courte nappe rallonge de bus.

Physiquement, les connexions de la carte vers le monde extérieur se font par l'intermédiaire d'un bornier à vis, qui se révèle bien pratique lors des expérimentations.

L'état des entrées est visualisé sur des diodes électroluminescentes rouges, celui des sorties par des diodes vertes. Une entrée en l'air correspond à l'état 1 et, la diode qui lui est associée étant alimentée à partir du + 5 V, se trouve éteinte. La présence d'un 0 (masse) sur l'entrée allumera la diode. Pour chaque ligne, l'entrée vers le 74LS244 s'effectue à travers une résistance de 1 k. Les diodes associées aux sorties s'allument pour un état 1 (haut) de la ligne correspondante. La sortie s'effectue sur le collecteur, ouvert, d'un transistor, l'espace émetteur-collecteur du transistor étant shunté par une diode. Au transistor, on pourra relier une charge qui sera commandée par la saturation de celui-ci. Cette charge devra assurer un courant maximal de 1 A dans le transistor. Une alimentation externe, pouvant atteindre au maximum 20 V, fournira la tension au circuit extérieur. Si la charge est sel-fique, cas d'un relais de commutation, il est indispensable de la shunter par une diode (genre 1N4148, par exemple). Sa programmation est très simple : il suffit d'envoyer le profil binaire (ou traduit en hexa, ou décimal) de l'octet à présenter sur les lignes de sortie. Cette opération est réalisée par un OUT en BASIC ou par la séquence suivante, en assembleur :

LD BC, 0FBE0H
(adresse carte)
LD A,xx
(xx octets à envoyer)
OUT (C),A
(opération de sortie)
RET
(retour)


En Basic, on écrira OUT &E0, xx (ou OUT &FBE0, xx).
Si on souhaite mettre les bits 2 à 7 à 1 (et seulement eux), on fera :

OUT &E0, 132 ( = 10000100)

En entrée, pas de difficulté : un INP en Basic ou la séquence Assembleur suivante :

LD BC, 0FBE0H
(adresse carte)
IN A,(C)
(lecture du port)
RET
(retour)

Vous voulez recopier sur les sorties l'état des entrées ? Rien de plus simple... OUT &E0, INP (&E0) en Basic et, comme vous avez compris la manœuvre, vous saurez quoi écrire en Assembleur. On ne va pas tout vous dire ! Bien des applications sont envisageables avec cette carte 8 E/S. Citons en vrac : la commande de relais, la lecture de contacts permettant de surveiller un local et de déclencher une alarme... ou encore de commander, à partir de l'ordinateur un réseau de train miniature.

LA CARTE
8 ENTREES ANALOGIQUES

Pourquoi une carte analogique ? Pour permettre à l'ordinateur de saisir des données telles que tension, température, niveau d'éclairement, vitesse du vent, etc. Toutes ces données, à caractère analogique, seront converties en informations digitales par un convertisseur "analogique-digital".

L'âme de la carte est justement ce composant : le convertisseur analogique-digital ADC 809. C'est un circuit intégré à 28 broches effectuant la conversion par le procédé des "approximations successives". Avec ce procédé, le calculateur fait varier une tension de référence et compare la grandeur à mesurer à cette tension. Lorsque le résultat de la comparaison est "vrai" (bon), la grandeur, codée sur 8 bits, est disponible en parallèle sur les sorties de l'ADC 809. Le temps de conversion détermine les performances et les limitations du circuit. Si l'on voulait convertir une image vidéo, il faudrait un composant extrêmement

rapide (dont le prix se chiffre par centaines de francs). Dans notre cas, l'ADC 809 permet toutefois des mesures honorables. La carte est réalisée en époxy double face, à trous métallisés. Les 8 entrées se font par un bor-nier. Le 0 V et la tension de référence (ici 5 V) sont également disponibles sur ce bornier. Un connecteur relais permet d'utiliser la carte en liaison avec une autre, par exemple la carte 8 E/S...

Côté électronique, on distingue, outre le convertisseur, les circuits du décodage d'adresse. Ce décodage place la carte à un emplacement programmable parmi 4, grâce au jeu de deux interrupteurs.

La carte est programmable en Basic. Dans ce cas, il sera impossible de bénéficier de toutes les performances de l'ADC 809, à cause de la lenteur du langage. Une programmation en langage machine résoud le problème... Le temps de conversion entre deux mesures est évalué, dans ce cas, à 100 microsecondes. Il est donc possible d'échantillonner des fréquences BF (traitement de la voix, analyse de signaux, etc.). Programmer la carte est un jeu d'enfant. On dispose de 8

entrées : il suffit de désigner celle à laquelle s'adresse la mesure, par son numéro physique. La lecture du résultat est tout aussi simple... Voici un court exemple, par lequel on lit l'entrée numéro 3.

OUT (&FBF8),3:A = INPUT (&FBF8):PRINT A

Nous n'avons pas placé de boucle de temporisation entre la demande de mesure (OUT) et la lecture du résultat (INP), le Basic étant suffisamment lent ! Le résultat obtenu est un nombre codé sur un octet, donc de 0 à 255. Pour établir la relation qui existe entre ce nombre et la tension réellement présente sur l'entrée considérée, on tient compte de la valeur de la tension de référence (ici 5 V). Si la tension mesurée est à 5 V, on obtient 0. Si elles est à 0 V, on lira 255. La relation est donc Tension = Mesure*V Réf/255. Ici, on peut écrire U = M*5/255 où U est la tension réelle et M la mesure.

ATTENTION ! toutes les mesures doivent être ramenées dans la gamme 0 à 5 V, sous peine de détruire le convertisseur. En alternatif, car il est possible de mesurer des tensions alternatives, la tension maximale autorisée sera de 5 V crête à crête.

En langage machine, il faudra incorporer, entre la demande de mesure et la lecture du résultat, un délai d'environ 100 microsecondes... pour que la mesure ait le temps de s'effectuer. Cela donnera :

LD BC, 0FBF8H
(adresse de la carte)
LD A,3
(sélection entrée n° 3)
OUT (C),A
(demande de mesure)
JSR TEMPO
(sous-programme d'attente)
IN A, (C)
(lecture du résultat)
RET
(retour)

La précision du résultat.sera de ±20 mV. En effet, 5 V/255# 20 mV. On pourra, lorsque la rapidité n'est pas un impératif, effectuer des mesures répétitives, dans le but de diminuer la dispersion et d'améliorer la précision. On prendra pour résultat, la moyenne établie sur les N mesures. Ceci pourra s'écrire, toujours pour l'entrée n° 3 :

10 M = 0
(initialise la moyenne)
20 FOR I = 1 TO 20
(nombre de mesures)
30 OUT (&FBF8),3
(demande de mesure)
40 A = INP (&FBF8)
(lecture du résultat)
50 M = M + A
(totalise)
60 NEXT
(mesure suivante)
70 PRINT M = M/20
(imprime valeur moyenne)

Rappelons que, pour gagner du temps en Basic, il serait préférable de mettre toutes les instructions sur une même ligne. Il serait difficile de citer toutes les applications possibles d'une carte analogique comme celle-ci : régulation de température (capteur thermique), surveillance d'un local (capteur optique), études diverses (courbes de décharge d'un condensateur chimique, d'une batterie d'accumulateur...).

CONCLUSION

L'utilisation de ces deux cartes ouvre des horizons nouveaux à votre AMSTRAD. Leur réalisation soignée et la fiabilité de leur fonctionnement associée à celle de l'AMSTRAD, laissent envisager des applications professionnelles ou d'enseignement. Peut-être une bonne introduction à la ROBOTIQUE ?

CPC n°7

★ LANGAGE:
★ LiCENCE: COMMERCIALE
★ ANNÉE: 1985
★ EDITEUR/DEVELOPPEUR: ORDIVIDUEL

★ AMSTRAD CPC ★ A voir aussi sur CPCrulez , les sujets suivants pourront vous intéresser...

Lien(s):
» Hardware » Interface Debug - Mirage Imager Manual
» Hardware » Temperature-analogue Interface (Practical Electronics)
» Hardware » Interface 8e Bit Pour Imprimante (CPC Revue)
» Hardware » Serie - Interface Vortex RS232
» Hardware » Interface - USIfAC II
» Hardware » Interface - les Interfaces Jagot et Leon (CPC Revue)
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 119 millisecondes et consultée 2149 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.