You are on page 1of 4

Desarrollando para el puerto USB con la familia 18F2455/2550/4555/4550 y la PICDEM FS USB DEMONSTRATION BOARD de Microchip Autor: Ing.

Carlos Fernando Jimnez Universidad Industrial de Santander carlosfjimenezp@yahoo.com.mx Enero de 2005 El Bus serie universal o USB de las siglas en ingles Universal serial Bus es un puerto para la conexin de dispositivos externos con la computadora personal PC que ofrece un gran numero de ventajas frente a los muy conocidos puertos serie paralelo y PCI, y se debe pensar seriamente en el cuando se tiene proyectado el desarrollo de un perifrico para el PC. Cuando el puerto USB fue diseado se parti de la experiencia recogida de buses como Serie, ISA ,PCI y Paralelo tratando de corregir sus principales falencias como lo son los conflictos entre diferentes dispositivos que deben compartir recursos limitados tales como los canales de DMA, interrupciones y puertos, el reducido numero de perifricos que se poda anexar a un computador y cuya cantidad dependa de cuantas ranuras PCI y puertos serie o paralelo tuviera la placa madre, un problema no menos grave y que afecta directamente los desarrolladores es la dificultad para escribir programas para controlar estos dispositivos que diferan de gran manera en la forma de utilizar los recursos del PC, para finalizar la necesidad de apagar el sistema completo para anexar un nuevo dispositivo es muchas veces critico cuando se trata de un servidor que da soport a una red de una empresa o de una universidad y en el mejor de los casos para un usuario casero resulta bastante molesto. En su desarrollo se busc un bus de alta velocidad, con capacidad para anexar una gran cantidad de dispositivos al PC sin problemas de conflictos y salvaguardando los limitados recursos del sistema, con capacidad para conexin y desconexin de perifricos en caliente1 y que facilitara la escritura del software accesando los dispositivos de una forma estndar.

Arquitectura USB En la arquitectura USB resaltan tres partes a las cuales me referir por sus nombre en ingles guardando compatibilidad con la literatura tcnica: El Host Controller el cual es el controlador USB maestro que se encuentra en el PC y el cual tiene la funcin de generar y controlar las transferencias, el Root Hub o concentrador raiz el cual esta inmediatamente debajo del Host Controler y tiene como funcin administrar la conexin y desconexin de dispositivos USB y enrutar los paquetes de datos al dispositivo a que va dirigido y el USB Device o dispositivo USB entre los cuales se encuentran perifricos tales como cmaras escner impresoras, memorias flash, etc, otro dispositivo muy importante aunque no imprescindible son los HUBs USB externos o concentradores que permiten ampliar un canal USB a varios. Una de las principales ventajas del puerto USB es su ancho de banda el cual se administra inteligente entregando un canal mas amplio y sin control de errores a dispositivos que requieren un flujo de informacin continuo y en los cuales un error no es critico como por ejemplo dispositivos de audio o video, y un canal mas estrecho y con control de errores a dispositivos en los cuales el ancho de banda no es critico pero si la integridad de los datos como lo son las impresoras y escners.

Host Controller & Root Hub 1.x

Dispositivo USB LS

Dispositivo USB FS

Figura 1 Arquitectura Bsica USB 1.x Actualmente los dispositivos USB con especificacin 2.0 soportan tres velocidades LS o Low Speed a 1.5Mb/s2, FS o Full Speed a 12Mb/s y HS o Hight Speed a 460Mb/s, no obstante se debe tener en cuenta que la efectividad de la transferencia baja al agregar los Bytes de protocolo segn la siguiente consideracin: Segn las especificaciones 1.x los datos son empacados en paquetes que tiene como mximo 1023 bytes para transferencias asncronas, y 64 bytes para los otros tipos de comunicacin, a todos estos
2

Sin suspender la alimentacin del sistema

bits por segundo

