Utilisation                                                               
*Du programme,
*Du port parallèle,
    Electronique
    Les sorties
    Les entrées
    Les contrôles
*Programmation
Attention

HomeHome
* Du programme
Paralleleport ,n'est pour le moment pas disponible par default par des raccourcis dans le menu K ou sur le bureau.
Il se lance donc de 2 manières différentes: "pp" et "kparelleleport".
pp s'utilise seulement en ligne de commande, et nécessites des arguments. Faîtes "pp --help" pour plus d'informations.
kparalleleport dispose d'une interface graphique.

* Du port parallèle 
Eléctronique:

broche nom      fonction
  1         Strobe  Impulsion à zéro avant envoi
  2         D0        Bit de donnée
  3         D1        Bit de donnée
  4         D2        Bit de donnée
  5         D3        Bit de donnée
  6         D4        Bit de donnée
  7         D5        Bit de donnée
  8         D6        Bit de donnée
  9         D7        Bit de donnée
  10       ACK      Bit d’état
  11        Busy    Bit d’état
  12        PE        Bit d’état
  13        Select  Bit d’état
  14        LF         Bit de contrôle en sortie
  15        ERR      Entrée
  16        INIT       Bit de contrôle en sortie
  17        Select    Bit de contrôle en sortie
  18 a 25  Masse

Les sorties:
Une sortie sur le port paralèle envoie 5 volts si elle est active, et moins quand elle n'est pas active. Ce courant peut être directement utiliser pour alimenter de petites diodes, ou alors être amplifié pour actionner de petits moteurs, ou un relais, afin d'y brancher n'importe quel apareil utilisant du courant beaucoup plus puissant ( lumière, moteur...)

Shéma éléctroniqueLe transistor utilisé étant un transistor npn. Il est parfois nécessaire d'insérer un potentiomètre variable entre +ordi et B, afin de régler la sensibilité du transistor ( lors de l'utilisation d'un relais par exemple).

+ ordi étant la sortie du port parallèle à amplifier
- ordi la masse
B la base du transistor
C le collecteur
E l'émetteur
G un générateur
M le recepteur contrôlé par le port parallèle ( relais, moteur, lumière...)





Les entrée:
Les entrées du port parallèle sont du type tout ou rien: elles sont par exemple utilisées en reliant la masse à une de ces entrées par l'intermédiaire d'un interrupteur.


Shéma électriqueMais parfois, le besoin est de relier cette entrée à un signal analogique, mais d'origine numérique, c'est à dire à un signal composé seulement d'états hauts et bas successifs, mais récupéré de manière analogique (par exemple la reception d'un signal infra rouge de télécommande grâce à une diode récéptrice).
Là aussi , il est parfois nécessaire d'insérer un potentiomètre variable entre +ordi et B, afin de régler la sensibilité du transistor afin de régler la tension de passage de l'état haut/bas.


+ signal correspond au signal à récupérer,
+ ordi à l'entrée du port parallèle,
- signal et - ordi à la masse

Les contrôles:

Ils peuvent être utilisés comme une entrée.


Programmation
Sous linux:
Programme d'exemple en C :

#include <unistd.h> /* pour libc5 */
#include <sys/io.h> /* pour glibc */
#include <asm/io.h>

int main()
{
int valeur;
if(ioperm(888, 3, 1)) // ouvre les 3 ports (888, 889, 890)
{
perror("erreur d'ouverture/fermeture du port parallèle en écriture ) ");
return(-1);
}

outb(255,888); // met toutes les broches à l'état haut (+5V)
sleep(1); // attend 1 seconde
outb(0,888); // remet les broches à l'état bas


printf("La valeur lue sur le registre d'entrée est %d\nLa valeur lue sur le registre de contrôle est %d\n",inb(889),inb(890)); // affiche les valeurs lues sur le registre de lecture (889) et de contrôle (890). Une lecture sur le port d'écriture (888) renvoie la dernière valeur écrite sur le port.

if(ioperm(888, 3, 0)) // ferme les 3 ports (888, 889, 890)
{
perror("erreur d'ouverture/fermeture du port parallèle en écriture ) ");
return(-1);
}
}


Où:
portbase au registre d'écriture ( 956 pour LPT0, 888 pour LPT1, 632 pour LPT2 (souvent, on les trouve sous forme héxadécimale)).
portbase+1 au registre de lecture,
portbase+2 à celui de contrôle.


Attention
- 2 appels successifs à ioperm(int port, int nombre, int état) avec état=1 peu provoquer un reset instantané de l'ordinateur,
- lors de l'utilisation de programmes utilisant le port parallèle avec une imprimante branchée dessus,
- à ne pas provoquer de courts circuit sur le port parallèle, celui ci étant souvent sur la carte mère.