lunes, 30 de mayo de 2011

USB con microcontroladores AVR

Hoy en día cuando surge la necesidad de crear sistemas embebidos con microcontroladores, los cuales deben interactuar con computadores, se hace completamente necesaria la implementación de una interfaz a través del puerto USB. Anteriormente se hacía uso del puerto paralelo del computador, y posteriormente el puerto serial RS-232; sin embargo, estos puertos se están volviendo obsoletos y ya casi todos los computadores que salen al mercado no disponen de estos puertos.

Para tratar de solucionar este inconveniente, en el mercado se encuentra una popular interfaz que permite convertir desde RS-232 a USB. Sin embargo, implica un costo adicional y más espacio físico. A continuación se muestra una popular interfaz de RS-232 a USB:


De esta forma, es completamentamente recomendable incluir el protocolo USB directamente con el microcontrolador y así aprovechar las ventajas que trae consigo el uso de este tipo de puerto.

Los fabricantes de microcontroladores ya incluyen en sus chips el hardware necesario para hacer uso del puerto USB. Atmel incluye en algunos de sus microcontroladores de 8 bits el hardware necesario para la implementación de puerto USB.

Así, se desarrolló una librería completamente libre para trabajar con USB, tanto en modo HOST como en modo DEVICE. La librería se llama LUFA, y se puede encontrar una documentación muy completa en su página oficial.


Las clases que soporta esta librería son:
  • Audio: Device
  • CDC: Device, Host
  • HID: Device, Host
  • Midi: Device, Host
  • Almacenamiento masivo: Device, Host
  • Impresora: Host
  • RNDIS: Device, Host
  • Imagen fija: Host

La única limitante que tiene esta librería es que funciona únicamente con los microcontroladores USB de AVR. Para quienes no tienen a disposición un dispositivo microcontrolador que incluya en su hardware una interfaz USB, existe la librería V-USB, mediante la cual es posible implementar el protocolo USB con cualquier dispositivo AVR, sin necesidad que éste sea de tipo USB.



La librería V-USB funciona con cualquier microcontrolador AVR con al menos 2 kB de memoria Flash, 128 bytes de RAM y un reloj de al menos 12 MHz. La documentación de esta librería se encuentra en el sitio oficial.

Las dos opciones mencionadas anteriormente son bastante buenas e incluyen una gran cantidad de documentación y ejemplos. Con todas estas herramientas a disposición, hago la invitación a desarrollar proyectos con interfaz USB, y dejar atrás la vieja interfaz RS-232.

No hay comentarios:

Publicar un comentario