Вы находитесь на странице: 1из 11

Conexin USB

Conexin USB PIC18F2550

24/05/2011 Sistemas Integrales en Electrnica y Software. Vctor David

Conexin USB PIC18F2550

SIES Rev. 1.0.0.0

Pgina 1

Conexin USB PIC18F2550

USB
Universal Serial Bus es un bus estndar para la comunicacin serie. Originalmente concebido como un reemplazo para las conexiones serie y paralelo de una PC para conectar ratones, teclados e impresoras, que se ha convertido en la interfaz estndar entre un PC y sus perifricos tan variados como se ha podido hacer.

Con la adicin de dispositivos embebidos, e interfaces ampliadas ms all de la PC hacia cualquier plataforma, con lo que se benefician y se agregan caractersticas, incluyendo: Audio, para compartir archivos digitales, conexiones de audio para automviles, conexin a MP3. Escneres de mano y metros, para descargar datos a travs de una memoria USB hacia una PC. Control industrial, para actualizar el software, descarga de diagnstico para el anlisis Monitores clnicas de los pacientes, para actualizar el software, descarga de diagnstico para el anlisis La empresa Microchip ofrece soluciones para dispositivos USB. Definicin de Hardware Con el entorno de desarrollo de Microchip y bibliotecas libres, se puede integrar las funciones de USB en cualquier aplicacin existente en tan solo microcontrolador, reduciendo as el costo total del sistema. Se selecciona el microcontrolador (PIC) 18F2550, de la empresa Microchip, el cual incluye el modulo USB, con lo que comunicara con la computadora. Caractersticas: Modulo USB v2, soportando alta velocidad (12Mb/s), y baja velocidad (1.5Mb/s). Frecuencia de trabajado de hasta 48Mhz, pudiendo utilizar reloj interno. 32KBytes de memoria Flash. 16385 palabras de instrucciones. 2048Bytes SRAM. 2 Mdulos CCP. Conexin USART, I2C. 10 canales de ADC de 10bits. Programacin en circuito (ICSP).
SIES Rev. 1.0.0.0 Pgina 2

Conexin USB PIC18F2550

Niveles de prioridad de interrupciones. Destacando el modulo USB, se modifica las libreras proporcionadas por Microchip, en el paquete llamado Microchip Solutions, utilizando el modulo USB Device HID Custom Demos, donde se elige la funcin o tipo de conexin HID, en la cual se reconoce el pic 18F2550 como dispositivo de interfaz humana; en dichas libreras se toma el proyecto llamado USB Device - HID - Simple Custom Demo - C18 - PICDEM FSUSB, donde se modifica y actualiza para ser compatible con el hardware a utilizar. El siguiente diagrama muestra las conexiones necesarias para el modulo USB.

SIES Rev. 1.0.0.0

Pgina 3

Conexin USB PIC18F2550

SIES Rev. 1.0.0.0

Pgina 4

Conexin USB PIC18F2550

Descripcin de conexiones: El microcontrolador requiere de: Cristal oscilador de 20MHz. Capacitor 470nF. Conector USB (D+, D-, GND, VDD). Boton reset. Circuito requiere: 3 LEDs representando las salidas digitales. 2 Botones representando las entradas digitales. 1 Potencimetro representando entrada analgica. Conector ICSP Para la programacin del microcontrolador se utiliza la programacin serial en circuito (ICSP), con lo que se programa con solo 5 cables necesarios, y directamente sobre el protoboard o circuito impreso. El conector proporciona 5volts respecto a GND, voltaje de programacin, reloj de programacin y datos; con lo que la programacin es rpida y sencilla, incluso directamente desde MPLAB, mediante un circuito programador, por lo que se eligi una versin modificada del circuito programador PicKit 2 lo que facilita tiempo, debbuger en tiempo real, entre otros.

SIES Rev. 1.0.0.0

Pgina 5

Conexin USB PIC18F2550

Firmware De las libreras proporcionas por Microchip, solo 2 son necesarias de comprender y modificar; el archivo Main.c, archivo HardwareProfile - PICDEM FSUSB.h. Archivo HardwareProfile - PICDEM FSUSB.h: Contiene la definicin del hardware a utilizar, donde se definen los botones, leds y potencimetro conectados. Definicin de LEDs (Cdigo) /** LED ************************************************************/ #define mInitAllLEDs() LATCbits.LATC0 = 0; TRISCbits.TRISC0=0; LATCbits.LATC1 = 0; TRISCbits.TRISC1=0; LATCbits.LATC7 = 0; TRISCbits.TRISC7=0; #define mLED_1 #define mLED_2 #define mLED_3 LATCbits.LATC0 LATCbits.LATC1 LATCbits.LATC7

