Control de dispositivos a través del módulo USB del PIC18F45/2550

Bajate la ayuda de este enlace: http://www.recursosvisualbasic.com.ar/htm/tutoriales/control-mscomm.htm

Ahi baja hasta donde dice : descargar referencia.

Un saludo !

Bueno luego de renegar bastante con el modo HID en visual C#, he podido terminar con lo prometido hace un tiempo.

Mi manual de aplicaciones USB 1° PARTE: https://www.forosdeelectronica.com/...raves-modulo-usb-pic18f2550-17458/#post123010

Le puse primera parte por que aún falta mucho por explicar con respecto al USB, pero de a poco se irán mostrando diferentes formas de comunicarnos. Así como también como crear nuestros propios proyectos :cool:

Si ven alguna falla dentro de la estructura del manual comenten para que pueda solucionar el problema (y)

Quisiera agradecer a los usuarios que me brindaron todo su apoyo en el desarrollo del manual y que supieron esperar pacientemente a que lo pudiera terminar.

Sin otro particular, espero lo disfruten :)
 
Última edición por un moderador:
Cualquier cosa despué comentame que te pareció. Hay cosas que quizas no están explicadas al 100% pero se entiende.

En un futuro podría agregarle el modo CDC y Bulk pero quiero se entienda esto primero para poder avanzar.
 
excelente manual ¡¡

muy interesante y detallado, lo de vc# aunque la parte de VC#, mejor alli le dejamos... vere si las puedo hacer jalar en linux saludo2¡¡
 
Última edición:
Viendo por el aire el manual, muy detallado con capturas incluidas.

¿Se incluidrá eso que haz dicho atrás?

8 Entradas digitales
8 Salidas digitales.
Entradas analógicas.

Saludo.
 
No lo he leído por ahora, lo he visto por el aire, jejeje. Vi que era 4. A leer entonces y muchas gracias por su tiempo, te mereces eso y mucho más por enseñar a los demás.
 
Moyano!!! Disculpa pero sigo teniendo problemas para leer lo datos del BUFFER en el PC

Tengo esto en VB:
Private Sub Puerto_OnComm()
Dim InBuff As String
Select Case Puerto.CommEvent
Case comEvReceive
InBuff = Puerto.Input
Debug.Print InBuff
Label1.Caption = ""
Label1.Caption = InBuff
End Select
End Sub

Pero no se como hacer para saber si los tres primeros bytes de buffer Inbuff son "VER" y si eso es cierto leer del 4to byte hasta el ultimo!!!

