Delphi USB y Herramientas

Sobre el tema aun hay muy poca documentacion al respecto, y peor aun para Delphi o Pascal.

Mencionaremos herramientas y opciones que encontraremos para el desarrollo de proyectos con USB:

En nuestra paleta de componentes en Delphi oculto se encuentra el componente JvHidController de la JVCL. Es un componente nativo y no es nesesaria ninguna dll para la la comunicacion USB solo el componente; encontraremos un ejemplo en la carpeta jvcl/examples.

Aqui mostraremos un ejemplo mas simple que el que viene con este componente mas adelante.

Un libro que seguramente primero querriamos echarle un vistazo es Advanced PIC Microcontroller Projects in C de Dogan Ibrahim , editado el 2008, este dedica un capitulo entero al puerto USB: teoria y lo que necesitamos para comenzar, y apesar que los ejemplos que propone estan escritos en MikroC (para el PIC) y VB (para la PC), esta misma informacion es lo unico que nos hace falta para hacerlo con MikroPascal y Delphi.
Para los ejemplos del libro se hace uso de la herramienta EasyHid : la cual nos brinda una dll, la mcHID.dll, y un Template para la PC que podemos elejirlo entre Delphi, C++ o VB.

Esta utilidad, EasyHid, podemos encontrarla en la pagina de la empresa Mecanique, pero tenemos que descargar la utilidad gratuita MicroCodeStudio un IDE para PICBASIC y PICBASIC PRO, instalarla y extraer un acceso directo al EasyHid.exe, de la carpeta donde se instalo MicroCodeStudio.

Al final de todo nos daremos con la sorpresa que lo unico que nos interesaba era la dll; mas adelante en el apartado:  USB HID/La mcHID.dll,  mostrare un ejemplo completo haciendo uso de esta dll.

http://www.mecanique.co.uk/

Un comentario sobre estas herramientas: al igual que todos los productos de MikroElectronica estan desarrollados en Delphi, compiladores de BASIC para PIC.


En ambos casos tanto con el componente de la JVCL y la mcHID.dll, para el PIC usaremos MicroPascal o MikroC, los ejemplos que vienen en ambos son los mismos para USB HID.


Tambien nos interesara probar el tipo USB - Bulk; lamentablemente MikroPascal ni MikroC tienen implementadas librerias para este tipo de comunicacion USB, asi que haremos uso del archiconocido compilador PICC de la empresa CCS (compilador de C para PIC), que.....para sorpresa nuestra descubriremos que tamnien esta hecho en Delphi.

¿Que esta pasando, que acaso todos los compiladores se hacen en Delphi?; ¿no es cierto acaso que el conocido DevC++ tambien es una aplicacion Delphi?

Agamos un recuento: MPASM (compilador del MPLAB), MikroPascal, MikroC, MicroBasic, icProg, WinPic800, MikroCodeStudio, EasyHid, PICC, DevC++, etc;  escritos en Delphi.

Para la PC (USB - Bulk) nos queda usar la Mpusbapi.dll de Microchip o la WinUSB.dll de Windows: pero lamentablemente estas dos no vienen provistas de algun evento a la llegada de datos del puerto USB, asi que habra que hacerlo a mano gracias al mensaje de Windows WM_DEVICECHANGE; que es enviado cuando un dispositivo es conectado a la PC.....

 

 

 

 

Hemos dividido todo en tres apartados:

 

 

USB HID :   Con Delphi usaremos dos componentes; uno un componente VCL de la JVCL

                  (JEDI),  y el otro una dll, la mcHID.dll.

 

                  Del lado del microcontrolador usamos MikroPascal o sino MikroC.

 

USB BULK : Con Delphi trabajaremos con la dll que nos proporciona Microchip :  la 

                   Mpusbapi.dll en sus versiones v1.0.0.0 y la v1.1.0.0 .

                   Del lado del microcontrolador usamos el compilador PICC .

 

 

La WinUSB : Microsoft hace un tiempo lanzo una dll:  la WinUSB.dll, que a primera vista 

                    supera en prestaciones a la dll de Microchip, y se prodria decir que es

                    la herramienta de software mas completa para la comunicacion USB.