Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - andesgui

#1
Para encender tantos led vas a tener que usar algun tipo de bufer como el 7406. o con transistores y siempre con una fuente externa ya que el puerto paralelo no puede entregar tanta corriente.
con la ayuda de los otros 4 pines de salida del puerto y con 4 transistores puedes llegar a controlar 24 leds. siempre con alimentacion externa.
Supongo que otra manera seria con un multiplexor o algo asi.
#2
Nunca medi con el tester alguno de los pines del status port pero no deberian tener voltaje ya que son pines de entrada. de todas maneras no importaria si aun asi lee lo que uno le ponga en cada pin, 0v o 5v.

pin 11--> Busy  (como este pin esta negado cuando se pone un cero logico o 0v lee un 1 logico o 5v, o lee 0v cuando se aplica 5v o un 1 logico en ese pin)
pin 10-->Acknowlege (lee 1 cuando se palican 5v y cero cuando se aplica 0v)
pin 12--> no paper (lee 1 cuando se palican 5v y cero cuando se aplica 0v)
pin 13--> selected (lee 1 cuando se palican 5v y cero cuando se aplica 0v)
pin 15--> error (lee 1 cuando se palican 5v y cero cuando se aplica 0v)

La linea busy generalmente tiene una resistencia de pull up interna, es un estandar que las lineas sean ttl.

puedes conectar una serie de llaves derecho al pin y que cuando se activen manden ese pin a masa o a 5 volts y asi leer los diferentes estados, si lo que quieres es controlar algo que se maneje con voltajes mayores que 5 volts ahi si tendrias que conctar esos pines a travez de optoacopladores o reles.
Espero haberme explicado
#3
Para huerto123:
La diferencia de cables paralelo pin a pin y laplink es que el primero los pines estan conectados el 1 con el 1, el 2 con el 2... y asi susecivamente hasta el 25 con el 25.
si se conectan dos pcs asi se corre el riesgo de QUEMAR el puerto paralelo.
en cambio el segundo que es el que tu tienes se conectan
pc1                                pc2
data bit0 (pin 2)-------->error(pin15)
data bit1 (pin3)--------->select(pin13)
data bit2 (pin4)--------->paper out(pin12)
data bit3 (pin5)--------->acknowledge(pin10)
data bit4(pin6)---------->busy(pin11)
acknowledge(pin10)---->data bit3(pin5)
busy(pin11)-------------->data bit4(pin6)
paper out(pin12)-------->data bit2(pin4)
select(pin13)------------>data bit1(pin3)
error(pin15)------------->data bit0(pin2)
reset(pin16)------------->reset(pin16)
select(pin17)------------->select(pin17)
gnd(pin25)---------------->gnd(pin25)

para comprender mejor:
http://hwb.sunsite.dk/ca_InterLink.html
http://support.microsoft.com/kb/q142324/

espero que sea de utilidad.
#4
Para Jbom:
Si lo que quieres hacer se puede, puedes conectar la salida de un amplificador a la entrada de la placa de sonido pero no directamente porque quemarias la entrada de la placa de sonido, tendrias que fabricar un divisor resistivo, el tema es que tienes que buscar informacion sobre tu placa de sonido para ver cual es el voltaje maximo permitido (eso creo que es estandard y se encuentra en el orden de los milivolt) pero no se cuanto con exactitud.
repito NO CONECTES derecho la salida del amplificador a la entrada de la placa de sonido.
#5
No entiendo bien lo que queres hacer. pero otra duda, que cable usas para conectar las dos pcs?
un paralelo de pin a pin? o un paralelo laplink como el que hay en esta pagina:

http://hwb.sunsite.dk/ca_InterLink.html

si el cable es pin a pin no creo que ande muy bien la cosa.
#6
huerto123

tu pregunta me hizo ir al primer mensaje de este hilo y al leerlo conteste parcialmente mi duda, vamos lo que dijo BADBYTE-K:

podemos ordenar cada uno de los bytes

Dataport

