TODOPIC
Lenguajes de programación para PC => Visual Basic => Mensaje iniciado por: vasconinicolas en 14 de Mayo de 2010, 10:42:45
-
Hola amigos del foro, los molesto porque estoy como turco en la niebla... perdido.. Esto se debe a que no soy programador sino que toco de oido.-
Hice una aplicación para controlar mi pic en vb6 y luego en vb2008.. en ambos casos pasa lo mismo..
El problema es que al abrir el puerto serie para establecer la comunicacion con el pic:
con vb6 no pasa nada hasta que doy la primero orden (transmito por el puerto), el micro de la compu se pone al 100%,
con vb2008 me lo hace de entrada apenas abro el puerto. La aplicación trabaja pero me inutiliza la máquina.
Alguna idea?
Como dato importante, si mando las instrucciones al pic desde hiperterminal el micro de la compu trabaja normal, es decir, el problema me lo genera el vb
muchas gracias!!
abrazo
N
-
Qué extraño, danos más pistas sobre el puerto. ¿Es virtual? ¿A qué velocidad mandas datos?
-
El puerto es mediante un adaptador USB-SERIAL que yo no le tenia confianza, pero desde hyperterminal anda al pelo y no me consume micro como desde vb.
La velocidad que estoy usando es 9600..
-
Prueba yendo al administrador de dispositivos. Entra a propiedades de tu COM virtual. Reduce la velocidad de comunicación a 9600bps, control de flujo Ninguno. Eso cambiará los predeterminados del puerto.
En tu aplicación VB conéctate a tal velocidad sin control de flujo también. Aumenta el buffer de recepción de datos si es posible a 4096 bytes.
-
Mig, el tema me parece que viene por el control de flujo.
Los parámetros los tenía configurados como vos decis, es decir:
En el puerto 9600, sin control de flujo
En la aplicación, 9600 sin control de flujo
Si pongo control de flujo por hardware o Xoff Xon, tanto en la aplicación como en el puerto (administrador de dispositivos), el puerto se abre, no consume micro.... pero no anda.. no llegan los datos al pic...
AGREGO: si desconecto el pic del puerto serie y luego abro el puerto desde la aplicación no hay consumo de micro, es decir, el consumo de micro se produce cuando esta el pic conectado
La configuracion en CCS del pic es:
#use rs232(baud=9600,xmit=PIN_B2,rcv=PIN_B1,bits=8, parity=N)
-
Uff, pues ya no tengo más ideas. Nunca he usado uno de esos conversores USB-RS232. A ver si encuentras el problema. ;-)
-
Mig, conecté todo como lo tengo a un puerto serie real, no adaptado, y funciona de 10....
alditos adaptadores.. el problema es que dependo de ellos porque la aplicaciòn corre sobre una notebook sin puero serie nativo..
veremos que hacer... bueno al menos ya se que el problema es del adaptador y no del pic o la aplicacion
Muchas gracias por tu tiempo y si encuentro una salida la voy a poner aca
abrazo
N
-
Hola
No conozco en profundidad como funcionan los adaptadores USB-RS232, pero se me ocurre que el problema podría estar si hay pines interconectados (por ej. RTS-CTS-CD y DTR-???, es decir pines 1-4-6 y 7-8) en el cable RS232; eso se utiliza habitualmente para hacer la conexión con solamente 3 cables, pero puede ser que al poner USB en el medio no funcione.
Por favor disculpenme si estoy comentando una burrada.
Saludos,
Jorge
-
Hola Jorge, gracias por tu mensaje. En realidad parece un problema del controlador api que usa windows porque si disparo las ordenes desde el hyperterminal el sistema anda al pelo y no consume el microprocesador de la compu, pero, si lanzo las ordenes (al pic) desde la aplicacion visual basic o visual c# se me pone al 100% el procesador de la compu... Esto me da la pauta que el adaptador anda bien.. aún no logro hacerlo andar...
gracias
N
PD. digo hyperterminal pero en realidad uso el TeraTerm
-
Muchachos, he solucionado el tema. La bronca venía por la versión del driver del adaptador USB-SERIE... Ojo el piojo a quien use estos bichos..
En fin, hay que probar con varios drivers porque si bien parecen andar más de uno, alguno lo hace mejor que otro.... lo que se conoce como "precisión china" jajaja
un abrazo a todos
N
-
Ohh qué bien, gracias por el dato Vasco.