Interface pour port parallèle

1.Principe retenu
2.Schema électronique
3.Schéma de réalisation sur veroboard
4.Alimentation de l'interface
5.La procédure de test
6.Commande de l'interface avec l'ordinateur
7.Extensions envisageables

1.Principe retenu



On utilise tout simplement des portes "oui" pouvant délivrer un courant relativement important (buffers). Chaque bit du port imprimante est donc relié à l'entrée de l'une de ces fameuses portes.
Vous vous demandez sûrement à quoi peuvent donc bien servir R1 et R2.
J'ai réalisé le montage et en le testant, j'ai constaté qu'il réagissait n'importe comment. R2 sert à consommer un petit courant, moins de 0.1mA (ce que supporte très bien le port imprimante) pour éliminer ces effets indésirables. J'ai consulté le schéma d'une imprimante et j'ai constaté que la même méthode était utilisée.
Quand au rôle de R1, c'est une sécurité pour le port; en effet, j'ai constaté que lorsque le circuit intégrè n'était plus alimenté, ses entrées consommaient plus de courant (quelques mA) sur le port ! J'ai donc mis en place R1 pour limiter le courant tiré sur le port parrallèle à un tout petit peu plus de 1mA, ce que supporte sans broncher le port imprimante (je me sert souvent de mon interface et je n'ai jamais eu de problémes à ce niveau; certaines personnes disent même que le port peut débiter 5mA).
La sortie de la porte est relié à une led par l'intermédiaire de R3 (pour limiter le courant dans la DEL à 10mA), ce qui permet de visualiser l'état des sorties.
Ces sorties serviront à connecter d'éventuelles extensions; elles sont dites "sécurisées", car, grâce à R4, si les sorties sont court-circuitées, cela ne détruit pas IC1, mais occasionne juste pour lui un petit surcourant. Bien sûr le port imprimante "ne voit rien", le court-circuit mentionné plus haut n'a aucune influence sur lui; c'est le but recherché.

2.Schema électronique



Ci dessus je vous donne le shéma réel complet, avec les valeurs et les références des composants.
Pour les 8 portes oui (buffer) j'ai choisi le classique 74 HC 541. Les deux entrées de validations (broche 1 et 19) sont reliées à la masse, car l'interface doit suivre constament l'état du port imprimante. Comme tout circuit logique, le 74 HC 541 réclame une alimentation 5V stable; le régulateur 7805 convient parfaitement ici; il vous suffira alors de connecter une source continue, stabilisée ou non, de tension comprise entre 6 et 15 volts à l'entrée de ce régulateur pour alimenter l'interface (voir 4.Alimentation de l'interface).
Le condensateur C1 sert à découpler l'alimentation du régulateur.
N'utilisez pas le +5V disponible sur le port imprimante, cette source ne peut débiter un courant suffisant. (8 leds allumées = 80mA + le courant réclamé par les sorties "sécurisées"...).
Pour connecter l'interface au port imprimante, j'ai opté pour une embase de type Centronics, Femelle, 36 broches, ce qui vous permettera d'utiliser exactement le même cable pour relier l'interface au PC que ceux utilisés pour y brancher les imprimantes.
A ce propos, si vous utilisez souvent l'interface et souvent votre tandem imprimante scanner, je vous conseille d'acquerir un commutateur MECANIQUE. Pourquoi mécanique ? Cela coute moins cher et soutout ça fonctionne (en effet, les models automatiques essayent de comprendre ce qui ce passe, et étant donné que l'interface n'utilise pas les signaux de contrôles (strobe & cie), vous risquez d'avoir des surprises...).
Quand au connecteur 'extension', à vous de choisir ce qui vous convient le mieux; mais il est évident qu'il faut un connecteur disposant au minimum de 9 broches (ou 10 broches si vous voulez profiter du +5V de l'alimentation de l'interface) :-).

3.Schéma de réalisation sur veroboard



Tout a été dit précédement, je me contenterais donc de faire quelques remarques.
Le montage est simple et ne necessite aucun réglage, mais comporte de nombreuses soudures très rapprochées; aussi il est préférable de se munir d'un fer à souder munit d'une pointe très fine.
Bien sûr, on commencera par enlever le cuivre sur les pastilles colorées en vert, à l'aide d'un foret d'environ 5mm de diamétre, que l'on tournera à la main.
Ensuite, on procédera par la mise en place des 5 straps (fils), puis du support sur lequel sera monté IC1. Il vaut mieux utiliser un support pour de nombreuses raisons : cela évite à IC1 à avoir à supporter la chaleur du fer à souder, et permet un remplacement ou une récupération aisée de IC1. On terminera par les résistances, C1 et le régulateur. Quand à la position de ce dernier, la semelle en métal est représentée ci-dessus par une bande bleue.
Les Dels seront fixées soit directement sur la face avant, soit sur une petite bande de véroboard à part.
En ce qui concerne l'embase Centronics, son brochage est ci-dessus; on remarquera que les numéros des pattes 1, 18, 19 et 36 de cette embase sont sérigraphiés sur elle, ainsi il ne peut y avoir aucune ambiguité par rapport à son brochage.

Je n'ai rien dis à propos de l'alimentation qui doit être comprise entre 6V et 15V ?
Eh bien, voyez le titre de la prochaine partie... :-)

