Você está na página 1de 9

UNIVERSIDAD PRIVADA DEL VALLE

FACULTAD DE INFORMATICA Y ELECTRONICA


INGENIERIAEvaluacin
BIOMEDICA
CAMPUS TIQUIPAYA

DISEO DE SISTEMAS DIGITALES


Informe de Laboratorio N 5

COMUNICACIN USB CON PIC DE GAMA


ALTA
Grupo B
Estudiante: Ariel Adrin Carvajal Pardo
Docente: MSc. Ing. Gerson Prez Villarroel
Cochabamba 17 de Noviembre
Gestin II 2015
UNIVERSIDAD PRIVADA DEL VALLE
SERVICIOS DE LABORATORIO
LABORATORIOS DE DISEO DE SISTEMAS DIGITALES

PRACTICA N 5
TRANSMISIN DE DATOS CON LA INTERFACE I2C
1. OBJETIVOS.
El Estudiante:
Realizara en breadboard desarrollo del circuito la implementacin del puerto USB.
Desarrollar el firmware programa que configure el modulo USB del PIC.
Desarrollar la aplicacin de escritorio que servir de interfaz de comunicacin entre el
usuario y el microcontrolador.
Diseara e implementara una interface en la PC para la transmisin de datos por USB.
2. MARCO TEORICO
Vamos a mostrar el procedimiento para conectar un PIC de gama alta, el 18F4550, al PC
por el puerto USB. Se va a tratar de una clase de dispositivo USB CDC (Communication
Device Class) emulando un dispositivo RS232 mostrado como un puerto COM en windows.
El ejemplo consiste en una comunicacin bsica que muestra en el PC el valor de tensin
ledo del conversor A/D. Dicha lectura la activaremos o desactivaremos desde el PC
pulsando la barra espaciadora.
En el PIC 18F4550 la configuracin de fuses va a tener su importancia puesto que de ellos
va a depender, entre otros, las frecuencias de reloj que van a ser utilizadas.
#fuses HSPLL //Uso de un crystal oscilador >4 MHz usando el PLL
#fuses NOWDT //No habilitacin de reset por watchdog
#fuses NOLVP //Inhabilitacin de programacin a bajo voltaje
#fuses USBDIV //Clock del mdulo USB se tomar del PLL/2 (48MHz)
#fuses PLL5

//La frecuencia se dividir por 5 en el PLL

#fuses CPUDIV1 //El clock para el procesador sern los 96 MHz del
PLL divididos para 2 (48MHz)
#fuses VREGEN //Habilita regulador 3,3 voltios para el mdulo USB
Vamos a ver el porqu de esta configuracin, sobre todo en lo que respecta a la frecuencia
de reloj. El objetivo es obtener 48 MHz en el mdulo del USB por mediacin del PLL. Esta
frecuencia no tiene por qu coincidir con la del cristal empleado. Fijndonos en el diagrama
de bloques interno representado del PIC18F4550 (se puede encontrar tambin en el
datasheet del PIC18F4550 de Microchip) deberemos conseguir obligatoriamente 4 MHz a la
salida del MUX controlado por PLLDIV. Como empleamos un cristal de 20MHZ deberemos
dividir por 5 esta frecuencia para obtener los 4 MHz. Esto lo conseguimos mediante el fuse
PLL5.

Con respecto a los drivers que vamos a emplear van a ser, por un lado, lgicamente, el
correspondiente al PIC 18F4550 y el correspondiente a la librera de uso de una clase de
dispositivo CDC USB.
#include <18F4550.h>

//PIC a emplear

#include <usb_cdc.h>

// Librera de control USB

Las funciones utilizadas para control USB:


usb_cdc_init();
usb_init();
usb_task();

//Inicializacin del modo CDC


//Inicializacin del control del USB
//Deteccin de la conexin de dispositivo USB

usb_enumerated(); //Devuelve TRUE si dispositivo ha sido


enumerado por el PC
usb_cdc_kbhit(); //Devuelve TRUE si hay recepcin de datos
usb_cdc_putc(); //Envo de caracteres al buffer de trasmisin
usb_cdc_getc(); //Lectura del buffer de recepcin
Ya tenemos el programa para el PIC. Pero ahora necesitamos que el PC reconozca el
dispositivo USB al conectarlo. Para ello deberemos modificar en el archivo
"usb_desc_cdc.h", que se encuentra en la carpeta "drivers" en el directorio de instalacin del
PIC C COMPILER, estas dos lineas:
0x61,0x04, //vendor id(0x04D8 is Microchip,or is it 0x0461 ??)==8,9
0x33,0x00, //product id ==10,11
Se deben sustituir respectivamente por estas dos:
0xD8,0x04, //vendor id(0x04D8 is Microchip, or is it 0x0461??)==8,9
0x0A,0x00, //product id ==10,11
Indican el identificador de fabricante (Microchip) y al identificador de producto (familia
PIC18), y permiten la localizacin del driver de windows cuando se conecta el dispositivo
USB.

3. MATERIALES

1 Multmetro Digital

Fuente de energa

Bread board
O
Protoboard

Resistencias de Diseo

Cables para Fuente

1 Microcontroladores 18F4550

LEDS

Potencimetros

4. PROCEDIMIENTO.
Parte 5.1
Disear e implementar la comunicacin entre un PIC 18F4550 y una aplicacin de escritorio,
utilizando un entorno de programacin Multiplataforma, que nos permita ejecutar la aplicacin en
diferentes sistemas operativos.
Diagrama de Bloques general.