paquetes se deben agregar los bytes de protocolo los cuales pueden ser de 9, 13 o 45 bytes como se indica en la tabla 1. Modo Bytes de protocolo Asncrona 9 Interrupcin 13 en FS y 19 en LS Bulk 13 Control 45 en FS y 63 en LS Tabla 1. Cantidad de Bytes de protocolo Como se dijo antes esta carga extra produce una eficiencia real que va desde el 99% para paquetes de 1023 bytes hasta 36% para paquetes de 8 bytes. Facilidades para el desarrollo de dispositivos USB Microchip, unos de los ms importantes fabricantes de microcontroladores tiene entre su gama alta a la familia 18F2455/2550/4555/4550 dispositivos que entre sus mltiples perifricos cuentan con una interfaz USB 2.0 con compatibilidad para LS y FS que permite una complejidad moderada a la hora de realizar una interfaz utilizando este puerto. Estos dispositivos cuentan con el hardware necesario para realizar una conexin USB a LS o FS, las operaciones de protocolo deben ser programadas y consumen importantes recursos del sistema como lo son algunas interrupciones y muchos ciclos de maquina de tal forma que sera necesario incluir en el programa un complejo set de rutinas para controlar el puerto USB, esta situacin incrementa la complejidad al desarrollar aplicaciones donde se requiere alto rendimiento y es critico un control exacto del tiempo, por ejemplo en un sistema de adquisicin temporizado internamente, no obstante no se debe descartar este dispositivo a la hora de desarrollar pues se deben tener en cuenta la enormes ventajas que ofrece este, entre las cuales encontramos un bajo costo, altsimas calidad, flexibilidad y el invaluable respaldo y soporte tcnico de su fabricante Microchip. No cabe dudas de que la labor de escribir las rutinas para control del puerto USB para estos microcontroladores resultara en una ardua tarea que seguramente consumira algunos meses de desarrollo y nos obligara a ser unos expertos en tecnologa USB, previendo esta situacin Microchip nos facilita herramientas muy poderosas que agilizan enormemente tareas de

desarrollo, entre ellas encontramos el kit PICDEM FS USB DEMONSTRATION BOARD el cual consiste en un circuito en el cual se encuentran un PIC18F4550 y algunos perifricos tales como un potencimetro, algunos leds, un sensor de temperatura y un chip RS232 entre otras cosas, lo mas interesante de este kit es el software de ejemplo que lo acompaa en el cual se incluye todo el cdigo fuente en C en un framewrk impecablemente ordenado y claro donde ya se encuentran escritas todas las rutinas necesarias para la comunicacin USB para dispositivos clase de interfaz humana o HID, dispositivos de comunicacin o CCD y especficos del vendedor, en este caso de Microchip, estas rutinas reducen la tare a de controlar este puerto a la simple accin de llamar algunas funciones previamente escritas. A las rutinas y ejemplos para la programacin del dispositivo se suman los controladores para el sistema operativo Windows y una librera de acceso dinmico mpusbapi.dll que permiten la conexin entre las aplicaciones para PC y el microcontrolador, mas un ejemplo escrito en C++ donde se ilustra el uso de esta librera. Detalles del Kit PICDEM FS USB DEMONSTRATION BOARD Como se dijo anteriormente el kit es basicamente una placa de circuito impreso con un conector USB en la cual se encuentra un microcontrolador PIC18F4550 pre programado con una aplicacin demo que acompaado por una aplicacin para PC permiten visualizar en la pantalla de un ordenador la temperatura entregada por un sensor en la placa mas la posicin de un potencimetro que tambin forma parte del sistema y el estado de algunos interruptores y leds, una d las caractersticas mas funcionales de este sistema es que el PIC18F4550 puede ser fcilmente reprogramado a travs del mismo puerto USB con la ayuda de otra aplicacin para PC que se incluye en el paquete, esto sin requerir un programador externo ni el desmonte del dispositivo, es importante anotar que estos microcontrolador se programan normalmente usando un programador externo como el PICSTAR PLUS y no utilizando la interfaz USB, en este caso la programacin de este dispositivo se logra a travs del puerto USB gracias a una aplicacin pregrabada en la flash conocida como BOOT LOADER que ocupa las primeras posiciones de la flash del micro la cual prepara el micro para recibir el programa a travs

