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

Si consiguiéramos este libro nos dará muchas ideas sobre el USB con Visual C#.

090513092943.C--2008-300x426.resized.150x0.jpg


Fuente:
http://www.elektor.es/products/book...rogramming-for-electronic.264379.951869.lynkx
 
Meta te aclaro lo que resaltaste anteriormente:

1º - Lo que quiero detectar ahora es el puerto serie en VB.net y VC# 2008 por lo que en realidad estaríamos detectando un USB virtual, esto ya me lo respondiste asi que tema aclarado :D

2º - En USB la detección ya la tengo mas o menos clara usando las librerías para VB.net y VC# que tengo para el modo HID y Bulck transfer...igual habría que hacer pruebas más adelante para probar su funcionamiento.

3º -
- Envio y recepción de datos : Control de 8 cargas y Lectura de 8 entradas.

A lo que me refiero meta es al control de 8 cargas (relés, luces, contactores, etc). Esto lo simularé mediante la utilización de LED's en mi entrenadora.
Con el tema de las entradas es lo mismo son 8 pulsadores conectados a un registro de desplazamiento que lee el PIC en forma serial.

4º -
Lectura de 3 entradas analógicas:

- Yo tengo experiencia en el manejo del ADC, pero necesito más conocimiento para realizar una interfaz para visualizar los datos.

5º -

- Vizualización de datos desde el PIC: Mensajes y alertas así como debug de la programación.

Explicado en la página 163 del manual. Descargar ejemplo aquí.

......lo voy a leer.

6º -
- Conexión y desconexión del puerto en caliente.

Lo que planteo es lo siguiente: Si tenemos nuestro dispositivo trasmitiendo datos a la PC ...y lo desconectamos la aplicación tendría que generar un evento para que en caso de que el dispositivo sea conectado nuevamente la PC lo reconozca y se puedan seguir transmitiendo datos.


La idea general sería que las aplicaciones fueran escritas en su totalidad en VC# que es al parecer el lenguaje que todos manejamos mejor. Luego se pasarán a los demás lenguajes según el nivel de complejidad que se presente.

Un saludo ! (y)
 
Meta la detección de los puertos USB disponibles , estuve investigando un poco las librerías de microchip mpusbapi.dll y la de Mecanique.uk easyHID.dll. Ambas tienen funciones específicas para la detección de los dispositivos vinculados a esas funciones mediante el VID y PID del mismo.
Hay 1 inconveniente menor de programación que tendría que resolver antes de hacer las aplicaciones:

- mpusbapi.dll tengo ejemplos de aplicación de la librería en VC# solamente...y tengo que encontrar la forma de que trabaje también en VB.net

- easyHID.dll solamente tengo ejemplos de uso en VB.net y tendría que hacerla trabajar en VC#

VC++ no creo que lo valla a implementar debido a que no encuentro mucha documentación de programas de control que usen VC++ , por lo que me enfocaré en VB.net y VC# por el momento hasta que aprenda más sobre las librerías de control y el programa en si mismo.

Una mala noticia es que se me quemó mi PICKIT2 , asi que me voy a tener que armar un clon para poder proseguir con las pruebas.

Hola a todos , me puse a diseñar la interfaz gráfica para el manejo de la entrenadora que tiene todo lo necesario para experimentar las interfaces básicas a través de USB como:

- Entradas analógicas.
- Entradas digitales.
- Salidas digitales.
- I2C.
- USB - RS232.
- Control de cargas de potencia, etc.

La interfaz que he estado diseñando Es muy básica pero quería saber si con eso basta o piensan que se le puede llegar a agregar algo más.

Está diseñada en VC# 2008.

Ventana principal:



Menú 1:



Menú 2:



Espero sus comentarios para ver que se puede agregar / sacar o modificar.

Un saludo ! (y)

 
Última edición:
Meta la detección de los puertos USB disponibles , estuve investigando un poco las librerías de microchip mpusbapi.dll y la de Mecanique.uk easyHID.dll. Ambas tienen funciones específicas para la detección de los dispositivos vinculados a esas funciones mediante el VID y PID del mismo.
Hay 1 inconveniente menor de programación que tendría que resolver antes de hacer las aplicaciones:

- mpusbapi.dll tengo ejemplos de aplicación de la librería en VC# solamente...y tengo que encontrar la forma de que trabaje también en VB.net

Lo encontraremos. También he encontrado la forma de hacerlo lo del puerto serie en los tres lenguajes express.

- easyHID.dll solamente tengo ejemplos de uso en VB.net y tendría que hacerla trabajar en VC#.

Buscaré información sobre easyHID.dll, sólo me das ejemplos en VB .net y en los foros del MSDN nos ayudarán a programarlo.

VC++ no creo que lo valla a implementar debido a que no encuentro mucha documentación de programas de control que usen VC++ , por lo que me enfocaré en VB.net y VC# por el momento hasta que aprenda más sobre las librerías de control y el programa en si mismo.

Primero es lo primero, es decir, conseguir el ojetivo con un lenguaje que nos funcione, después ya se verá lo que hacemos, tampoco hay que estresarse y meter el doble de tarea.

Una mala noticia es que se me quemó mi PICKIT2 , asi que me voy a tener que armar un clon para poder proseguir con las pruebas.

