Autor Tema: ¿Algun ejemplo o informacion de interacción con dispositivos por USB?  (Leído 6541 veces)

0 Usuarios y 1 Visitante están viendo este tema.

illuminat3d

  • Bytes
  • *
  • Mensajes: 22
  • Reputación: +1/-1
    • Ver Perfil
Estoy buscando información por todos lados, me interesa saber como se envia y recibe información de un dispositivo por USB, estuve leyendo algo de PICS (que todavia no lo tengo muy claro).

Un saludo!

coco

  • Administrador
  • Terabyte
  • *****
  • Mensajes: 548
  • Reputación: +63/-3
    • Ver Perfil
Re:¿Algun ejemplo o informacion de interacción con dispositivos por USB?
« Respuesta #1 en: Octubre 19, 2010, 08:13:45 pm »
Bueno la cosa es facil, en primera instancia selecciona un dispositivo que tenga lo que vos queres, yo uso el PIC 18F4550. Despues, compras uno (o 2). Mas luego, podes armarte un programador JDM (yo hice el PIPO2) o comprarte uno (mercadolibre, casas de electronica, etc).

Despues de todo, fijate en la pagina de microchip, donde estan las Librerias (son ejemplos de las funciones que proveen los PIC y el lenguaje C18, C32, etc). Tales archivos los encontras aca en donde dice "Downloads -> Microchip Application Libraries v2010-08-04" (u otra fecha). Yo te recomiendo que lo instales donde dice, no cambies nada.

Bien, ahora precisas el MPLAB y el C18. El MPLAB lo bajas desde el sitio de Microchip (aca donde dice "MPLAB IDE v8.56 Full Release Zipped Installation"). El C18, hay que comprarlo :P. (pero, por ahi taringa sabe algo).

Una vez que tengas todo listo, entra en la carpeta "C:\Microchip Solutions\" y buscas algun ejemplo que te interese.
Yo particularmente probe en proyectos mios, el "USB Device - HID - Custom Demos" para un controlador del VirtualDJ; el "USB Device - Audio - Speaker" para un amplificador clase D y por ultimo el "USB Device - LibUSB - Generic Driver Demo" para un control de luces distribuido por red.

Esto lo podes probar en la vida real, programando el pic cada vez que haces un programa, o podes usar el Proteus (fijate en esta seccion) que emula el USB.

cualquier cosa, a tu disposicion

saludos
'-     coco
(No me cabe: Java, Python ni Pascal)
SQLite - PIC 16F y 18F - ARM STM32 - ESP32 - Linux Embebido - VB6 - Electronica - Sonido y Ambientacion

illuminat3d

  • Bytes
  • *
  • Mensajes: 22
  • Reputación: +1/-1
    • Ver Perfil
Re:¿Algun ejemplo o informacion de interacción con dispositivos por USB?
« Respuesta #2 en: Octubre 19, 2010, 08:51:21 pm »
Parece muy complicado, no me esperaba menos pero.. habia visto en este link algo mas sencillo, incluso viene un programa con el source el cual obtiene datos y enciende leds de un PIC..

He visto algunos programas destinados a la liberación de moviles y supongo que hacen algo parecido no?... el movil tiene dentro un PIC el cual puede ser manipulado desde el software?, como logran conectarse con el? o como podria conectarme con el en VB?

Un saludo y gracias por la respuesta!

coco

  • Administrador
  • Terabyte
  • *****
  • Mensajes: 548
  • Reputación: +63/-3
    • Ver Perfil
Re:¿Algun ejemplo o informacion de interacción con dispositivos por USB?
« Respuesta #3 en: Octubre 19, 2010, 10:14:15 pm »
No, los celulares son todo un tema. Los mas viejos que traian cable USB tenian un convertidor USB<->RS232 (serie). Los celulares mas nuevos usan el USB de forma nativa.
Dentro de los celulares hay un microprocesador (privativo en la mayoria de casos), de arquitectura ARM o MIPS (puede haber x86, u otros) desde el cual se maneja un periferico USB (posiblemente integrado al mismo microprocesador). El celular puede entrar en modo bootloader o funcionamiento comun. El modo bootloader esta destinado a actualizar firmware, liberacion, etc. El otro modo, se encarga de ejecutar dicho codigo de forma comun.

El pic 18F4550 es un microcontrolador, de baja frecuencia (48MHz vs 200MHz o mas de los celulares) con su propia RAM, ROM (flash) y EEPROM. Obviamente que se le puede flashear un codigo de bootloader (el cual estan dentro de las librerias que mencione antes) y lograr asi entrar en un modo "bootloader" y en modo comun. Pero lo que pasa, es que los pic tienen la posibilidad de usar un programador serial externo (ICSP In Circuit Serial Programming) en el cual no hay necesidad de retirar el PIC de donde esta instalado, y mucho menos afectar a los perifericos. Es por eso que flashear un bootloader solo consume espacio al pedo (contados son los casos en que no, por ejemplo en el desarrollo de nuevos proyectos).

El circuito que vos pasaste usa el .NET para interfacear con el USB. Yo no necesite .NET para hacer tal cosa, porque yo use el driver LibUSB (el cual es portable en linux, win, mac). Con este driver, lo unico que precisas es un driver y la libreria (un .dll) para hacerlo funcionar.
Pero porque dicen que con vb6 no anda? Sencillo, la libreria es CDECL (yo probe usar el modulo cCDECL y no me funciono, obviamente que el error era mio), pero existe en internet la solucion, una libreria wrapper hecha en c++ que llama a las funciones originales de la libreria en CDECL y las traduce a WINAPI o STDCALL, las cuales se pueden usar en VB sin problemas.
El codigo es exactamente igual (yo me guie con los ejemplos que venian en las librerias de microchip, donde hay codigo fuente en .net c#), por ende el funcionamiento es el mismo. Cabe destacar que no tuve ni un solo hang ni nada.

Obviamente que podes usar eso de tu link, porque ya esta hecho y bien explicado, incluyendo sources y etc.

Pero, a mi me gusta romperme la cabeza, y customizar a mi gusto las cosas.

Saludos
'-     coco
(No me cabe: Java, Python ni Pascal)
SQLite - PIC 16F y 18F - ARM STM32 - ESP32 - Linux Embebido - VB6 - Electronica - Sonido y Ambientacion

nicogalan

  • Bit
  • Mensajes: 1
  • Reputación: +0/-0
    • Ver Perfil
Re:¿Algun ejemplo o informacion de interacción con dispositivos por USB?
« Respuesta #4 en: Octubre 29, 2010, 03:44:18 pm »
muy bueno!!
tendría alguien un codigo para enviar un string hacia un dispositivo usb NATIVO, usando vb6 y libusbvb0.dll?
sabiendo uno el vid y el pid del dispositivo, cuales son los pasos a seguir??

gracias
saludos