Está en la página 1de 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

También podría gustarte