Hola a todos!! voy a retomar uno de los muchos temas que tengo pendientes de finalizar, en este caso le toca a la comunicación USB.
Como ya comenté en esta entrada, es fácil comunicarnos con el PC mediante la comunicación serie USB si lo hacemos con el circuito integrado MCP2200. ESte, como ya comenté, por parte del microcontrolador vemos una comunicación serie asíncrona, pero por parte del PC, vemos una comunicación USB CDC. El protocolo CDC (Comunication Device Class), hace que también desde el PC veamos un puerto COM por el que nos comunicamos como si se tratara de un protocolo serie UART.
Cuando conectamos el MCP2200 por primera vez al ordenador, como en casi todos los periféricos, debemos instalar los drivers que podemos descargar desde aquí. Una vez instalados, si nos vamos al administrador de dispositivos veremos que tenemos un nuevo puerto COM, que en mi caso es el COM4. La configuración del MCP2200 no termina aquí, ya que en el mismo archivo de los drivers encontramos un ejecutable que nos instalará el software “MCP2200 Configuration Utility”, que, como habréis deducido, es para configurarlo.

Desde aquí podemos cambiar el nombre que le da nuestro ordenador al dispositivo, los identificadores VID y PID, aunque es altamente recomendable utilizar los de microchip ya que estos identificadores se venden, y microchip tiene estos que nos os presta
, también podemos habilitar los leds que nos indican que hay una comunicación en marcha, en fin muchas cosas, pero la que nos interesa a nosotros es el BaudRate, ya que esta es la velocidad a la que nuestro micro se comunica con en MCP2200, en mi caso he utilizado una velocidad de 9.2kbps, suficiente para la aplicación que he diseñado.

Una vez hemos configurado el MCP, ya estamos listos para empezar a comunicarnos!.
He creado una aplicación sencilla que nos manda por USB la lectura del conversor AD, de forma que tenemos una especia de osciloscopio de MUY baja frecuencia. Estos datos se tratan en el programa y este nos muestra la temperatura, si es que al canal analógico le hemos conectado un sensor de temperatura, o la tensión si hemos conectado cualquier otra cosa. Es importante saber que, la comunicación USB CDC manda 8 bits, igual que la UART, y el conversor que utilizo yo es de 12 bits (PIC18F6723), por lo que voy a mandar los 8 bits más significativos, de forma que no pierdo bits.
El programa no es que sea excesivamente largo, pero es lo suficiente para ponerlo aquí, por lo que os dejo los archivos para que los podáis descargar. A continuación tenéis un video de mi invento funcionando.
P. Trujillo: Podrías subir el código del programa de la PC?.
ResponderEliminarGracias.
Jukinch
Hola Jukinch, ya los tienes para descargar. He subido el proyecto completo en Visual Basic .NET 2010. Recuerda que has de tener instalado en NET Framework 4.0 o superior, que viene incluido en Vista y 7, pero no en XP.
EliminarUn saludo
Muchas gracias por compartir.! :)
EliminarSaludos desde Argentina.
Jukinch
Hola muy buena! estaba buscando algo parecido! quiero hacer una aplicacion similar en que lo programaste? estuve viendo el datasheet del MCP2200 y te dan una libreria para hacerlo en Visual pero la verdad no se por donde arrancar alguna recomendación o información por donde puedo empesar? Saludos!
ResponderEliminar