Necesito ayuda!!! :(
 
Moyano sigo teniendo prodemas para interpretar la caden enviada por el pic hacia VB!!!

necesito leer primero los tres primeros bytes para saber donde colocar lo que viene del 4to byte hasta el ultimo!!

Leo el buffer como en los ejemplos pero cuando sigo leyendo no hace nada!!

Escucho sugerencias!! Gracias....
 
Hola albermillán69. Como estás.

Por el momento no se me ocurre cuál pueda llegar a ser el error. Te recomiendo ampliamente que busques como trabajan las cadenas en VB 6.0 y C de CCS.

En un tema que quizás cueste entenderlo al comienzo pero luego se hace bastante fácil.

Te digo esto por que estás encarando el tema de una manera incorrecta (con poca información respaldandote )...por eso te recomiendo estudies un poco más a fondo esas 2 cosas y luego plantees tus dudas.

Igual cualquier cosa que te pueda ayudar o se me ocurra te comento.

Un saludo !

Acá hay algo: http://www.elguille.info/vb/vb6/stringFunctions.htm
 
Última edición:
Moyano ve:

Private Sub Puerto_OnComm()
Dim InBuff As String
Dim Dato() As Byte
Select Case Puerto.CommEvent
Case comEvReceive
InBuff = Puerto.Input
Dato() = InBuff
Version.Caption = ""
For i = 0 To 3
Version.Caption = Version.Caption & Chr(Dato(i))
Next i
End Select
End Sub

Mi dato enviado por el pic es de 4 Bytes, logro leer el buffer y guardarlo en un array (Dato), pero cuando muestro el array en el label (version) solo salen 2 de los 4 bytes!!

Resulta ser que cuando paso el buffer al array lo guarda de loa siguiente forma:
El Buffer tiene: 1234
El Array tiene: 1 2 3 4

No entiendo por q se guarda con un espacio entre bytes originales!!

Bueno seguire buscando informacion!!! Gracias!!!
 
Última edición:
He quedado desconcertado, se me quemaron los libros, a ver si a alguien le paso esto:

Hace un tiempo atras, tomando el ejemplo que hizo Moyano de comunicacion CDC, hice una aplicacion para un plotter. (con vb.NET en la compu y CCS C, copiado del ejemplo de moyano, en el PIC)

La misma funciono a la perfeccion durante mucho tiempo. Luego tuve que formatear la compu, y con ello el entorno CCS C, el driver cdc, etc.

Siguio funcionando bien, hasta que anoche tuve que hacer un cambio en la logica del programa y volver a grabar el pic.

En mi programa, los #include a las librerias provistas por moyano los encierro entre comillas (") para que los busque en una carpeta determinada y asi no sobreescribir los originales de CCS. (aclaro que esto funcionaba).

En esta nueva compilacion, me marca warnings de definiciones duplicadas. Pise los archivos originales usando los de moyano (usb_cdc_desc.c, etc) y los include los cambie por <>

Compilo sin problemas pero me encuentro que no me puedo comunicar. .NET da error de IO en el metodo open() a pesar de marcar que esta bien el puerto (en las propiedades de sistema) y a pesar de enviar y recibir (basura). Tambien, modifique para que el pic me haga simplemente un ECO del caracter que recibe, y si le envio cualquier caracter el siempre me devuelve un chr(183) La comunicacion es binaria. En .NET el objeto COM esta configurado como 9600,n,8,1 (nunca lo cambie trabajando con usb)

Buscando soluciones, magicamente CSS empezo a incluir bien los descriptores (sin warnings) que estaban originalmente en la carpeta de mi HEX. Pero el resultado es el mismo.

Cambie de PIC y lo mismo. (Excepto que el caracter que devuelve es otro, pero siempre el mismo le envie lo que le envie) Cambie los parametros de buffer de recepcion y envio en las propiedades de sistema, el error sigue.

Ya no se por donde mas buscar, ¿Alguien le paso esto o tiene una pista? Repito, todo andaba a la perfeccion hasta que dejo de andar (incluso volvi a la version anterior del programa C, que funcionaba bien).

Electricamente tampoco cambie nada!
 
Última edición:
Si es verdad que te puede dar problemas, CCS ha actualizado la forma en que maneja todo lo respecto a descriptores "para hacerlo" mas intuitivo al usuario.

Luego subiré una guía, pero si lo necesitas urgente vas a tener que investigar los cambios que ha realizado CCS en todo el driver USB...que son bastantes.

Un saludo !
 
Lo que hice como solucion fue dejar de insisitir con cdc y pase la comunicacion a hid basandome en tus ejemplos. Logre enviar un A y que lo responda. Ahora es cuestion de cambiar la parte de comunicacion en mi programa vb.net

Una consulta sobre esto (hid). Aclaro que aun no estudie tus ejemplos a fondo pero... es requerimiento tener un form para que haga de host de la dll (y recibir los eventos)?

Esto lo pregunto porque me gustaria encapsular la funcionalidad de comunicacion hid dentro de un objeto clase, sin forms. Pero vi que utiliza un form como handler.
 
Hola, podrías usar cualquier objeto como handler...( eso me comentaron de Microcode Studio ) ahora tendrías que ver como realizar esa tarea...yo nunca lo he probado.

En donde está explicado el tema del handler...es en el libro "USB complete" de Jan Alexon. Ahí está todo desarrollado a fondo.

Un saludo !

Con el tema del CDC....es un problema de driver's....es un problema de CCS que no se adapta al standar..y uno tiene que hacer cambios para que funcione correctamente.

ACTUALIZACIÓN: Ya terminé de migrar la aplicación del manual de USB a VB.net 2008.

En cuanto al manual para VB.net 2008 hay que esperar.

Un saludo !
 
Última edición:
Bien, intentare encapsular todo el hid dentro de una clase para no depender de un form (por ej: si se quisiera hacer un programa que corra como servicio o de alguna manera, que no tenga interfaz grafica)

Si lo logro, lo subo en este thread asi queda a disposicion de uds. Veremos que se puede hacer.

Sobre CDC, la version de CCS que tengo es la 4.1.x (no recuerdo ahora que mas), Creo que la que tenia antes con la cual funcionaba era 4.0.8 o algo asi. Probare bajar de version.

El driver usb de windows que uso es el que vos publicaste hace mucho y no lo cambie.

De todos modos, teniendo HID es mejor en mi caso y me puedo ir olvidando de CDC.
 
hola seaarg

he estado intentando realizar una comunicacion hid desde vb.net, en el pic no he tenido problemas, pero la verdad en vb no lo he logrado, si me pudiera dar una mano te agradeceria bastante,, por otro lado ya realize cdc en pic con vb.net, cualquier cosa que necesites con gusto...

saludos...
 
hola seaarg

he estado intentando realizar una comunicacion hid desde vb.net, en el pic no he tenido problemas, pero la verdad en vb no lo he logrado, si me pudiera dar una mano te agradeceria bastante,, por otro lado ya realize cdc en pic con vb.net, cualquier cosa que necesites con gusto...

saludos...

Te dejo la aplicación para HID, luego les subo el manual dentro de unas semanas.
 

Adjuntos

  • Visual Basic HID Demo.zip
    417.4 KB · Visitas: 277
Atrás
Arriba