Mi mala noticia que se me quemó un circuito con mi LCD 16x2 incluido y unos cuantos PIC16F84A. ¿Es estrictamente necesario un PICKIT2 para lo que vas hacer o no tienes otras alternativas?

Nos falta un pasito. Que raro que ya no participen más gente, o sólo venían para su propio beneficio.

EDITO:
Veo que has puesto fotos muy buenas.

Las imágenes están bastante bien. Lo de la licencia suele ir en "Ayuda". Pusiste - USB - RS232, pensé que el proyecto era sólo directamente USB con el PIC 18Fx550.
 
Última edición:
Hola meta acá comento y doy algunos avances:

1 º -
- mpusbapi.dll tengo ejemplos de aplicación de la librería en VC# solamente...y tengo que encontrar la forma de que trabaje también en VB.net

Lo encontraremos. También he encontrado la forma de hacerlo lo del puerto serie en los tres lenguajes express.
Ya encontré la solución aunque todavía no es funcional..me dá un error que no encuentra la librería , cuando la librería está agregada :rolleyes:



2 º -
- easyHID.dll solamente tengo ejemplos de uso en VB.net y tendría que hacerla trabajar en VC#.

Buscaré información sobre easyHID.dll, sólo me das ejemplos en VB .net y en los foros del MSDN nos ayudarán a programarlo.
Fijate si te pueden dar una mano por que por más que he buscado no he encontrado nada que me ayude.

3º -
Una mala noticia es que se me quemó mi PICKIT2 , asi que me voy a tener que armar un clon para poder proseguir con las pruebas.

Mi mala noticia que se me quemó un circuito con mi LCD 16x2 incluido y unos cuantos PIC16F84A. ¿Es estrictamente necesario un PICKIT2 para lo que vas hacer o no tienes otras alternativas?
No tengo alternativas para poder programar mi entrenador , ya que mis otros programadores por puerto serie y paralelo no funcionan ...ni tampocon programan al PIC18F2550.

4º -
Las imágenes están bastante bien. Lo de la licencia suele ir en "Ayuda". Pusiste - USB - RS232, pensé que el proyecto era sólo directamente USB con el PIC 18Fx550.
- Voy a cambiar lo que me decís de la licencia..

- El proyecto va a abarcar todas las formas de comunicación con USB y el PIC18F2550 primero empezaremos con CDC (USB - RS232), luego con HID (Human device class) y por último nos centraremos en el modo bulk con mpusbapi.dll
 

Adjuntos

  • VB.net MPUSBAPI.dll.rar
    87.5 KB · Visitas: 333
Halo:

Algo de información te da, sólo toca buscarnos la vida con la conversión. Investigaré sobre los enlaces que nos ha dado y el .NET reactor.

Lo estuve viendo el proyecto y se ve bien. Según dice está muy a lo VB .net, por lo que les entiendo es compleja la conversión, no por ello signica que no se pueda.

Intentaré investigar.

Salu2.
 
Hola, ahora con tiempo puedo aportar algo, faltan sólo 2 para recibirme!
Por la experiencia que tube con USB, hay 2 tipos de funcionamiento útiles para los PIC: CDC y HID. El modo BULK, si bien es más fácil de programar, no tiene mucho uso, sencillamente ningún PIC tiene capacidad de enviar información a tal velocidad como para justificarlo. además es muy estructurado en cuanto a los tiempos y tamaños de paquetes enviados y recibidos, y fundamentalmente, no trabaja por interrupción. Además, mpusbapi.dll NO funciona en vista ni en 7.
Creo que es preferible enfocarse en CDC (también va a haber problemas de drivers con vista y 7) para realizar un RS232 virtual, aunque lo ideal, va a seguir siendo el modo HID.
En un post en este hilo publiqué el código que utilice en VC# 2009 para trabajar en modo bulk, invocando las funciones de la .dll. Cualquier cosa estoy.
Saludos.
 
Creo que lo ideal sería utilizar VC#, ya que permite llegar a muy bajo nivel, y es similar al lenguaje utilizado para programar el micro.
En algún lado creo que tengo una .dll modificada que funcionaba en vista, voy a chequearla.
Saludos.
 
En el foro de todopic hay una librería llamada PicWINUSB que maneja el modo bulk en vista 32 y 64 bits....no se en win 7.
Ahora lo más importante es terminar con CDC en VC# y VB.net....después veremos bien con los demás.
 
La verdad que entonces no me queda ninguna posibilidad.......se que hay gente que lo ha hecho funcionar en Win Vista y 7 pero creo que había que hacer unas modificaciones ...
Ahora estoy de lleno con el diseño de la placa del Pickit2 con compatibilidad con micros de 3.3v

También estoy empezando a buscar información para empezar a trabajar con los PIC24 y los famosos PIC32
 
Estaba con un libro en Inglés del PIC32, la verdad, por lo poco que entiendo de Inglés, hice pruebas con ejemplos que te viene y me encantó el PIC32, no es tan complejo como pensaba con el lenguaje C, pero en ASM ni se te ocurre meterte en serio.

Sobre el proyecto que hiciste en VB .net, puedes hacer poco a poco o partes por partes desde la creación del form para luego pasarlo a C#. Por probar no pasa nada.
 
Última edición:
Atrás
Arriba