segunda-feira, 5 de janeiro de 2009

Novo endereço

Como o blogspot estava minando o meu já reduzido conhecimento de programação web, escolhi mudar para um outro servidor o qual poderia praticar algumas práticas que aprendi.

Novo endereço: www.mecatrons.xpg.com.br

quarta-feira, 17 de dezembro de 2008

Prototipagem do hardware acesso a porta paralela.




1.    Definição dos pinos da porta paralela e seus conectores:


CONECTORES E SEUS PINOS



DB25(FÊMEA)

CENTRONICS(FÊMEA)

Pinos

DB-25

Pinos

Centronics

Descrição dos pinos

Direção do sinal
(até o PC)

Função dos sinais

1

1

STROBE

Saida

Clock

2

2

DATA Bit 0

Saida

Dados

3

3

DATA Bit 1

Saida

Dados

4

4

DATA Bit 2

Saida

Dados

5

5

DATA Bit 3

Saida

Dados

6

6

DATA Bit 4

Saida

Dados

7

7

DATA Bit 5

Saida

Dados

8

8

DATA Bit 6

Saida

Dados

9

9

DATA Bit 7

Saida

Dados

10

10

ACKNLG

Entrada

Acknowledge

11

11

BUSY

Entrada

Busy

12

12

POUT

Entrada

End Paper

13

13

SEL

Entrada

Select out

14

14

Auto Feed XT

Saida

Autofeed

15

32

FAULT

Entrada

Error

16

31

INIT

Saida

Init

17

36

SLCT IN

Saida

Select In

18-25

16, 17, 19-30, 33

Ground/Terra

N/A






   
















































 2.Sugestões para a prototipagem do hardware:

Na figura abaixo foram usados os pinos de dados D0 – D7. Para que fosse feito o comando externos de dispositivos, neste caso LEDs. O acesso a estas saidas de dados é possível pela endereço 0x378 da porta paralela.

Nos posts anteriores, os codigos escritos em C/C++ e em Java usam esta porta para enviar os sinais aos Bits.


Já na figura abaixo usamos o endereço 0x37A da porta paralela. Com o endereço 0x37A podemos controlar os bits do Byte de controle, que são os pinos 1(Strob), 14(Autofeed),16(Init) e 17 (Select In), no padrão DB25.

Para que seja possível o reaproveitamento dos codigos exemplos, dos artigos sobre porta paralela, são necessárias as sequintes modificações nos codigos:

 

             i.  Declarar o endereço 0x37A, nos locais apropriados, para que o software envie os sinais aos pinos corretos;

             ii. Ressalta-se que:

a. Os pinos 1(strob), 14(Autofeed) e 17(Select In), trabalham com lógica invertida. Ou seja, o sinal estará ativo com 0(zero) na porta.

b. Os valores(em decimal) de ativação para cada (bit) (pino) de controle são:

                                      i.      Pin 1 ( Strob) = 3

                                      ii.      Pin  14 (Autofeed) = 15

                                      iii.      Pin 16 (Init) = 9

                                      iv.      Pin 17 (Select In) = 10

1.   Desativar todos  = 11

2.   Ativar todos = 4


No diagrama abaixo está representado um esquema para a leitura de sinais do meio externos,  gerados por meio de sensores para dentro do PC.

A recepção de sinal se faz pelo endereço  0x379, da porta paralela aliado aos procedimentos inpouts/reads da linguagem a ser usada na confção do software.

São responsáveis pela recepção de sinais externos os pinos 10(Acknowledge), 11(Busy), 12(End paper), 13(Select out) e 15(Error), da porta paralela padrão DB25.

             No esquema foi usado um (Buffer)74LS541 para amplificar o sinal e também para impedir o acesso direto dos sinais à sua porta paralela.


  74LS541 - datasheet


3. Atenção:

  • Enviar qualquer sinal elétrico para dentro do PC, compreende em risco de queima do equipamento caso o usuário não tome as devidas precauções e não tenha o conhecimento necessário para fazê-lo.
  • Os esquema para a recepção de sinais não foi testado durante a redação deste post, havendo ocorrido estes testes um momentos passados. Para o esquema de recepção de sinais  houve apenas a simulação do circutio via ISIS.
  • Todos os exemplos foram desenvolvidos com a porta paralela no seu modo pardrão.
  • Não me responsabilizo por quaisquer danos causados ao equipamento, ou na confecção dos circuitos.
  • Fonte externa de pesquiza e compilação dos dados, o site do Rogério: www.rogercom.com