Escolar Documentos
Profissional Documentos
Cultura Documentos
Indice
0 - Apresentação
1 - Apanhado Geral
2 - Convenções Usadas Neste Documento
3 - Endereços, Nomes, BIOS e DOS
4 - Endereços dos Registradores Internos das Portas Paralela
5 - Pinos, Sinais e Registradores de Bits
6 - Características Elétrica
7 - Como Imprimir em Uma Impressora Padrão
8 - Suporte de Impressão da BIOS
9 - As IRQ's
10 - Portas Bi-Direcionais
11 - Portas Avançadas
12 - Hardlock de Proteção Contra Cópias
13 - Transferência de dados Através da Porta Paralela
14 - Modos de Transferência e Cabos
15 - Capturando Dados Enviados Para a Impressora a Partir de Outro Computador
16 - Controlando Cargas Com as Saídas da Porta Paralela
17 - Lendo o Estado de Interruptores
0 - Apresentação:
Este documento foi feito visando aqueles que já possuem algum conhecimento de eletrônica ( digital
e analógica ) e programação. Aqui são explicados os princípios de funcionamento da porta paralela do
computador tipo PC a qual pode ser usada para trocar informações com periféricos diferentes de uma
impressora. Se você tem um projeto na qual a comunicação com um PC faça parte, então acredito que você
achará este documento interessante.
Este material é baseado no documento "Interfacing the IBM PC Parallel Printer Port" do autor
Zhahai Stewart ( zstewart@hisys.com ). Por ser de interesse geral, resolvi disponibilizar este material em
português. Estou aberto para sugestões e críticas relacionadas a este documento através do e-mail
jjowens@del.ufms.br ( James J. Owens ).
--------------------------------------------------------------------------------------------------------------------------
ESCLARECIMENTO
1 - Apanhado Geral
Este documento pode ser chamado de FAQ porque ele responde as perguntas mais comuns feitas
sobre a porta paralela do PC, no entanto sua formatação é mais próxima de um tutorial. Leia este documento
pelo menos duas vezes antes de solicitar maiores informações, as quais poderão ser dirigidas ao nosso grupo
de discussão online.
Começando com o PC original em 1980, a IBM definiu um padrão para a porta paralela das
impressoras. Esta porta usa um connector fêmea DB-25S no computador , e, no cabo, um conector
DB-25P macho e um conector Centronics macho de 36 pinos, usado para ser conectado em impressoras
paralelas de padrão Centronics. Esta diferença nos conectores do cabo é possível porque apenas a mentade os
pinos do conector Centronics são usados, o restante constitui-se de conexões terra.
Um sinal elétrico "alto" ( em um pino ou num sinal ) é equivalente a um sinal TTL alto, ou seja,
com um nível de tensão entre +2,4V e +5V. Um sinal elétrico "baixo" é equivalente a um sinal TTL baixo, ou
seja, com um nível de tensão entre 0V e +0,8V.
Em sinais com nomes como "-Strobe" ou "+Busy", o prefixo "-" implica que o sinal é "ativo em
baixo", isto é, o sinal está em seu estado ativo quando estiver eletricamente "baixo". O prefixo "+" singnifica
"ativo em alto".
Os nomes dos sinais e pinos de dados são especificados como D0, D1, ..., D7, onde D0 é o bit menos
significativo e D7 o bit de dados mais significativo. Os bits de controle de saída, são chamados de C0, C1, ...,
C5, onde C4 é usado quando a IRQ é ativada e C5 é usado para a seleção da direção dos dados, quando do
uso de portas bi-direcionais. Os bits de status são chamados de S3 a S7.
Números em notação hexadecimal são precedidos por um "0x", de acordo com a convenção adotada
pela linguagem C.
A IBM definiu três endereços base de I/O para a porta paralela. A porta paralela padrão usa o
endereço de I/O 0x378, em versões mais antigas era usado o enderço 0x278, enquanto a porta paralela usada
em adaptadores de vídeo monocrmático usam o endereço 0x3BC.
A BIOS detecta estes endereçoes ecrevendo o número 0xAA para o registrador "Data Output" ( no
endereço base + 0 ), lendo o dado no registrador "Data Feedback" ( vários endereços ), e comparando o valor
lido com o valor 0xAA, que, se for igual, indica a existência da porta. Este processo pode ser falho se os
sinais da porta paralela são alterados externamente por algum periférico ou se houver algum periférico
usando o mesmo endereço de I/O da porta paralela. A BIOS também conta o número de portas paralelas
encontradas, armazenando em um contador nos dois bits de mais alta ordem do byte 0x411 da memória
RAM.
Aviso: Exatamente antes da tabela da BIOS que contém os endereços das portas paralelas, existe
uma outra tabela de 4 words contendo os endereços base das portas seriais instaladas ( COM ). Caso você
tenha mais do que 4 portas seriais instaladas em seu computador poderá ocorrer uma sobreposição dos
endereços das portas paralelas. Mas não se preocupe, isso é bastante raro.
O DOS mapeia as portas paralelas como periféricos LPTn. O nome dado ao endereço de I/O varia
dependendo de se tratar de uma porta paralela contida em um adaptador monocormático ou não. A primeira
entrada da BIOS, no endereço 0x408, é a LPT1, a segunda entrada LPT2 e a terceira LPT3, se houver uma. O
periférico do DOS chamado de PRN nada mais é do que um sinônimo da LPT1, o que pode ser alterado
através do comando MODE. A tabelas a seguir apresenta as associações mais comuns.
Note que trocando os endereços na tabela de dados da BIOS, você estará trocando as associações
entre as portas paralelas e os nome LPT1, LPT2 ou LPT3. Os programas que fazem a troca da porta de
impressão nada mais fazem do que alterar o endereço das portas diretamente na tabela de dados da BIOS.
Os registradores de Feedback são usados para fins de diagnósticos ( exceto em portas bidirecionais,
onde Data Feedback é usado para entrada de dados )
Obs.: 1 - Alguns cabos, portas, ou conectores podem não conectar todos os pinos de terra. O pino 17 do
conector Centronics é o terra de chassi e o pino 16 é o terra lógico.
2 - As direções dos sinais são adotadas em relação ao computador, não da impressora. A linha de
IRQ ( -Ack/S6+ ) é acionada na transição para o nível positivo, sendo ativa apenas quando C4 for
1.
6 - Características Elétrica
Os pinos de saída de dados ( Data Out D0-D7 ) são interfaceados através de um latch octal
74LS374, o qual pode fornecer até 2,6mA e drenar até 24mA de corrente em cada pino. Entre cada um dos
pinos e o terra existe um capacitor de 100nF visando reduzir transientes no sinal. O manual da IBM diz: "é
essencial que o periférico conectado na porta paralela não tente levar os pinos de dados ao terra", pois isto faz
com que seja drenada mais corrente do que o 74LS374 possa fornecer sem danos.
A porta de entrada Data Feedback consiste de um buffer tri-state 74LS244, não invertido. Note que
esta porta é somente para diagnósticos - se em qualquer momento o buffer do 74LS244 não corresponder aos
dados sendo enviados através de Data Out, isto significa que houve um erro. A exceção ocorre em portas bi-
direcionais que permitem que o 74LS374 fique em tri-state, permitindo que a porta Data Feedback seja usada
como uma porta de entrada legítima.
Os sinais Control Out ( C0-C3) são manipulados por uma porta inversora 7405 com coletor em
aberto, sendo levado ao nível TTL alto de +5v através de resistores de 4,7K em pull-up. Todas os sinais são
invertidos antes de saírem através da porta, exceto C2, que é invertido duas vezes antes de ser colocado no
pino 16 do DB25.
A porta de entrada Control Feedback também inverte todos os sinais, com exceção de C2, cujo sinal
não passa por nenhum inversor. É possível usar alguns ou todos os sinais de controle como entrada, bastando
para isso programar o sinal correspondente para um nível alto ( lembre-se que ocorre uma inversão nas portas
C0, C1 e C3 ), uma vez que as saídas do Control Feedback são com coletor em aberto e o nível de tensão
mantido por um pull-up de resistores de 4,7K. Desta forma, qualquer sinal alto aplicado externamente nestes
pinos será mantido em nível alto até que o sinal aplicado seja levado para um nível baixo. O sinal pode ser
lido através do registrador de feedback correspondente.
Isto é o que era definido para as impressoras matriciais da IBM, o que, ainda hoje, é compatível com
a maioria das impressoras com interface Centronics de 36 pinos.
Após algum tempo a impressora enviará o sinal -Ack baixo por pelo menos 5us, indicando que o
dado foi recebido. Modifique os outros sinais de controle ou verifique os outros sinais de status como desejar.
A ROM BIOS do computador detecta e inicializa as portas paralelas durante o boot. Ela também
provê suporte para impressão através da INT 0x17 ( indiretamente também através da INT 0x5 - "Print
Screen" ). O processo de detecção e armazenamento dos dados das portas paralelas foi discutido
anteriormente.
Para controlar a impressora através da BIOS, faça uma chamada para a INT 0x17 com o número da
porta de impressão no registrador DX ( 0 a 3, indexado de acordo com as entradas na tabela de dados da
BIOS no endereço 0x408, conforme explicado anteriormente ), e a função desejada em AH.
Valor Ação
----------------------------------------------------------------------------------------------------------
AH=0 imprima o caractere em AL
AH=1 reinicialize a porta, retornando o status em AH
AH=2 retorne o status da impressora em AH
Notas:
- Envia um sinal baixo através de C2 por uns 500us, isto é, envia um pulso baixo
através de -Init
A BIOS retorna o status da impressora ( função AH=1 ou AH=2 ) através do registrador AH. A
tabela abaixo descreve o significado de cada um dos bits retornados:
Bits do Descrição
Reg AH
-------------------------------------------------------------------------------------------------------------------
bit 0 Time Out, ocorre quando a impressora demora a responder
bit 1 Não usado
bit 2 Não usado
bit 3 Erro de I/O, pino S3 baixo
bit 4 Impressora Selecionada, pino S4 alto
bit 5 Sem Papel, pino S5 alto
bit 6 Acknolodge, pino S6 baixo
bit 7 Não Ocupado ( Not Busy ), pino S7 baixo
Os 5 bits de mais alta ordem nada mais são do que os bits lidos diretamente no registrador Status In,
sendo os bits 3, 6 e 7 invertidos em relação a este registrador, uma vez que eles são ativos em baixo. O bit 0 é
gerado pela BIOS após um tempo de Time Out, no qual a impressora não respondeu a solicitação de
impressão.
9 - As IRQ's:
Os adaptadores secundários de impressão ( endereço base 0x278 ) utiliza a IRQ 5 ( INT 0x0D ) para
sua interrupção de hardware. Observe que hoje em dia esta interrupção é "roubada" para outros usos, como
vídeo EGA, placas de som, placas de rede, e outros.
Aparentemente a idéia era fazer com que as IRQ's de impressão fizessem parte dos Drivers de
Impressora ( programa responsável pela comunicação com a impressora ), da mesma forma que acontece com
as IRQ's associadas as portas de comunicação serial. Infelizmente a temporização típica de uma impressora
não permitem o uso adequado destas IRQ's, desta forma quase todos os programas de impressão para o DOS
não usam a IRQ para imprimir. Hoje, com a utilização de sistemas multitarefa, como o Windows 95/98, é
feito um uso extenso da IRQ pelos drivers da impressora, permitindo o gerenciamento de eventos de
impressão enquanto reallizam outras tarefas com o computador. A IRQ da porta de impressão também é
bastante utilizado por alguns programas de transferência de dados para aumentar o desempenho desta
trasferência.
10 - Portas Bi-Direcionais:
A série de computadores IBM PS/2 acrescentou uma nova característica às portas paralelas: bi-
direcionalidade. Isto foi feito pelo acréscimo de mais um bit no registrador Control Out (C5), responsável por
colocar a porta Data Out em tri-state. Quando o bit C5 é 0, a porta Data Output opera como qualquer porta
paralela, quando o bit C5 é 1 a porta Data Out é colocada em tri-state, o que, essencialmente, é como se os
pinos estivessem eletricamente disconectados, ou em estado de alta impedância , não apresentando nem um
nível baixo nem um nível alto. Isto permite que o registrador Data Feedback seja efetivamente usado para ler
sinais TTL externamente colocados na porta de dados ( D0-D7 ), fazendo com que, seja usada para a leitura
de dados.
É interessante observar que os IBM PC originais e seus clones tinham tudo o que é necessário para
implementar a bi-direcionalidade nas suas portas paralelas. O chip 74LS374 possui um pino "Enable" o qual
pode ser usado para colocar seus oito bits de saída em tri-state, no entanto, este pino era normalmente
conectado ao terra, fazendo com que o chip permanecesse permanentemente habilitado. O latch 74LS174
usado nos pinos C0-C4 é um latch de 16 bits, sendo seu pino de entrada 6 conectado à linha 5 de seleção do
bus. Este bit é chaveado ( latched ) quando você escreve para o registrador Control Register, no entanto a
saída correspondente ( Q6 no 74LS174 ) não é usada por nada. Se você cortar a conexão com o terra no pino
1 ( /OE ) do 74LS374, e conectar este no pino 15 (Q6) do 74LS174, então, EURECA, você terá uma porta
paralela bi-direcional. Isto só vai funcionar nas antigas portas paralelas com componentes TTL discretos. A
teoria é que inicialmente a IBM tinha o plano de diponibilizar a bi-direcionalidade na porta paralela desde o
início, mas no último momento decidiu omitir esta característica.
Hoje a maioria das portas paralelas são bi-direcionais, mas montadas em um único chip LSI. No
entanto, você deve certificar-se de que sua porta é bi-direcional antes de tentar usá-la como tal.
Observe que por muito tempo as pessoas utilizaram as portas paralelas não bi-direcionais como uma
porta de entrada de dados. Para isso, basta enviar o dado 0xFF ( todos os bits em 1 ) para o registrador Data
Out, desta forma, qualquer sinal que seja externamente levado a um nível baixo poderá ser lido como um 0 no
registrador Data Feedback, isto porque o nível TTL baixo tende a ser mais "forte" do que um nível TTL alto,
vencendo quando existem dois sinais "brigando" na mesma linha. Um sinal externa alto, ou a ausência de
sinal, manterá o pino correspondente em nível alto ( 1 ). Este procedimento NÃO É RECOMENDADO, pois
causa estresse no 74LS374 ( ou equivalente ) além dos níveis para o qual ele foi feito, podendo danificar o
componente. De qualquer forma, algumas pessoas dizem que fazeram isso por anos, sem problema. Observe
que atualmente as portas paralelas são implementadas em um único chip LSI, apresentando diferentes níveis
de capacidade, margens de segurança e custos de substituição. Além disso esses chips normalmente englobam
outras funções, como controlador de vídeo, controlador de portas seriais ou controlador de disco. Leve estes
fatores em consideração antes de tentar este procedimento. Se sua porta paralela for constituida de portas
TTL discretas ( com um chip 74LS374, de preferência em soquete ), será fácil trocar o componente caso ele
pare de funcionar. Recomenda-se adquirir alguamas placas controladoras antigas ( com componentes
discretos ) em lojas de "sucata" para se poder fazer experiências com a porta paralela.
Uma última observação: se você utiliza sua porta paralela para leitura de dados, tenha certeza de
colocar o registrador Data Out em tri-state antes de conectar qualquer periférico que altere os níveis lógicos
nos pinos de dados. Quando eu estou trabalhando com este tipo de periféricos eu coloco um pequeno
programa no meu AUTOEXEC.BAT para colocar as portas paralelas em tri-state toda vez que inicio meu
computador. Você também pode usar resistores em linha para, pelo menos, diminuir a corrente nas portas
para valores aceitáveis.
Steven M. Scharv ( scharf@mirage.nsc.com ) observou que alguns chips controladores de portas
paralelas travam o bit de seleção de direção ( C5 ) para evitar que algum programa "descuidado" troque
acidentalmente a direção da porta. Especificamente ele disse que o bit 7 do registrador PTR da controladora
universal da National Semicondutores deve ser 1 antes de você poder alterar a direção do bit de seleção da
direção ( C5 ). Eu não tenho a documentação deste chip e não sei qual é este registrador PTR; por hora
considere apenas este alerta: alguns chips podem "travar" o bit de controle de direção da comunicação, e isso
pode variar de uma controladora para outra.
11 - Portas Avançadas:
Existem pelo menos dois tipos novos de portas paralelas, a EPP ( Enhanced Parallel Port - Porta
Paralela Avançada ) e a ECP ( Enhanced Cabability Port - Porta com Capacidades Avançadas ), com
características mais avançadas.
Para maiores informações sobre o funcionamento específico destas portas, consulte os documentos:
Interfaceando o PC Através da Porta Paralela Avançada ( EPP ) e Interfaceando o PC Através da Porta
Paralela de Capacidades Avançadas ( ECP ).
Os Hardlocks tipicamene monitoram a linha de dados em busca de um padrão de bits enviados sem o
correspondentes sinal de -Strobe. Isto é, o programa de proteção contra cópias envia diversos padões de bits
para a linha de dados, sem enviar qualquer pulso de -Strobe, fazendo com que a impressora ignore todos os
dados enviados. Apesar de este ser o método mais comum, nem todos os hardlocks funcionam desta maneira.
Existem casos de portas paralelas que colocam a porta em estado de tri-state entre cada byte enviado.
O hardlock que estiver conectado nesta porta, vai então encontrar um padrão de bits 0xFF entre cada dado
enviado para este, sendo para ele impossível reconhecer o padrão de dados usado para destravar o programa.
Os hardlocks também drenam corrente das linhas de sinal. Todos ele são projetados para operar com
o mínimo consumo, no entanto algumas vezes a porta paralela não é capaz de suprir esta corrente, fazendo
com que o hardlock não funcione.
Existem três formas básicas de conectar dois computadores através da porta paralela. A forma mais
comum é conectar os pinos D0 a D4 ( ou D3 a D7 ) de uma porta, aos pinos S3 a S7 da porta paralela do
outro computador, e vice-versa. Desta maneira, 4 bits de dados podem ser enviados de um computador (
através dos pinos D0 a D4 ou D3 a D7 ) e lidos pela porta paralela do outro computador nos pinos S3 a S7.
Um pino extra pode ser usado para a sincronização da transferência, simulando um sinal Data Ready ( Dado
Pronto ). Neste esquema, você deve lembrar-se que os sinais S3-S6 são lidos invertidos em relação aos bits
que foram enviados através dos pinos D0-D3 do outro computador. O sinal S7 não é invertido, mantendo o
mesmo valor do bit enviado em D4 ( ou D3-D6 e D7 respectivamente, para o outro modo de conexão ).
Modo 1A: Modo Nibble, usando a conexão dos pinos de Data Out ao Status In.
Esta versão funciona em todos os tipos de portas paralelas e é usada em diversos programamas
comerciais de transferência de dados.
Terra 25 == 25 Terra -
Modo 1B: Modo Nibble, usando os pinos Data Out conectados aos pinos Status In
Esta versão funciona com todos os tipos de portas paralelas.
Terra 25 == 25 Terra -
Modo 1C: Modo Nibble, usando os pinos Data Out conectados aos pinos Status In. Neste modo são
usados pinos de controle adicionais para permitir um protocolo de transferência de dados mais eficiênte. Esta
versão funciona com todos os tipos de portas paralelas.
Terra 25 == 25 Terra -
*Nota: Os bits de Control Out do receptor devem ser setados em alto, isto é, C0=0, C1=0, C3=0 e
C2=1. Desta forma, o receptor poderá ler os bits enviados pelo transmissor a partir do
registrador Control Feedback. Veja o item 6 ( Características Elétrica ) para maiores
informações
Terra 25 == 25 Terra -
* Nota: Apenas em portas bi-direcionais; o lado receptor deve estar em tri-state, com o sinal C5
em 1.
Se duas portas bi-direcionais são conectadas desta forma, e se ambas estiverem habilitadas ao
mesmo tempo ( logo após o boot por exemplo ) com sinais diferentes nos pinos de dados, então o 74LS374,
ou equivalente, poderá queimar. Seja cuidadoso. Uma forma de evitar este problema seria conectar resistores
de 8K ou 10K em série com os pinos de dados para limitar a corrente nestes casos (atualmente são usados
resistores em linha ( SIP ) ou encapsulados no formato DIP, os quais podem ser inseridos dentro do conector
do DB25 utilizado) . Os resistores devem ter um valor alto o suficiente para evitar uma sobrecorrente de uma
porta para outra quando ambas estiverem habilitas, e, ao mesmo tempo, baixos o suficiente para permitir que
quando uma das portas estiver desabilitada ( tri-state ), o sinal TTL seja reconhecido pela porta do receptor.
Modo 3A: 8 bits, usando os pinos do Control Output ( com coletor em aberto ) como entrada de
dados. Esta versão utiliza 4 pinos do Control Output mais 4 pinos do Status Input como entrada e funciona
em todos os tipos de porta paralela.
Lado 1 Pino Direção Pino Lado 2 Conexão
---------------------------------------------------------------------------------------------------------------------
D0 2 =>* 1 C0- invertida
D1 3 =>* 14 C1- invertida
D2 4 =>* 16 C2+ direta
D3 5 =>* 17 C3- invertida
D4 6 => 13 S4+ direta
D5 7 => 12 S5+ direta
D6 8 => 10 S6+ direta
D7 8 => 11 S7- invertida
Terra 25 == 25 Terra -
* Nota: Os pinos do Control Output utilizados devem ser programanos para o nível alto, isto é,
C0=0, C1=0, C3=0 e C2=1.
Modo 3B: 8 bits, utilizando os pinos do Control Output ( com coletor em aberto ) como entrada de
dados. Esta versão utiliza 3 pinos do Control Output e 5 pinos do Status In como entrada. Lembre que a porta
Control Output é bidirecional, ou seja, desde que mantida internamente em nível alto, poderá ser aplicado um
nível baixo externamente e este sinal poderá ser lido na porta Control Output Feedback.
*Nota: As saídas do Control Output devem ser programadas para nível alto, isto é, C0=0, C1=0,
C2=1 e C3=0
15 - Capturando Dados Enviados Para a Impressora a Partir de Outro Computador:
Um computador com uma porta paralela bi-direcional, conectada com um cabo de Modo 2, é
potencialmente capaz de caputurar qualquer dado enviado para a porta. Para isso é necessário configurar a
porta de dados e setar os valores corretos no Control Output para simular uma impressora através das linhas
de status do outro computador. Num caso geral o problema está em detectar por software o pulso de -Strobe,
que ocorre muito rapidamente. Você poderia colocar um latch acionado por transição conectado ao -Strobe,
desta forma você poderia manter o nível do -Strobe por um tempo suficiente para a leitura. É necessário
manter um controle sobre o -Busy para evitar a sobreposição de dados na porta.
O controle de cargas através dos pinos de saída da porta paralela é muito simples, você pode usar os
sinais TTL do Data Out para controlar quaisquer circuitos de lógica TTL. Infelizmente as linhas da porta
paralela não são capazes de fornecer muita corrente ( no máximo 2,6mA ) e você deve tomar muito cuidado
para não exceder este limite. Alguns circuitos implementados em lógica LSI podem permitir mais ou menos
corrente, mas em geral permitem menos.
Se você tiver uma fonte externa de +5v, existem duas opções: usar o Data Output para drenar até
24mA da sua fonte de +5v ou usar chips de buferização para controlar níveis mais elevados de corrente ou
tensão. Uma idéia seria usar uma fonte externa de +5v ( regulada de preferência ) mais fotoaclopadores de
estado sólido para fazer a interface com a carga, permitindo o controle de tensões alternadas ( obviamente, é
importante manter tensões alternadas bem isoladas dos seus circuitos de lógica digital ).
Utilize resistores em série se você precisar limitar a corrente. Digamos que a sua carga seja
constituida de LED's ( ou fotoaclopadores ) através dos quais você deseja passar 20mA. As saídas Dn
possuem uma queda de tensão de aproximadamente 0,7v para o dreno, o LED possui uma queda de tensão
típica de 1,9v ( verifique as características do LED que você está usando para verificar a queda de tensão ),
assim: 5v - 0,7v - 1,9v = 2,4v. Deste modo, um resistor de: 2,4v/20mA = 120ohms deverá ser colocado em
série com o LED para que a corrente se limite a 20mA.
Você também pode usar os pinos do Control Output. Eles não são capazes de fornecer muita
corrente ( cerca de 1mA através dos resistores de 4,7K em +5v ). A corrente de dreno situa-se na ordem de
7mA. As características elétricas de cada porta paralela variam bastante quanto ao Control Output, desta
forma, seja cuidadoso em não ultrapassar os limites máximos de corrente. A porta Control Output é indicado
para a leitura de níveis TTL externos, sendo capaz de operar diretamente com um fotoaclopador de estados
sólido no modo de dreno.
Uma aplicação muito comum consisite no uso de dois latches 74ACT374, os quais podem fornecer
até 48mA e drenar até 64mA. Você pode conectar as 8 entradas dos latches aos pinos do Data Output e ligar
o pino de Clock a dois pinos do Control Output. No progrma, envie o dado através de Data Output, envie um
pulso no pino Cn para um latch, coloque outro dado na porta e envie um pulso para o outro latch 74ACT374
e pronto: você tem uma porta de 16 bits de saída, capazes de fornecer até 48mA. É claro que você precisa de
uma fonte externa de +5v para acionar alimentar os latches.
Existem diversas maneiras de ler os estado de interruptores através da porta paralela. Até quatro
interruptores ( botoeiras, chaves de contato, red-switch, etc ) podem se diretamente conectados entre pinos do
Control Output e o terra ( pinos 1, 14, 16 e 17 ), o programa de controle deve colocar todos os bits do Control
Output em 1 e usar o Control Output Feedback para ler o estado dos interruptores ( não esqueça de considerar
a inversão existente nestes sinais ).
Outra forma seria utilizar 5 resistores de pull-up ( 4,7K ) entre as linhas de status e uma fonte
externa de +5v. O interruptor, conectado entre a linha de status e o terra, é utilizado então para levar o nível
da linha de status para 0. Uma desvantagem deste método é que você precisa utilizar uma fonte externa de
+5v.
Você pode usar este mesmo esquema para as oito entrada das linha de dados de uma porta paralela
bidirecional - lembre-se de ter certeza de que as linhas de dados estão em tri-state antes de aplicar qualquer
sinal externo, ou o 74LS374 ( ou equivalente ) irá estragar, isto é especialmente inportante após o boot do
computador, onde o estado inicial dos pinos de dados é desconhecido. Uma forma de resolver este problema é
com a colocaçã de resistores limitadores de corrente em série ( 1K ) com as linhas de dados. Melhor ainda
seria colocar também resistores de pull-up nas linha de dados.
--------------------------------------------------------------------------------------------------------------------------------
Versão 0.96 01/09/94 Zhahai Stewart zstewart@hisys.com
Versão 0.96.1 24/02/99 James J. Owens jjowens@del.ufms.br