Antes de comenzar querría agradecer a Mat Clayton el valiosísimo aporte de su API para C#, sin la cual estaría aún dándome cabezazos intentando entender porqué no me leía la DLL!! Gracias Mat! Dedico este proyectillo a todos los usuarios del foro TodoPIC, ese pedazo punto de encuentro para todos los PicManíacos!
PicUSB se ha realizado con la intención de proporcionar un primer empujón para todos aquellos que quieren arrancar con los diseños por USB y que como supongo que a muchos nos ha pasado, no saben por donde engancharlo!
El proyecto en sí es bastante sencillito, pretende mostrar como enviar/recibir datos por USB desde el PIC al PC, se ha intentado que el programa fuera entendible, por lo que realmente no tiene ninguna utilidad mas que como digo, servir de introducción al mundo del USB.
Se ha utilizado el grabador GTP USB Lite como ‘placa base’ para este proyectillo, ya que el funcionamiento del PicUSB se limita a encender/apagar cada uno de los colores del led bicolor y a realizar una suma de dos operandos.
El esquema de conexión del PicUSB es el mostrado en la siguiente imagen:
El proyecto consta de tres partes:
* Programación de la aplicación para el PIC
* Programación de la aplicación para el PC
* Edición del driver suministrado por Microchip
Para la programación de la aplicación para el PIC se ha optado por usar el extendido compilador CCS, en concreto la versión 3.227, la primera versión que incorpora las bibliotecas para el uso del USB 2.0. El código de la aplicación se encuentra en el PicUSB_CCS.zip, así como el .hex para ser grabado en el PIC. Tanto el PicUSB.c, como el PicUSB.h están más o menos documentados en un perfecto Spanglish. El proyecto está basado en el ex_usb_scope.c suministrado por CCS como ejemplo para el compilador. Se ha decidido usar el 18F2550 pero puede usarse cualquiera de la serie 18Fxx5x que incorporan el USB 2.0.
Para la programación de la aplicación para PC se ha optado por usar el
Visual C# Express 2005 y puede ser descargado gratuitamente de la página de Microsoft.
En el caso de no instarse el Visual C#, para poder ejecutar el PicUSB.exe será necesario al menos, tener instalada la última versión del
.NET Framework.
El código fuente se encuentra en PicUSB_VisualC#.zip, donde también se incluye funciones_dll.txt, en este se detalla el uso de las funciones contenidas en la mpusbapi.dll proporcionada por Microchip.
El último paso ha sido la edición del Driver suministrado por Microchip de tal forma que apareciera en el Administrador de Dispositivos una nueva clase con un icono personalizado. Para esto ha sido necesario crear una DLL que exporte ese icono. Se adjunta el código fuente de la DLL, PicUSB_Classinstaller.zip por si se desea recompilar para poner otro icono. Se necesita para ello la DDK (Development Driver Kit) de Microsoft, para este ejemplo se ha usado la windows_server_2003_sp1_ddk. Y el ejemplo llamado Toaster.
El Driver en sí se encuentra en PicUSB_Driver.zip, donde pueden ser modificados varios apartados, aunque quizá los mas útiles son los Strings y PID&VID.
Al conectar el PicUSB por primera vez, aparecerá el asistente para la instalación de nuevo hardware, se marca la opción de "instalar desde una lista o ubicación específica", se pincha sobre siguiente y en la siguiente pantalla se marca la opción de "Buscar el controlador más adecuado en estas ubicaciones", se pincha sobre "Incluir esta ubicación en la búsqueda" y a continuación sobre Examinar, entonces se selecciona la carpeta PicUSB_Driver, y se le da a Aceptar, y a Siguiente, aparecerá entonces una pantalla de advertencia, se hace clic sobre aceptar, y la instalación del Driver estará terminada, el led del PicUSB habrá pasado de estar rojo a verde y estará listo para ser usado.
Si todo ha ido bien, en el Administrador de Dispositivos debe aparecer algo así:
Dentro del PicUSB_APP.zip se puede encontrar la aplicación PicUSB.exe así como la dll necesaria, suministrada por Microchip. El funcionamiento es sencillo:
En la parte superior se encuentra el sumador, si se introduce un número del 00 hasta el 99 en cada uno de los sumandos y se pincha sobre PIC Suma!, estos dos operandos serán enviados al PIC, donde se procesará la suma, devolviendo entonces el resultado que se mostrará en la tercera casilla. Por otro lado los botones, Leds Off, Led Verde On y Led Rojo On, envían el código correspondiente al PIC para cada uno de los casos y actúa en consecuencia. Al hacer clic sobre la imagen se abrirá vuestro explorador web por defecto para llevaos a mi página HobbyPIC
Para programar el PIC se recomienda usar el
WinPIC800 creado por Sisco.
DOWNLOADLINK AL ARTICULOACTUALIZACIÓN:
El proyecto se ha actualizado para dar soporte a Windows Vista x32/x64, además de mantener la 'retrocompatibilidad' con Windows XP, visita el nuevo artículo llamado
PicWinUSB pinchando sobre la siguiente imagen:
Para cualquier duda o pregunta: [email:ykow1k46]hobbypic@hotmail.com[/email:ykow1k46]