Documentos de Académico
Documentos de Profesional
Documentos de Cultura
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
#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>
3. MATERIALES
1 Multmetro Digital
Fuente de energa
Bread board
O
Protoboard
Resistencias de Diseo
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
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