pin 2 - D0
pin 3 - D1
pin 4 - D2
pin 5 - D3
pin 6 - D4
pin 7 - D5
pin 8 - D6
pin 9 - D7



Statusport

pin 10 - ACK
pin 11 - BUSY
pin 12 - PAPER END
pin 13 - SELECT IN

pin 15  - ERROR


ControlPort

pin 1 - STROBE
pin 14 - AUTO FEED
pin 16 - INIT
pin 17 - SELECT


la parte de GND, son los tierra
del 18 al 25

para saber cual pin es cual, acercate a tu puerto paralelo y te daras cuenta que a la par de cada terminal
tiene su numero, cuidado con conectar al revez la cosas xD

en resumen podemos decir esto:

el Dataport se usa como salida
el Statusport se usa como entrada
el controlport se usa de las dos formas anteriores

por lo tanto en tu caso en vez de conectar en los pines ACK y BUSY lo conectas en dos de los pines del control port ya que desde la cpu vas a poner esos bit en uno y asi se puede.
por ejemplo el cable que sale del cronografo y que va al ACK lo conectas en AUTOFEED, y el que va a BUSY lo conectas a INIT.
Espero que haya sido de utilidad.
#7
Hay varias limitaciones en construir un osciloscopio para pc por puerto paralelo. La mas importante es que no se alcanzan velocidades aceptables y por internet hay un monton de software ociloscopio por entrada de placa de sonido que llegan casi a los 40 khz en frecuencia de lectura.
Por otro lado por el puerto paralelo no podes meter mas de 5 voltios, pero no podrias leer las diferencias entre 0 y 5 vols, porque trabaja digitalmente y solo reconoce dos estados el 0v nivel bajo y 5v nivel alto, para reconocer las distintas diferencias de voltaje necesitas acoplar un adc (convertidor analogico a digital) como puede ser el adc0804.

en esta pagina hay un data logger o adquisidor de datos:

http://www.quasarelectronics.com/3112.htm
#8
Necesito ayuda con algun algoritmo para que el byte de datos siga como tal y por el salgan todos los datos que queiro hacer llegar a un circuito en particular pero que ademas con algun pin del byte de status pueda generar un reloj. o sea que en ese pin la salida sea lo mas constante posible y cuadrada. mientras yo pongo a gusto y piachere los datos sin estar pendiente a cada rato de poner un bajo y alto al dicho pìn.
No se si me explico bien.
A ver si a alguien se le ocurre algo?
desde ya gracias.
#9
Hola.
Yo estuve programando el puerto paralelo desde delphi con la libreria InpOut32.dll bajo win xp y 2003 el tema era que en una maquina me andaba y en la otra no (las 2 con winxp) cuando volvi a la que andaba me di cuenta que el archivo Inpout32.dll ocupaba mas asi es que lo lleve a la otra maquina en la que no andaba y salio corriendo lo mas bien.
Asi que verifiquen que tengan la ultima version de ese archivo, en mi caso ocupa 32.768 bytes a comparacion de 27.648 que fue la que baje en la otra maquina (la que no andaba).
Aqui pongo el codiogo que use en delphi, (para Trinchera que preguntaba) por supuesto que hay que poner el archivo inpout32.dll en la misma carpeta que el proyecto o en su defecto en la carpeta de sistema, si no, no anda. Espero que les sea de utilidad

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Spin, ExtCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    Timer1: TTimer;
    Label1: TLabel;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Label1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}
function inportb(EndPorta: Integer): BYTE stdcall; external 'inpout32.DLL' name 'Inp32';
procedure outportb(EndPorta: Integer; Valor:BYTE); stdcall; external 'inpout32.DLL' name 'Out32';

procedure TForm1.Button1Click(Sender: TObject);
begin
        outportb($378,255); //pone el byte del puerto paralelo D0...D7 en alto  (5 volts)
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
        outportb($378,0); //pone el byte del puerto paralelo D0...D7 en bajo (0 volts)
end;

procedure TForm1.Label1Click(Sender: TObject);
begin
        Label1.Caption := IntToStr( inportb($379) ); //lee el byte de STATUS
end;

end.