4.Alimentation de l'interface

Le régulateur utilisé nous simplifie bien la vie !
En effet, il nous sufit juste de trouver une source dont la tension peut varier de 6V à 15V sans problémes pour un courant réclamé allant de 0 à 200 mA dans le pire des cas.
A propos du régulateur, il vaut mieux lui adjoindre un petit radiateur, par exemple une plaque en aluminium de dimensions 30mm*20mm, épaisseur 3mm ou 5mm. Si vous tenez à 'tirer du +5V' depuis le connecteur extension, sachez que le 7805 ne peut débiter plus de 1A, qu'il n'apprécie pas spécialement les court-circuits, et je vous conseille vivement de mettre un radiateur plus gros. Si vous n'êtes pas convaincu de l'utilité du radiateur, calculez la puissance dissipée par le régulateur :
P = (Ualim - 5) * Idébité
Ensuite, prenez une résistance de 100 Ohms et appliquez lui une tension telle qu'elle dissipe la même puissance que ce que vous venez de calculer pour le régulateur. Attendez 2 minutes et touchez la résistance (si elle n'est pas encore la proie des flammes...).
Je le redis, c'est important, on ne peut pas utiliser les +5V disponibles sur le port Imprimante.
On peut envisager une alimentation avec des piles, c'est d'ailleurs ce que nous ferons lors des premiers test. Mais là, je vous conseille de ne pas utiliser de pile 9V (autonomie trop faible, coût élevé) mais plutôt 2 piles plates de 4,5V mises en série.
Une solution plus élégante consite à alimenter le montage avec un bloc secteur style prise de courant, ou mieux, par une petite alim classique (transpho + pont de diodes + condensateur) intégrée dans le boîtier de l'interface. Je vous en donne le schéma :



Le DOUBLE interrupteur apporte une sécurité supplémentaire puisque à l'arrêt, le montage est totalement coupé du secteur.
On choisira un fusible de type "rapide".
Bien sûr, avec l'alimentation secteur, le montage pert son autonomie, mais en général, là ou il y a un ordinateur, il y a une prise de courant :->).
On pourra aussi penser à rajouter une DEL pour montrer que le montage est sous tension. On alimentera la DEL à partir des 5V disponibles sur le régulateur pour éviter que sa luminosité baisse en fonction du courant réclamé par le reste du montage (à cause de l'indésirable résistance interne de l'alimentation). Si vous aimez la frime, prennez une DEL clignotante ou bien de couleur bleue. Il faudra prendre cette DEL supplémentaire d'une couleur différente de celle utilisée pour les 8 autres DELs, afin de ne pas s'embrouiller pour peu que l'interface soit éloignée.
Si vous utilisez une alimentation maison (transpho + pont de diodes + condensateur), pour des raisons de sécurité, ne réalisez pas votre montage dans un boîtier en métal.
Dérnière remarque: si vous utilisez des piles ou un 'bloc secteur' pour alimenter l'interface, une diode de protection contre les inversions de polarités est la bienvenue. Voici un petit schéma pour vous indiquer où placer cette diode de protection :



5.La procédure de test

On va d'abord tester l'interface avec des piles; donc si vous avez opté pour une alimentation secteur, ne la connectez pas tout de suite.

Puisqu'on en parle, je vous indique maintenant comment tester votre alimentation secteur :

