Documentos de Académico
Documentos de Profesional
Documentos de Cultura
play. Fsicamente, los datos usb son transmitidos por un par trenzado (D+,D-) adems de la tierra y el voltaje (+5V), suelen ser conectores tipo A o tipo B
La clasificacin de los modos de trabajo del usb son: Usb HID Usb CDC
USB CDC
En este modo de trabajo, la conexin USB se realiza por medio de un driver previamente instalado en el disco duro de nuestro sistema. Este modo de trabajo incluye la comunicacin serial solo se tienen que modificar algunos identificadores dentro de la librera. Microchip proporciona el driver mchpcdc.inf para los pic de la familia 18F2550 o 18F4550.
USB en ISIS
Para poder trabajar con el conector USB que proporciona ISIS, es necesario instalar los drivers para que funcione la simulacion de la siguiente manera:
Incio, Todos los programas, Proteus 7 Profesional, Virtual USB, Install USB Drivers
Una vez instalado los drivers podemos simular nuestro conector USB. Buscamos el conector USB y aparecer la siguiente imagen:
USB en CCS
Las libreras y funciones a utilizar son las siguientes: #define usb_con_sense_pin NUMERO_PIN #include <usb_cdc.h> usb_cdc_init(); usb_init(); Usb_task(); usb_enumerated();
#include <usb_cdc.h>
usb_cdc_init();
Es la lnea que define el inicio de la conexin usb dentro del programa
usb_task();
Es una funcin que se encarga de leer el bus de datos del puerto usb
usb_enumerated();
Es una funcin que permite saber si la PC le a asignado un numero al puerto USB emulando una conexin RS232 (Puerto COM)
Cambios en la libreria
Primero tenemos que cambiar algunas lneas de nuestra librera usb_desc_cdc.h Tenemos que buscar la siguiente parte de cdigo:
Y cambiar esas lneas por: 0xD8,0x04,//vendor id(0x04D8 is Microchip, or is it 0x0461??)==8,9 0x0A,0x00,//product id == 10,11
La palabra de configuracin es diferente y est dada por los siguientes bits: HSPLL.- Cristal de alta frecuencia con PLL NOWDT NOLVP NODEBUG USBDIV.- Frecuencia del usb a 48MHz. PLL5.- Divide la frecuencia de un cristal entre 5 CPUDIV1. Divisor de frecuencia de 96 a 48 MHz VREGEN.- Regulador de 3.3V interno para USB NOPUT NOBROWNOUT
Programa Ejemplo
En este programa vamos a encender 5 leds conectados en el puerto D0 al D5, enviando las 5 primeras letras del abecedario y las 5 ltimas letras para apagarlos utilizando para ello la herramienta Virtual Terminal
if(usb_enumerated()) { i=usb_cdc_getc(); /*Encendido de leds*/ if(i=='A') output_high(PIN_D0); if(i=='B') output_high(PIN_D1); if(i=='C') output_high(PIN_D2); if(i=='D') output_high(PIN_D3); if(i=='E') output_high(PIN_D4);
if(i==V') output_low(PIN_D0); if(i==W') output_low(PIN_D1); if(i==X') output_low(PIN_D2); if(i==Y') output_low(PIN_D3); if(i==Z') output_low(PIN_D4);
do { usb_task(); if (usb_enumerated()) { delay_ms(500); q = read_adc(); if (q!=q1) { p = 5.0 * q / 1024.0; printf(usb_cdc_putc,"\r Voltage=%01.2fV", p); } q1=q; } } while (TRUE);
Prcticas 1 y 2
Realizar las respectivas interfaces en Visual Basic 6.0 para los 2 programas anteriores. Investigar cual es el procedimiento para poder leer el puerto COM y mostrar la cadena enviada por el pic