|
|||||
|
|||||
Conexiones PIC-USB |
|||||
El puerto serie y el puerto paralelo ya quedaron atrás. Con la superpoblación de ordenadores portátiles, el espacio de acción de los enlaces por puerto serie comienza a reducirse. Lo mismo ocurre con las conexiones por puerto paralelo. Ya ni siquiera los ordenadores de mesa traen un puerto de este tipo utilizado antiguamente para las impresoras. Hoy todo trae conectividad USB. El mouse, el teclado, la impresora multifunción, el teléfono móvil, el pen drive, el disco duro portátil, el Blu-ray Player, el módem, el router, todo se conecta a través de un puerto USB. En este artículo veremos la manera más sencilla de realizar un circuito con un microcontrolador, encender y apagar un LED desde nuestro ordenador portátil, en una aplicación hecha por ti mismo a través del puerto USB. |
|||||
Las antiguas conexiones de puerto serie o paralelo permitían velocidades de transferencia de datos de hasta 115 kbps., mientras que una conexión USB 1.1 alcanza los 1.2 Mbps. y una USB 2.0 logra 480 Mbps. Sin contar con la sencillez que supone utilizar un único tipo de conector para todos los periféricos necesarios, la posibilidad de conectar y desconectar sin tener que reiniciar el ordenador a cada cambio de equipo es una ventaja que ha llevado al trabajo móvil hasta su máximo potencial. Disponer de instrumentos de campo o de equipos portátiles que permitan monitorear el clima en el lugar de los hechos es, gracias al ordenador móvil, un avance que complementado con la practicidad de los puertos USB se ha ganado la preferencia de la mayoría de los usuarios. Es hora entonces que comiences a transitar el camino de las aplicaciones basadas en conectividad USB. |
|||||
El programa Proton Development Suite posee entre sus herramientas más
importantes la que conocemos como EasyHID USB Wizard. Esta prestación se
encarga de manera automática de generar los programas necesarios para
poder utilizar los microcontroladores de la línea PIC 18F2455, 18F2550,
18F4455 y 18F4550, que será el que utilizaremos para nuestro ejemplo. El
código para el PIC, lo genera tanto para Pic Basic Pro como para Proton,
mientras que para el ordenador, se encarga de generar el código en
Borland Delphi, Visual C++ y Visual Basic. Por supuesto que todos estos
parámetros se pueden seleccionar mientras se avanza en la preparación
del software. En apenas muy pocos pasos, ya podemos tener una aplicación
HID USB lista para comenzar a cargarla de código. Tanto desde el
Microcode Studio Plus como desde Proton Development Suite, al iniciar la
aplicación, nos encontraremos con pantallas a las que les iremos
cargando los datos que el sistema nos vaya pidiendo. |
|||||
|
En la primer pantalla puedes cargar el nombre del producto que estás desarrollando |
No cambies los números de la segunda pantalla, utiliza los que aparecen de muestra |
|||
Como a este sistema lo
estamos preparando para manejar y operar el receptor multibanda NeoTeo,
los datos que le agregaremos estarán en coincidencia con esta
aplicación. De allí surgen los nombres que ves en las imágenes. Aquí, en
esta pequeña guía, sólo te daremos un ejemplo práctico para que te vayas
familiarizando con el sistema y sus pequeños secretos para lograr una
conexión exitosa. Las pantallas que comiencen a aparecer son las que ves
en imagen; tú les colocarás el nombre de la aplicación que más desees.
Lo que NO debes cambiar en la segunda pantalla son los números de Vendor
ID y Product ID. Estos números son asignados por el organismo que regula
la autenticidad de los productos USB donde puedes comprar por U$S 4mil
una membresía anual con números otorgados exclusivamente a tu
desarrollo. Por lo tanto, nuestro consejo es que utilices los números de
muestra que provee la aplicación para los proyectos domésticos que
realices |
|||||
LCD Serial I2C |
En las primeras aplicaciones te recomendamos utilizar los parámetros preestablecidos |
Pantalla final de selección de PIC y destino de carpetas |
|||
Fuente Irrompible | |||||
Monitor Cardíaco | |||||
Vúmetro Digital con LCD | |||||
Energía Solar | |||||
Comunicando vía Láser | |||||
|
|
||||
EasyHID hará su trabajo y tú esperarás el resultado listo para usar |
|||||
|
Una vez que hayas
realizado estos cinco sencillos pasos, tendrás los programas listos para
comenzar a trabajar. Lo primero que debes hacer es definir el tipo de
hardware que utilizarás alrededor del microcontrolador seleccionado y en
función de él organizar todo el resto de la aplicación. Es decir, en
este caso, sólo colocaremos un pulsador y un LED como componentes
adicionales y un LCD de 16 caracteres y dos líneas. Además de definir el
hardware que utilizarás, también aquí se define la idea básica del
software que crearás para utilizar y controlar tu aplicación desde el
ordenador. Para nosotros es importante poder controlar de manera
autónoma el dispositivo que hemos ideado con el PIC y poder hacerlo a
través del ordenador, si es que lo deseamos. En este último caso, al
conectarlo al ordenador portátil, los mandos en el hardware dejarán de
funcionar y el LCD nos indicará que estamos conectados al ordenador y
podremos así operar el hardware directamente a través del puerto USB. |
||||
El circuito propuesto con conexión USB utilizando el PIC 18F4550 |
|||||
|
Además, debes recordar
que en la tercera pantalla del EasyHID USB Wizard, por default, esta
corriente se limita a 50 mA. Este pequeño valor será suficiente para
extraer de allí la información que le daremos al programa del PIC para
indicarle que nos estamos conectando al ordenador. Pero antes de
escribir siquiera una línea de código de programa, debemos grabar el PIC
con el firmware que nos generó el EasyHID (previo compilarlo y obtener
el .HEX). Luego de grabarlo, procederemos a conectarlo al ordenador para
que éste lo reconozca como un nuevo dispositivo HID (Human Interface
Device) y para que estemos seguros de que no hayan existido errores en
la generación del código, al menos, en el correspondiente al
microcontrolador. |
||||
|
Las imágenes aparecerán como al instalar cualquier dispositivo USB |
Por último, verificas que el dispositivo funcione correctamente |
|||
|
|||||
Monitor Cardíaco |
Salir del AttachToUSB nos permitirá tener un diseño autónomo y a la vez operable por USB |
||||
Mi primer receptor: TDA7000 | |||||
ON-OFF de un toque |
|
||||
Montajes | |||||
Controlando la presencia de tensión en RC0, sabremos si debemos salir o quedarnos en el lazo USB |
|||||
|
|||||
La condición de funcionamiento de este sistema “dual” se basa en la
colocación – en la mayor parte que sea posible – de la rutina que
detecte que el USB se ha conectado, es decir, que RC0 se vuelve igual a
uno. Aquí ocurrirán dos cosas: por un lado, el programa puede seguir
siendo operado desde su teclado nativo (en nuestro ejemplo, un solo
botón) o no. En nuestro ejemplo, el botón deja de funcionar; pasa a
interesarnos el trabajo a través del ordenador. Y por el otro lado, ya
debes ir preparando algunas líneas de programa para el software que
hayas seleccionado. Nosotros hemos optado por una aplicación en VB6 que
nos muestra varias cosas: por ejemplo, que el sistema se conecta y se
desconecta del puerto de manera efectiva y sin inconvenientes
(funcionamiento óptimo de la instrucción de PORTC.0). Luego vemos un
botón que se encargará de prender y apagar el LED en el dispositivo y un
círculo de color que emula esta acción, tal como sucede en el equipo
mientras es controlado en forma remota. Por último, un pequeño texto que
cambia de “Encendido” a “Apagado” acompañando la acción del LED. |
|||||
Aspecto de la aplicación que te brindamos para que puedas comenzar a experimentar |
|||||
Tal como se podía ver
en el circuito, hemos conectado al LED en PORTC.1 y al botón en PORTC.2.
La aplicación es sencilla pero intenta ser didáctica para que comiences
a hacer tus primeros pasos en el manejo del puerto USB. Debes tener
conciencia que dominar este puerto es la llave de salida para que tus
diseños puedan tener aplicaciones exitosas, efectivas y prácticas, sobre
todo, en el mundo de los ordenadores portátiles. |
|||||
Observa que además tienes dos lazos cerrados que si el programa del PIC
cae allí dentro se “cuelga” y no salé más hasta que lo reinicies. Estos
puntos son los momentos en los que entrega los datos al bus desde el
buffer (DoUSBOut) o aquellas instancias en las que solicita los datos
cargados dentro del buffer (DoUSBIn). Si en cualquiera de los casos no
encuentra valores, se quedará allí esperando que lleguen y tú debes
advertirlo rápidamente para sacarlo de esa situación. Por eso te
entregamos los programas completos. Para que puedas experimentar a
partir de un modelo que sabemos que funciona. Ahora depende de tu
imaginación y tu creación. Esto recién comienza, amigo. Proton e EasyHID
lograron hacerlo muy fácil, ahora la conectividad USB está en tus manos.
|
|||||
Indice de Montajes 2 | |||||
|