CODIGO MAESTRO
#include <18F4550.h>
#device adc=8
#fuses HSPLL,NOWDT,NOPROTECT,NOLVP,NODEBUG,USBDIV,PLL5,CPUDIV1,VREGEN
#use delay(clock=48000000)
#define USB_CON_SENSE_PIN PIN_B2
#include <usb_cdc.h>
char c;
float dato;
void main()
{
setup_adc_ports(AN0); //se usara el bit 0 del puerto A
setup_adc(ADC_CLOCK_INTERNAL); //se usara reloj interno
usb_cdc_init();
usb_init();
usb_task();
while(!usb_enumerated()){}
printf(usb_cdc_putc,"Voltaje =

");

while(1){
set_adc_channel(0); //se lee el canal 0
dato=read_adc(); //se lee y se guarda en la variable datos
dato = (dato * 5 / 255);
delay_us(25);//tiempo de espera

usb_task();
if(usb_enumerated())
{
if(usb_cdc_kbhit())
{
printf(usb_cdc_putc,"\fVoltaje = %01.2f ",dato);
}
}
delay_ms(100);
}
}

SIMULACION

RV1(2)

RV1

84%

U1
3

100k

2
3
4
5
6
7
14
13
33
34
35
36
37
38
39
40

18

RA0/AN0
RC0/T1OSO/T1CKI
RA1/AN1
RC1/T1OSI/CCP2/UOE
RA2/AN2/VREF-/CVREF
RC2/CCP1/P1A
RA3/AN3/VREF+
RC4/D-/VM
RA4/T0CKI/C1OUT/RCV
RC5/D+/VP
RA5/AN4/SS/LVDIN/C2OUT
RC6/TX/CK
RA6/OSC2/CLKO
RC7/RX/DT/SDO
OSC1/CLKI
RB0/AN12/INT0/FLT0/SDI/SDA
RB1/AN10/INT1/SCK/SCL
RB2/AN8/INT2/VMO
RB3/AN9/CCP2/VPO
RB4/AN11/KBI0/CSSPP
RB5/KBI1/PGM
RB6/KBI2/PGC
RB7/KBI3/PGD

VUSB

RD0/SPP0
RD1/SPP1
RD2/SPP2
RD3/SPP3
RD4/SPP4
RD5/SPP5/P1B
RD6/SPP6/P1C
RD7/SPP7/P1D
RE0/AN5/CK1SPP
RE1/AN6/CK2SPP
RE2/AN7/OESPP
RE3/MCLR/VPP

15
16
17
23
24
25
26

J1
1
3
2
4

VCC
D+
DGND
USBCONN

19
20
21
22
27
28
29
30
8
9
10
1

PIC18F4550

R1
1k

R1(1)

LAYOUT

5. CUESTIONARIO.
1. Cmo se define la velocidad de transmisin de los bits en la comunicacin USB?
Hay que decir que el Host es el que controla la velocidad en la que circulan los datos en el
bus USB y que al ser un bus compartido, la velocidad real depender de la cantidad de
dispositivos que tengamos conectados a el en un momento determinado (mximo 127
incluyendo al Host). Por tanto los datos siguientes son solo tericos y de referencia.
Low speed: 1,5 Mbps. Soportado por las especificaciones 1.1, 2.0 y 3.0. Es la

velocidad utilizada por dispositivos como teclados, ratones, joystick, etc.


Full speed: 12 Mbps. Soportado por USB 1.1, USB 2.0 y USB 3.0. Un ejemplo

donde se utilizan estas velocidades es en transmisiones de audio.


High speed: 480 Mbps. Solo USB 2.0 y USB 3.0. Ejemplo transmisiones de video.
Super speed: 5Gbps solo soportado en dispositivos USB 3.0, y como he dicho antes
no conozco ningn microcontrolador que soporte esta especificacin.

2. Comentar las complejidades y virtudes de la comunicacin por medio del puerto USB que se
va a aplicar durante el desarrollo de esta la prctica.
Con respecto a las complejidades que se toparon a la hora de realizar este proyecto se
pueden mencionar que a la hora de programar y realizar el cdigo no se tuvo muchas
dificultades. Donde recin empezaron los problemas fueron a la hora de que la computadora
sea capaz de reconocer al USB-Virtual con eso de reconocer los drivers de funcionamiento.

6. CONCLUSIONES

Tras finalizar la prctica de laboratorio se lograron los objetivos que eran realizar en
breadboard desarrollo del circuito la implementacin del puerto USB. Desarrollar el
firmware programa que configure el modulo USB del PIC. Desarrollar la aplicacin de
escritorio que servir de interfaz de comunicacin entre el usuario y el microcontrolador.
Disear e implementar una interface en la PC para la transmisin de datos por USB.
Habiendo culminados los objetivos que se buscaban cubrir se da por terminada esta prctica
de laboratorio.

7. WEBGRAFA

Ledezma, J. H., 2010. BANCO DE TESIS. [En lnea]


Available at: http://dpicuto.edu.bo/tesis/facultad-nacional-de-ingenieria/carrera-deingenieria-electrica-y-electronica/1746-diseno-e-implementacion-de-un-controlador-logicoprogramable-mediante-el-microcontrolador-16f877a.html
[ltimo acceso: 11 marzo 2015].

S., I., 2007. PIC 16F877. [En lnea]


Available at: http://picmicrocontroller877.blogspot.com/2007/08/set-de-instrucciones.html
[ltimo acceso: 11 Marzo 2015].

Você também pode gostar