Definicin de botones /** SWITCH *********************************************************/ #define mInitAllSwitches() TRISCbits.TRISC2=1;TRISCbits.TRISC6=1; #define mInitSwitch2() TRISCbits.TRISC2=1; #define mInitSwitch3() TRISCbits.TRISC6=1; #define sw2 PORTCbits.RC2 #define sw3 PORTCbits.RC6 Definicin de potencimetro /** POT ************************************************************/ #define mInitPOT() {TRISAbits.TRISA0=1;ADCON0=0x01;ADCON2=0x3C;ADCON2bits.ADFM = 1;} Archivo Main.c: Contiene los mtodos donde se activa el puerto USB, se detectan las entradas y salidas. De los mtodos a modificar son: main y ProcessIO; donde el mtodo main es el encargado de activar todas las salidas, limpiar variables; y el mtodo ProcessIO encargado de decidir las posibles entradas y salidas, de acuerdo a los datos recibidos va USB. Los mtodos y libreras restantes son muy tiles y necesarios para el correcto funcionamiento del mdulo USB, por lo que no deben modificarse.
SIES Rev. 1.0.0.0

Pgina 6

Conexin USB PIC18F2550

La deteccin de paquetes enviados via USB es detectado mediante interrupciones: void YourHighPriorityISRCode() { //Check which interrupt flag caused the interrupt. //Service the interrupt //Clear the interrupt flag //Etc. #if defined(USB_INTERRUPT) USBDeviceTasks(); #endif } Se define el USB mediante interrupciones de ms alto nivel, con eso se logra que cada interrupcin se genere, se pregunte si es activada o generada por USB.

SIES Rev. 1.0.0.0

Pgina 7

Conexin USB PIC18F2550

Definicin de Software Al utilizar las libreras de microchip para el modulo USB, se requiere un software compatible con esto, por lo cual se utiliza el software compatible con las libreras, proporcionado por Microchip llamado HID Pnp Demo, modificando la versin disponible para visual c++, al cual se le agrego botones y cuadros de texto para nuestro fin. Cuando el dispositivo esta desconectado, el software tiene la siguiente apariencia:

Donde muestra que el dispositivo esta desconectado, desactivando todas las funciones.

Cuando el dispositivo est conectado, el software tiene la siguiente apariencia: Donde muestra que el dispositivo est conectado, activando todas las funciones. Muestra el voltaje entre 0 y 5V variables por el potencimetro. 3 botones que modifican el estado de los LEDs. Cuadros de texto mostrando la hora, y pudindola modificar. Etiquetas mostrando el estado de los botones
SIES Rev. 1.0.0.0 Pgina 8

Conexin USB PIC18F2550

Todas las funciones requeridas para la aplicacin, transmitidas y recibidas por el microcontrolador se basan en 2 variables globales: OUTBuffer[0] OUTBuffer[1] Las cuales determinan el estado de los botones, leds, y potencimetro. La variable OUTBuffer[0], indica que empieza una transmision. La variable OUTBuffer[1], indica el dato a transmitir, este dato sera recibido por el microcontrolador regresando el mismo dato, y decodificando para su posterior procesamiento. Los posibles estados se muestran a continuacin:
INBuffer[1] == 0x37 Lectura de potenciometro

Lee el estado del canal analogico y lo muestra en forma de barra.


OUTBuffer[1] = 0x81 Estado Boton2

Detecta el estado del boton2, (Presionado, no presionado).


OUTBuffer[1] = 0x25 Hora Actual

Hora actual leida desde el microcontrolador.


OUTBuffer[1] = 0x15 Minutos Actuales

Minutos actuales leidos desde el microcontrolador.


OUTBuffer[1] = 0x05 Segundos Actuales

Segundos actuales leidos desde el microcontrolador.


OUTBuffer[1] = 0x45 Nueva hora

Modifica la hora actual por una nueva. Se asigna desde software, se envia al microcontroladro, y se recibe la nueva hora.
OUTBuffer[1] = 0x80 Modificacion de LED1 y LED2

Detiene el parpadeo de LED 1 y LED2, enciende o apaga ambos leds.


OUTBuffer[1] = 0x90 Estado Boton1

Determina el estado del boton1, modifica estatus.

SIES Rev. 1.0.0.0

Pgina 9

Conexin USB PIC18F2550

Bibliografa

http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=265 1&param=en534497

SIES Rev. 1.0.0.0

Pgina 10

Вам также может понравиться