Sophie

Sophie

distrib > Mandriva > 9.0 > i586 > by-pkgid > 0d5cd12c82d627a82c59047e1ba7b8a9 > files > 1776

howto-html-fr-9.0-0.2mdk.noarch.rpm

<HTML>
<HEAD>
<TITLE>Quelques ports utiles</TITLE>
</HEAD>
<BODY>
<H1>3. <A NAME="s3"></A>Quelques ports utiles</H1>
<P>
<A HREF="IO-Port.html#toc3">Contenu de cette section</A></P>

<P></P>
<P>Voici quelques informations concernant la programmation des ports les plus
courants, pouvant servir, &agrave; des fins diverses, d'E/S TTL.</P>
<P></P>
<H2>3.1 <A NAME="ss3.1"></A> Le port parall&egrave;le </H2>

<P> Le port parall&egrave;le (BASE = 0x3bc
pour /dev/lp0,
0x378 pour /dev/lp1 et 0x278 pour /dev/lp2)~: {source~: <EM>IBM
PS/2 model 50/60 Technical Reference</EM>, et quelques exp&eacute;riences}</P>
<P>En plus du mode standard, monodirectionnel en sortie, il existe, pour la
plupart des ports parall&egrave;les, un mode "&eacute;tendu"
bidirectionnel. 
Ce mode poss&egrave;de un bit de sens qui peut &ecirc;tre positionn&eacute;
en lecture 
ou &eacute;criture. Malheurement, j'ignore comment s&eacute;lectionner ce mode 
&eacute;tendu (il ne l'est pas par d&eacute;faut)...</P>
<P>Le port BASE+0 (port de donn&eacute;es) contr&ocirc;le les signaux de
donn&eacute;es du port 
(D0 &agrave; D7 pour les bits 0 &agrave; 7, respectivement~;
&eacute;tats~: 
0 = bas (0V), 1 = haut (5V)). Une &eacute;criture sur ce port recopie
(<EM>latches</EM>, NDT)
les donn&eacute;es sur les broches. En mode d'&eacute;criture standard ou
&eacute;tendu, une
lecture renvoie les derni&egrave;res donn&eacute;es &eacute;crites. En mode
de lecture 
&eacute;tendu, une lecture renvoie les donn&eacute;es pr&eacute;sentes sur
les broches 
du p&eacute;riph&eacute;rique connect&eacute;.</P>
<P>Le port BASE+1 (port d'&eacute;tat), en lecture seule, renvoie l'&eacute;tat
des signaux
d'entr&eacute;e suivants~:
<DL>
<DT><B>Bits 0 et 1</B><DD><P>r&eacute;serv&eacute;s.</P>
<DT><B>Bit 2</B><DD><P>IRQ status (ne correspond &agrave; aucune broche, j'ignore comment il se
comporte)</P>
<DT><B>Bit 3</B><DD><P>-ERROR (0=haut)</P>
<DT><B>Bit 4</B><DD><P>SLCT (1=haut)</P>
<DT><B>Bit 5</B><DD><P>PE (1=haut)</P>
<DT><B>Bit 6</B><DD><P>-ACK (0=haut)</P>
<DT><B>Bit 7</B><DD><P>-BUSY (0=haut)</P>
</DL>

(Je ne suis pas certain des &eacute;tats hauts et bas.)</P>
<P>Le port BASE+2 (port de contr&ocirc;le), en &eacute;criture seule (une
lecture renvoie
la derni&egrave;re donn&eacute;e &eacute;crite), contr&ocirc;le les signaux
d'&eacute;tats 
suivants~:
<DL>
<DT><B>Bit 0</B><DD><P>-STROBE (0=haut)</P>
<DT><B>Bit 1</B><DD><P>AUTO_FD_XT (1=haut)</P>
<DT><B>Bit 2</B><DD><P>-INIT (0=haut)</P>
<DT><B>Bit 3</B><DD><P>SLCT_IN (1=haut)</P>
<DT><B>Bit 4</B><DD><P>si positionn&eacute; &agrave; 1, autorise l'IRQ associ&eacute;e au port
parall&egrave;le
(qui intervient lors de la transition de -ACK de bas &agrave; haut).</P>
<DT><B>Bit 5</B><DD><P>commande le sens du mode &eacute;tendu (0 = &eacute;criture, 1 = lecture),
en &eacute;criture seule (une lecture ne renvoie rien d'utile
sur ce bit).</P>
<DT><B>Bits 6 et 7</B><DD><P>r&eacute;serv&eacute;s.</P>
</DL>

(L&agrave; non plus, je ne suis pas certain des &eacute;tats hauts et bas.)</P>
<P>Brochage (un connecteur 25 broches femelle sur le port) (<EM>e</EM>=entr&eacute;e,
<EM>s</EM>=sortie)~:</P>
<P><B>1</B><EM>es</EM> -STROBE, 
<B>2</B><EM>es</EM> D0, 
<B>3</B><EM>es</EM> D1, 
<B>4</B><EM>es</EM> D2, 
<B>5</B><EM>es</EM> D3, 
<B>6</B><EM>es</EM> D4, 
<B>7</B><EM>es</EM> D5, 
<B>8</B><EM>es</EM> D6, 
<B>9</B><EM>es</EM> D7, 
<B>10</B><EM>e</EM> -ACK, 
<B>11</B><EM>e</EM> -BUSY, 
<B>12</B><EM>e</EM> PE, 
<B>13</B><EM>e</EM> SLCT, 
<B>14</B><EM>s</EM> AUTO_FD_XT, 
<B>15</B><EM>e</EM> -ERROR,
<B>16</B><EM>s</EM> -INIT, 
<B>17</B><EM>s</EM> SLCT_IN, 
<B>18-25</B> Masse.</P>
<P>Les sp&eacute;cifications d'IBM pr&eacute;cisent que les broches 1, 14, 16
et 17 (les
sorties de contr&ocirc;le) sont &agrave; collecteurs ouverts,
connect&eacute;es au 
5V &agrave; travers des r&eacute;sistances de 4,7kiloohms (puits 20mA,
source 0,55mA, 
niveau de sortie haut 5V moins la tension aux bornes de la
r&eacute;sistance). Les autres
broches ont un courant de puits de 24mA, de source de 15mA et leur niveau
de sortie haut est sup&eacute;rieur &agrave; 2,4V. L'&eacute;tat bas dans
les deux cas est
inf&eacute;rieur &agrave; 0,5V. Il est probable que les ports
parall&egrave;les des clones
s'&eacute;cartent de cette norme.</P>
<P>Enfin, un avertissement~: attention &agrave; la mise &agrave; la masse.
J'ai
endommag&eacute; plusieurs ports parall&egrave;les en les connectant alors
que la machine
fonctionnait. Il est conseill&eacute; d'utiliser un port parall&egrave;le
non int&eacute;gr&eacute; 
&agrave; la carte m&egrave;re pour faire des choses pareilles.</P>
<P></P>

<H2>3.2 <A NAME="ss3.2"></A> Le port jeu</H2>

<P>Le port jeu (ports 0x200-0x207)~: je n'ai pas de sp&eacute;cifications
l&agrave;-dessus,
mais je pense qu'il doit y avoir au moins quelques entr&eacute;es TTL et un
peu de
puissance en sortie. Si quelqu'un poss&egrave;de plus d'informations, qu'il
me le
fasse savoir...</P>
<P></P>

<H2>3.3 <A NAME="ss3.3"></A> E/S analogiques </H2>

<P> Si vous voulez des E/S analogiques, vous pouvez
connecter des circuits convertisseurs analogiques-num&eacute;riques (ADC) et/ou
num&eacute;riques-analogiques (DAC) sur ces ports (astuce~: pour
l'alimentation, utilisez un connecteur d'alimentation (de lecteur)
inutilis&eacute;
que vous sortirez du boitier, &agrave; moins que votre composant ne consomme
tr&egrave;s
peu, auquel cas le port lui-m&ecirc;me peut fournir la puissance). Sinon,
achetez
une carte AD/DA (la plupart sont contr&ocirc;l&eacute;es par les ports
d'E/S). Ou, si
vous pouvez vous contenter de 1 ou 2 voies, peu pr&eacute;cises, et
(probablement)
mal r&eacute;gl&eacute;es en z&eacute;ro, une carte son &agrave; bas prix,
support&eacute;e 
par le pilote sonore de Linux, devrait faire l'affaire (et se montrera
plut&ocirc;t rapide).</P>
<P></P>

<HR>
<P>
Chapitre <A HREF="IO-Port-4.html">suivant</A>,
Chapitre <A HREF="IO-Port-2.html">Pr&eacute;c&eacute;dent</A>
<P>
Table des mati&egrave;res de <A HREF="IO-Port.html#toc3">ce chapitre</A>,
 <A HREF="IO-Port.html#toc">Table des mati&egrave;res</A> g&eacute;n&eacute;rale</P>
<P>
<A HREF="IO-Port.html">D&eacute;but</A> du document,
 <A HREF="#0"> D&eacute;but de ce chapitre</A></P>
</BODY>
</HTML>