TODOPIC
Lenguajes de programación para PC => Visual Basic => Mensaje iniciado por: Marttyn en 12 de Septiembre de 2008, 23:08:41
-
Hola!
Aqui dejo un programita hecho en VB. Sirve para monitorizar cualquiera de los 3 puertos LPT.
Permite escribir los bits de "data" y "control", y lee los bits de "status" del puerto.
bastante practico para cuando queremos probar algo con algun pic, o cualquier cosa que conectemos al puerto.
en el ZIP esta el ejecutable y tambien el proyecto de VB para modificarlo al gusto
(http://i299.photobucket.com/albums/mm317/Marttyn/Electronica/LPT.jpg)
-
Hola! estuve haciendo unas pruebas y me parecio que le faltaba la opcion de poder monitorizar los registros de Data y Control, ya que solo se podian escribir.
le agregue eso y ademas comente el codigo para poder modificarlo mas facilmente.
(http://i299.photobucket.com/albums/mm317/Marttyn/Electronica/LPT_2.jpg)
-
Muchas gracias Marttyn por el aporte, Estoy haciendo una aplicación similar :D
Le voy añadir lo que dices que falta, una forma que el software detecte cuando hay "algo" pegado al LPT, se me ocurre hacerlo con un buffer y poner un "0" en un pin y leerlo en otro pin, si hay hardware conectado, entonces leera un "0" sino, ya sabemos :lol:
-
Muchas gracias Marttyn por el aporte, Estoy haciendo una aplicación similar :D
ya sabes lo que dicen... "greate minds think alike" (las mentes prodigiosas piensan parecido) :mrgreen:
Le voy añadir lo que dices que falta, una forma que el software detecte cuando hay "algo" pegado al LPT
para esto acuerdate que los registros de datos y control1 son solo de salida, no puedes leer informacion proveniente por estos pines...
lo que le agregue yo a mi programita simplemente es leer los registros, no el puerto. de esta manera leo lo que se esta enviando por el puerto, pero en ningun momento son datos que estan entrando. no se si me explico.
1: los pines de control pueden ser utilizados como entrada si se sabe como...
[...] Son TTL a colector abierto con resistencias de pull-up de 4.7 kW, por lo que un dispositivo externo puede forzar el estado de los pines sin dañar el driver. Esto permite utilizar estas cuatro líneas como entradas. Para ello, se ponen en alto las cuatro salidas (escribiendo 0100b, es decir, 4h, en LPT_BASE+2) lo que hace que las salidas "floten". Ahora, un dispositivo externo puede forzar a bajo alguna de las salidas con lo que, leyendo el puerto, sabemos si esto sucedió o no [...]
Extraido de ESTA PAGINA (http://cfievalladolid2.net/tecno/cyr_01/control/puerto_paralelo.htm)
salu2!
-
Fijate Martyn que yo nunca había tratado de leer datos por el puerto paralelo, y tenía la BRUTA idea de que el CPU lo hacía automáticamente. y yo diciendo ¿porque no lee los datos?, hasta que se reinició la PC y me saliío un error inesperado de win. ¡¡DE VAINA no quemo el puerto!!. jaja
Hasta que me puse a leer bien los documentos respectivos.
..La línea Busy tiene, generalmente, una resistencia de pull-up interna..
muuuy importante, y no solamente BUSY, sino todas las lineas de entrada.
-
hola marttyn,estoy intentado leer el puerto paralelo mediante tu programa.y aunque el programa funciona bien,
no puedo leer ni escribir nada del puerto paralelo.
yo he hecho las pruevas en un adaptador usb to IEEE1284 y lo he configurado como LPT1.pero no se porque no funciona.
puede ser poque al utilizar este puerto de forma virtual,no funcione?
-
hola de nuevo.he estado haciendo pruevas y cambiando el puerto 378h por el 6f8h,que es el de infrarrojos.retocando uno de los bits y mirando el emisor con
la camara del mobil.veo que se corta la emision de infrarrojos.asi que parece que tu programa esta rulando bien.
pero no se si con los puertos virtuales funciona.sabes algo al respecto?
-
y sigo haciendo pruevas.
he probado el programa en un portatil com puerto paralelo.y funciona a la perfeccion en LPT1.
pero he cojido el cable usb-paralelo y no puedo activar las salidas.asi que he probado si el problema era del cable.y he conectado una impresora con puerto paralelo.y si funciona.
pero me he dado cuenta de que el puerto que utiliza es el USB003 y como este es un puerto virtual.quizas sea por eso por lo que no funciona al intentar mandar datos por el LPT1 asi que no se a que direccion pertenecera el USB003.
-
Veo que fuiste solucionando los problemas de a poco :mrgreen:
La verdad hice un pequeño estudio del LPT para hacer el programita. En principio deberia funcionan con los 3 puertos LPT, pero la verdad no se me ocurrio lo de los conversores USB-LPT.... la verdad no tengo idea como trabajan...
tal vez si consigues la direccion de USB003 puedas hacerlo funcionar, pero no lo se :?
espero que lo consigas!
Salu2
-
y sigo haciendo pruevas.
he probado el programa en un portatil com puerto paralelo.y funciona a la perfeccion en LPT1.
pero he cojido el cable usb-paralelo y no puedo activar las salidas.asi que he probado si el problema era del cable.y he conectado una impresora con puerto paralelo.y si funciona.
pero me he dado cuenta de que el puerto que utiliza es el USB003 y como este es un puerto virtual.quizas sea por eso por lo que no funciona al intentar mandar datos por el LPT1 asi que no se a que direccion pertenecera el USB003.
groundman una pregunta:
¿ miraste las direcciones respectivas de los registros de control e I/O del LPT virtual ?
-
lo unico que se modifica en sistema es: compatibilidad para impresoras usb.
pero no se agrega ningun puerto LPT. y la impesora que he probado funciona con este adaptador.
-
Busca en administrador de dispositivos (si estas en win) y busca el nuevo "hardware" usb instalado, revisa las pestañas, debe haber una casilla o aviso que te informe la dirección del puerto paralelo.
-
Otra pregunta:
¿te has fijado que el conector de ese adaptador NO es DB25?
si es asi, tendras que revisar como son los pines de un puerto IEEE 1284
-
no veo nada.solo que utiliza un controlador usbprint.sys.
y las patillas, me baje el equema del conector. el pin 2 y masa.no se si se me habra escapado algo.
-
Estimadisimo Marttyn: te agradezco mucho el programa, pero más aún tu completísimo curso sobre "Programadores". Siguiendo tu ejemplo, estoy plasmando todos mis avances desde ahora que estoy comenzando para que algún día pueda compartir algo útil con los demás. Gracias.
-
Me alegra saber que mis pequeños aportes son de ayuda :-/
-
Marttyn como andas?? te hago una pregunta sobre tu programita.
Cuando quiero escribir el LPT2 o LPT3, no puedo hacerlo por que queda prestablecido el valor 255 o sea todos 1!
He probado otros programas con el mismo dll y pasa lo mismo! No sabes que puede ser?? puede ser culpa del dll??? o es algo de XP??
Gracias, espero tu rta!
-
Hace mas de tres años que hice este programita y la verdad no lo utilizo desde hace mucho! Tambien es verdad que nunca probre con el LPT 2 y 3, por lo que no se a que se puede deber tu problema. Quizas si que sea por el DLL.
Lamento no ser de mas ayuda.
-
Tuve que cambiar la controladora de la CNC (que funciona por puerto LPT) y como tuve algunos problemas recurri a este programita que habia hecho, pero le hice unas modificaciones para que se adaptara mejor a mis necesidades.
Ahora muestra la correspondencia con los pines del puerto, y su estado 0v/5v.
Asi ha quedado:
(http://i299.photobucket.com/albums/mm317/Marttyn/Electronica/MonitorLPT.jpg)
Os dejo tambien el codigo fuente y el programa compilado por si le sirve a alguien.
Salu2!
-
Si lo corres al mismo tiempo que el Mach3 has tenido problemas de perdida de pasos?