el puerto USB y grabarlo en las posiciones restantes de la flash. Con lo anteriormente descrito queda claro que la PICDEM FS USB DEMONSTRATION BOARD no es solo una tarjeta de demostracin como su nombre lo indica, sino que es un sistema de desarrollo y entrenamiento muy cmodo para el usuario. Desde mi punto de vista hay cuatro inconvenientes que se deben tener en cuenta si se quiere usar esta placa como sistema de desarrollo para nuestras aplicaciones, el primero es que el cdigo fuente y las libreras para el microcontrolador estn escritas en C y los compiladores de C a diferencia del compilador en ensamblador no es gratuito, asi que si se piensa en usar este sistema para desarrollo tambin hay que tener en cuenta que hay que comprar un compilador de C el cual puede ser el MP18 que tambin ofrece Microchip, el segundo inconveniente es que la placa trae el microcontrolador firmemente soldado as que no podemos simplemente desarrollar nuestra aplicacin y desmontar el micro para ponerlo en nuestro circuito, o reemplazarlo en caso de un desafortunado accidente. El tercer inconveniente es que solo permite un miembro de la familia, especficamente el PIC18F4550, y finalmente el cuarto y ltimo inconveniente es que para que para que el microcontrolador pueda ser programado usando este sistema, anteriormente debi haber sido programado con el programa BOOT LOADER usando un programador externo como se explic antes. No obstante si se cuenta con un programador externo y el compilador de C, el kit de la PICDEM FS USB DEMONSTRATION BOARD sigue siendo una excelente opcin para el desarrollo de dispositivos USB para toda la familia 18F2455/2550/4555/4550 aplicando ingeniera al asunto. Usando la PICDEM FS USB DEMONSTRATION BOARD para acondicionar otros dispositivos. En el manual PICDEM FS USB DEMONSTRATION BOARD USERS GUIDE se encuentran los planos de esta placa donde se puede ver claramente como esta conectada con el

puerto USB del PC de forma tal que es posible conectar en un protoboard cualquier otro micro de esta familia a partir de estos planos pues todos los miembros de esta familia cuentan con el mismo set de pines para conexin USB aunque distribuidos de diferente forma, tambin es necesario realizar las conexiones de los pines RA1 y RA2 que son usados para el sensado de la fuente de alimentacin y los swiches en RB4 y RB5 que conmutan entre el modo BOOT LOADER o aplicacin, si el microcontrolador usado no cuenta con el puerto D es necesario modificar la aplicacin DEMO para que esta funcione correctamente eliminando los vnculos a este puerto, una vez realizadas las correcciones al circuito y al software es necesario realizar la programacin del BOOT LODER en la flash del micro para lo cual es necesario compilar el proyecto que se encuentra en la carpeta BOOT del framework, una ves compilado, el micro debe ser programado usando un programador externo, luego de realizados estos pasos el sistema queda listo para ser programado a travs del puerto USB cuantas veces sea necesario. Es importante anotar que la PICDEM FS USB DEMONSTRATION BOARD viene construida usando un cristal de 20MHz y en caso de querer usar otro cristal es necesario incluir algunas lneas de configuracin en el programa principal del BOOT LOADER, a continuacin se muestran las lneas que se deberan incluir para configurar el microcontrolador para realizar transferencias a FS y con una frecuencia interna de trabajo de 48 Mhz en caso de usar un cristal de 8Mhz en lugar del de 20Mhz, no se debe olvidar que cuanto mas pequeo sea el valor de las frecuencias que maneje un circuito menos es la interferencia causada en el resto del circuito y es menos critico el diseo de circuito impreso. #pragma #pragma #pragma #pragma config config config config PLLDIV CPUDIV USBDIV FOSC = = 2 = OSC3_PLL4 = 2 HSPLL_HS

Un ultima observacin es que si se esta utilizando un microcontrolador con BOOT LOADER el spcript para el linker debe ser modificado para que realice el mapeo del programa de nuestra aplicacin a continuacin del rea en donde se encuentra grabado el BOOT LOADER, si esto no se hace resultar en sobre escritura del BOOT LOADER con no muy buenas consecuencias.

Las ltimas versiones del software que viene incluido en el kit de la PICDEM FS USB DEMONSTRATION BOARD y la toda documentacin necesaria pueden ser descargados gratuitamente en la web de Microchip www.microchip.com .

Referencias. MICROCHIP, picdem fs usb demonstration board users guide. DON ANDERSON; USB system architecture (USB 2.0) MindShare Inc, Addison-Wesley developers press. MICROCHIP, PIC18F2455/2550/4455/4550 Data Sheet

You might also like