* Après avoir scrupuleusement vérifié vos branchements, reliez votre alim au secteur. Le transpho peut émettre un léger ronflement grave, du à la vibration de ses tôles à la fréquence du secteur.
* Mesurez alors la tension de sortie de votre alim à vide, c'est à dire lorsqu'elle ne débite aucun courant. Cette tension doit être inférieure ou égale à 15V (c'est pour cela que je vous recommande de ne pas employer un transpho dont la tension indiquée pour le secondaire dépasse 12V; en effet, à vide, cette alim "surgonfle" sa tension de sortie).
* Maintenant il faut mesurer la tension à "plein régime"; pour cela, on charge l'alimentation de manière à ce qu'elle débite à peu près 200 mA. On y arrive en connectant une résistance à la sortie; en mesurant le courant on vérifie la présence d'à peu près 200mA, sinon, on modifie la résistance. ATTENTION! La résistance chauffe! Il faut prendre un model 10W ou à défault, ne pas laisser le courant passer dedans trop longtemps. Mesurez alors la tension de sortie de votre alim, elle doit être supérieure ou égale à 6V.

On peut procéder de même pour vérifier si un bloc secteur acheté dans le commerce convient.

Voici comment tester votre interface.

* 1er test:

Ce test a pour but de vérifier les soudures et si le "jus" arrive correctement à IC1. CE TEST SE FERA AVEC IC1 RETIRE DE SON SUPPORT.
Il faut alors alimenter l'interface privée de IC1, mais pas avec votre alim si vous en avez fait une, ni avec un bloc secteur acheté dans le commerce.
Il faut réaliser le petit circuit ci contre:



La résistance de 10 Ohms sert à limiter le courant en cas de cours-jus. Si vous n'avez pas 3 piles de 4,5 V sous la main, utilisez en une de 9 V. J'ai dit TROIS piles de 4,5 V ? En effet, dans les prochains tests nous allons avoir besoin d'une autre pile de 4,5V pour simuler le port imprimante.

Voici la procédure de test proprement dite:
Remarque: aucune des 8 DELs n'est sencée s'illuminer, même faiblement. Pour faire les mesures de tensions, reliez l'entrée "-" de votre voltmetre au "-" de l'alimentation.
Mesurez les tensions, sur le support de IC1, correspondant aux pattes 1, 10 et 19; il doit y avoir 0 V.
Puis mesurez la tension sur la patte 20; il doit y avoir à peu de choses près 5 V.
Mesurez les tensions sur les pattes 2, 3, ..., 9; il doit y avoir aussi 0 V.
Mesurez enfin les tensions sur les pattes 11, 12, ..., 18; il doit y avoir encore 0 V.
Si à un moment il y a une erreur, vérifiez vos soudures à la loupe, vérifiez aussi si vous n'avez pas coupé le veroboard au mauvais endroits ou si vous n'avez pas mal positionné des composants.
Ne faites pas le test suivant avant que celui-ci n'ai réussi.

* 2éme test:

Maintenant, vous pouvez mettre IC1 sur son support, APRES AVOIR DECONNECTE L'ALIMENTATION. On se sert toujours de l'alimentation précedente avec les piles et la résistance de 10 Ohms pour ce 2éme test.
Là, on va avoir besoin de la 3éme pile de 4,5 V dont j'ai parlé plus haut. Elle va servir à simuler le port imprimante et sera utilisée conjointement avec un milli-Ampéremetre pour vérifier que le montage ne "tire" pas de courant exessif sur le port.
Voici (encore) un petit circuit à réaliser:



Voici la procédure de test :

Si ce n'est pas déjà fait, mettrez IC1 sur son support, APRES AVOIR DECONNECTE L'ALIMENTATION.
Reconnectez l'alimentation. Aucune des 8 DELs ne doit s'allumer.
Connectez la borne "-" de la pile du "simulateur de port Imprimante" au "-" de l'alimentation.
Avec la "pointe de touche", touchez successivement chacune des 8 broches de l'embase Centronics correspondants aux bits D0...D7. La DEL correspondante doit s'allumer; le courant qu'affiche le milli-ampéremétre doit être compris entre 0.05 mA et 0.5 mA.
Maintenant, coupez l'alimentation, et connectez la borne "-" de la pile du "simulateur de port Imprimante" au "-" prévu pour brancher l'alimentation.
Recommencez le test avec la pointe de touche; evidement, les DELs ne doivent pas s'allumer; le courant affiché par le milli-ampéremétre ne doit pas dépasser 1.5 mA.
Enfin, regardez à la loupe votre connecteur Centronics afin de vérifier si une projection de soudure ne court-circuite pas des broches non utilisées.
Là aussi, si à un moment il y a une erreur, vérifiez vos soudures à la loupe, vérifiez aussi si vous n'avez pas coupé le veroboard au mauvais endroits ou si vous n'avez pas mal positionné des composants.
Ne faites pas le test suivant avant que celui-ci n'ai réussi.

* 3éme test:

Reliez maintenant votre alimentation (après l'avoir testé), votre bloc secteur ou vos piles à l'interface.
Mettez le montage sous tension, et refaites rapidement le 2éme test pour vérifier que tout se passe bien.
Si c'est le cas, vous pouvez relier votre interface à l'ordinateur. Si vous avez encore des doutes, même si ils ont toutes les chances d'êtres infondés, utilisez un vieux PC.
Vous êtes maintenant impatient de la voir fonctionner, votre interface ?
La prochaine partie va vous combler !

6.Commande de l'interface avec l'ordinateur

Je vous indique comment commander votre interface, avec les langages les plus courants.
Si vous ne savez pas programmer, c'est l'occasion de vous y mettre (vous trouverez ça passionnant !); je vous conseille de commencer avec QBasic, livré gratos avec le DOS et Win95.

HEY! JE RIGOLE ! Je ne vous force pas à devenir Bill Gates ! Si vous n'avez pas envie de programmer, vous pouvez télécharger plusieurs logiciels pour commander l'interface sur mon site.

J'ai conçu un logiciel qui permet de commander directement l'interface ou de programmer des séquences d'octet à envoyer. Deux versions de mon logiciel existe : une version QBasic pour DOS, et une version pour Windows 3.11/95/98.

Remarque : QBasic est fourni gratuitement avec MS-DOS et Windows. Pour éxecuter ce logiciel, tapez la commande MS-DOS "qbasic". Si vous ne l'avez pas, cherchez dans le répertoire F:/tools/OLDMSDOS du CD-ROM de Windows.

Tant que vous y êtes, téléchargez aussi le programme pendule; cette pendule sous Windows à ceci de particulier : elle peut commander l'interface à des heures bien précises (à la seconde près !). Par exemple, allumer les diodes n1 et n3 à 15H00 et éteindre la n1 et allumer la n5 à 21H55.12. C'est très simple : il suffit de définir autant d'octet que l'on désire puis leur affecter un horaire où ceux-ci seront écrits sur le port.

Remarque : pour utiliser les logiciels sous windows, consulter la procédure d'installation. Vous aurez peut-être à télécharger un pack de dll. Rassurez-vous, les fichiers à télécharger sont très petits (au total 350 ko si vous téléchargez les trois logiciels plus le pack de dll) et la "procédure d'installation" est très simple.

Remarque : les programmes pour DOS et pour Windows que je vous ai précédement proposé de télécharger fonctionnent pour les P.C. dont le port est adressé en &H378. C'est le cas de l'écrasante majorité des P.C. actuels. Aussi, si ce n'est pas le cas, voici comment modifier le programme DOS :

Il vous faut modifier la constante Port%; pour cela, regardez les messages affichés au démarrage de votre P.C. ou bien exécutez MSD.EXE (logiciel DOS) pour connaître l'adresse du port parallèle sur lequel vous désirez connecter l'interface.
Si cette adresse est différente de &H378, vous devez modifier le programme. Ouvrez-le avec QBasic; alors remplacez la ligne :
CONST Port% = &H378
par la ligne :
CONST Port% = &Hxxx
ou 'xxx' est l'adresse du port parallèle utilisé.

Les programmes pour Windows ne peuvent pas être modifiés par vos soins. Si vous en avez besoin avec une adresse de port parrallèle différente, envoyez-moi un mail.

Ce qui va suivre concerne les personnes qui veulent programmer pour commander leur interface.
J'enchaîne par une remarque: l'interface n'utilise pas les signaux de contrôles (strobe & cie...); donc IL NE FAUT PAS utiliser des instructions prévues pour commander des imprimantes, a moins que vous soyez sado maso et que vous trouvez que Win95 ne plante pas assez souvent :-).

Avant de commencer à taper la moindre ligne de code, définissez une constante ADRSPORT% et donnez-lui la valeur de l'adresse du port sur lequel sera branché l'interface.
Pour connaître l'adresse de ce port, executez l'utilitaire DOS "MSD.EXE".
La valeur à envoyer sur le port est un entier dont la valeur est comprise entre 0 et 255, vous le savez, c'est un octet. Voici quelques exemples:

En Basic, tapez "OUT(ADRSPORT%), Valeur"
En QuickBasic, tapez "OUT ADRSPORT%,Valeur"
En Borland C++, tapez "OUTPORT(ADRSPORT%,Valeur)"
En Turbo Pascal, tapez "PORT(ADRSPORT%):=Valeur)"
Et pour le Visual Basic, cliquez ici. Vous accèderez à la page "écrire sur le port parrallèle en VB" de la partie de mon site consacrée à Visual Basic.

Maintenant, vous avez de quoi vous amuser un peu plus avec votre micro!

Au bout d'un moment, vous allez vous demander "A quoi d'intelligent peut donc bien servir ce truc que Rémy m'a fait fabriquer ?"
Réponse: à rien.
Mais non! rassurez vous; dans la prochaine et dernière partie je vous explique comment faire pour utiliser votre interface.

7.Extensions envisageables

L'interface dispose d'un connecteur extension, et je vais vous donner des idées pour vous en servir.

1ére solution :

Vous êtes électronicien, amateur ou pro, et vous affectionner particulièrement les montages utilisant des circuits logiques ? Et bien, servez-vous de l'interface pour piloter et tester vos montages; en effet, étant alimenté en +5V, les sorties du connecteur extension de l'interface sont compatibles TTL et CMOS; mais leur sortances, du fait de la présence des résistances R4, est un peu réduite (mais ce n'est pas une bonne raison pour supprimer ces résistances, qui limitent les conséquences d'un court-circuit).

2éme solution :

Les relais. A condition de ne pas avoir besoin d'une fréquence de commutation élevée, c'est la solution idéale.
En effet, avec les relais, vous pouvez commander tout ce que vous voulez; par exemple des moteur, votre machine à laver, des rayons lasers braqués sur des ovnis ou votre voisin, commuter les entrées son de votre chaîne HiFi... Bref, laissez libre court à votre imagination pour employer les 8 relais disponibles.
Je vous donne le petit schéma pour commander des relais avec votre interface:



La diode "de roue libre" 1N4001 est indispensable pour ne pas détruire le transistor.
Pour l'alimentation des relais, vous pouvez utiliser le +5 V disponible sur le connecteur extension; mais le courant total consommé par les 8 relais ne devra pas excéder 500 mA, et vous devrez munir le régulateur d'un radiateur conséquent, et choisir une alim capable de débiter 200 mA + le courant total demandé par les relais.
Là, il vaut mieux abandonner les piles...
Vous pouvez aussi utiliser un réseau darlignton sous forme de CI à la place des 2N2222, et certains comme le célèbre ULN 2803 sont déjà munis de diodes de roue libre. Je vous donne le brochage du ULN 2803 :



3éme solution :

L'utilisation de triacs (ou de transistors de puissance), pour la commande rapide de lampes notament.
C'est une solution interessante; en effet, avec l'avénement du MP3, on peut imaginer un programme qui lit des sons MP3 et qui allume en conséquence des spots reliés à l'interface, un genre de "PC disco fever" :-). Là, un impératif: isolation optique.
En effet, IL NE DOIT Y AVOIR AUCUN CONTACT ÉLECTRIQUE entre l'interface et le circuit de puissance. Je n'ai pas encore réalisé de montages employant des triacs, donc je ne vous donne pas de schéma.

4éme solution :

Le CNA. Pour commander très précisement une tension allant de 0 à 5V avec l'interface.
Si vous utilisez un CNA à résistances, tenez compte des résistances R4!
Mais le mieux, c'est d'employer un circuit intégré réalisant la fonction CNA; la précision sera au rendez-vous.
Je ne vous donne pas de schéma ici non plus, car il y a de nombreux CI qui font CNA, et le schéma est différent pour chaque. Expliquez votre cas au revendeur et demandez-lui la notice technique du CI ou bien consultez un "Mémothec électronique".

5éme solution :

Une combinaison des autres!
Par exemple, 3 sorties à relais, et un CNA à 5 bits...
Laissez libre cours à votre imagination... sans oublier les précautions à prendre.

6éme solution :

Utiliser l'interface comme périphérique visuel pour compléter votre moniteur.
Par exemple, pour peu que les 8 DELs soient alignées, utiliser l'interface comme un baragraphe indiquant l'espace de libre sur une disquette; ou bien avertir qu'une tâche de fonds est finie...
On peut aussi imaginer un programme qui espione une adresse mémoire et recopie à intervales réguliers sont contenu sur le port imprimante.
Enfin, pour un cours, expliquer de manière visuelle ce qu'est un octet aux élèves.
Bien sûr, cette solution n'emploie pas le connecteur extension, mais peut rendre des services.