04 septiembre 2014

Desarrollando el programa para el PIC32

Al principio del proyecto, mientras estuve en Alemania e Italia, no tenía ningún dispositivo físico para poder probar lo que iba desarrollando. Así que tan sólo pude hacer algunas pruebas sobre el simulador, para aclarar los conceptos y preparar código de algunos temas básicos como las interrupciones (sumamente importantes para los PIC).

Así que en Alemania hice el corazón del programa, desarrollando la estructura, planteando todas las funciones y dejando establecida la lógica que regirá el funcionamiento de mi proyecto.

El entorno de trabajo (MPLAB X) no es complicado de usar, tiene muchos pequeños detalles muy de agradecer por los desarrolladores, aunque a veces tiene funcionamientos extraños (a veces muestra errores donde no los hay, o dice que el proyecto no tiene ficheros, cuando está lleno de código....) que supongo irán depurando y solucionando.



En Junio. y ya en España, insistí mucho en que necesitaba una placa de pruebas para poder seguir con el desarrollo, y me proporcionaron el Ethernet Startet Kit de Microchip. Esta es una interesante placa de pruebas, tiene conexiones Ethernet y USB, y para poder trabajar con entradas/salidas estandard, tiene 3 pulsadores y tres led con los que trabajar. El PIC que monta es un PIC32MX795F512L, más avanzado que el que vamos a utilizar en el proyecto, pero como punto de partida (y hasta que tenga la placa real para poder probar), me vale.

Con eso ya pude completar el desarrollo, por fín pude comprobar como se trabaja con las interrupciones y pude ajustar bien el tema de tiempos (con los simuladores no se puede). Y lo más importante, pude empezar con el desarrollo de las comunicaciones USB.

La placa de control (con el PIC32) hará las funciones de un dispositivo USB, así que tuve que buscar información y ejemplos de como implementar el USB. Por suerte Microchip distribuye una amplia colección de ejemplos con su librería Harmony (y muchos otros en su propia web), y como todo el tema corría prisa, decidí partir del ejemplo de dispositivo USB CDC (en el PC se ve como un dispositivo Serie), e ir avanzando.

Por desgracia la mayoría de la información que se puede encontrar en internet se refiere a la antigua librería de Microchip (deprecada y retirada para los PIC32), así que hay que usar solamente lo que proporciona el fabricante (Microchip Harmony).

Como ya comenté estas librerías han sufrido muchos cambios en poco tiempo (espero que la recién publicada versión 1.00 sea más estable que las anteriores), y me ha tocado rehacer varias veces parte del código para utilizar una versión más actualizada (y todo esto un poco a ciegas, puesto que Microchip no publica los cambios entre versiones, ni cuales son los errores corregidos entre una y otra).

Pero lo conseguí, finalicé el código del proyecto, incluyendo las comunicaciones USB, y otros temas delicados como el conversor analógico digital (ADC), y las comunicaciones I2C (aunque con este último me tuvieron que echar una mano, lo reconozco).

(continuará)


No hay comentarios: