Está en la página 1de 11

USB- BULK TRANSFER, UTILIZANDO COMO INTERFAZ UN PIC18FXX5X

JUAN CAMILO ATENCIA AMN (UIS)


HOLGUER A BECERRA (UPB)

REQUISITOS:

1) Labview versin 2010 superior (Versin de prueba por 30 das).


2) Proteus v7.7 o superior (Versin de prueba).
3) Un PIC18f4550, CRYSTAL de 20MHZ y Cable USB
4) CSS 4.4 o superior (Versin de prueba)

FUENTES:

Todos los sources de este proyecto puedes descargarlos del siguiente Link:
Documentos del proyecto

Video: http://www.youtube.com/watch?v=bM5Shi3NC_4

Si no pueden ver el video porque estn bajo un proxy pueden utilizar el siguiente
link par saltrselo (uso netamente acadmico) http://danyelssoft.com/labs/proxy/

Prximo Manual: Comunicacin HID, utilizando software libre y PIC18Fxx5x.


USB

El puerto serie y el puerto paralelo ya quedaron atrs. Con la superpoblacin de


ordenadores porttiles, el espacio de accin de los enlaces por puerto serie
comienza a reducirse. Ya los ordenadores de mesa no traen un puerto de este tipo
utilizado antiguamente para las impresoras. Hoy todo trae conectividad USB. El
mouse, el teclado, la impresora multifuncin, el telfono mvil, el pen drive, el
disco duro porttil, el Blu-ray Player, el mdem, el router, todo se conecta a travs
de un puerto USB.

USB 2.0 MICROCHIP

Microchip permite mediante la programacin de sus PIC realizar una comunicacin

PIC<->PC de forma sencilla y eficaz.

Para ello usaremos la librera proporcionada por el propio fabricante llamada


MPUSBAPI, gracias a la cual podemos escribir y leer en el PIC entre otras muchas
otras cosas.

La velocidad de estos dispositivos es tericamente de 12Mbit/seg, pero para ello


necesitaramos una programacin compleja teniendo que abrir muchos pipes
(tuberas)) para poder alcanzar dicha velocidad.

FUNDAMENTOS

El USB es una comunicacin serie de alta velocidad. Ha sustituido en gran medida


al famoso puerto serie RS-232, ello se debe en gran medida a que el USB utiliza
seales digitales TTL, mientras que el puerto serie utiliza seales digitales entre -
12 y +12 voltios, adems de la gran diferencia de velocidad de transmisin entre
ambos dispositivos.

Existen en el mercado infinidad de conectores USB, entre los que destaca el


puerto MiniUSB debido a su alta estandarizacin en dispositivos porttiles, sin
dejar de lado al conector USB "normal" el cual usa nuestros ordenadores
personales.

La velocidad de transferencia a ido aumentando rpidamente a lo largo de estos


aos. Caben destacar 3 de estos:
USB 1.0: baja velocidad (hasta 1.5Mbit/seg) usado en dispositivos de interfaz
humana (HID) como ratones y teclados.

USB 2.0: Alta Velocidad (hasta 480Mbit/seg) unos 60Mg/seg.

USB 3.0: Giga Velocidad, en fase experimental, (hasta 4.8Gbit/seg) unos 600
Mg/seg. Los buses son mucho ms rpido debido a la incorporacin de una fibra
ptica al enlace de cobre.

La transmisin del USB se realiza mediante un cable de cobre de par trenzado con
una impedancia de unos 90 ohm llamados D+ y D-. Estos pueden dar energa a
dispositivos externos, con una tensin de 5V y un mximo consumo de 500mA.

Existe actualmente en el mercado el dispositivo llamado USB OTG (On The Go),
permitiendo actuar a un dispositivo como una PDA como servidor del enlace de
datos, es por ello que podemos conectar a la PDA otros dispositivos USB como
teclados o mouse.

CONFIGURACIN DE OSCILADOR

Un muy importante es la configuracin de oscilador en los PIC's de la familia


18Fxx5x que son los que soportan el USB 2.0( datasheet 18F2455-2550-4455-
4550 )..

La configuracin del oscilador nos indica que se debe obtener una entrada de
4Mhz independientemente de cualquier crystal que se est utilizando.

El mdulo USB Clock Source tiene a su entrada un PLL Prescaler, o sea un divisor
de frecuencia. En cada una de sus salidas vamos a tener FOSC dividida por 1, 2,
3, 4, 5, 6, 10 12. Y mediante PLLDIV que no es mas que un Multiplexor vamos a
seleccionar la que deseamos usar.

As si nuestro cristal es de 20 Mhz y en PLLDIV colocamos un 100 estaremos


dividiendo por 5 el valor de FOSC con lo que tendremos 4 Mhz a la salida del
MUX. Si por el contrario el cristal es de 4 Mhz y en PLLDIV colocamos un 000
entonces dividiremos por 1 FOSC con lo que tendremos tambin 4 Mhz a la salida
del MUX.
FIRMWARE REALIZADO EN CCS C COMPILER (AUTOR: Jos Adrian Perez).

El firmware es un pequeo cdigo de bajo nivel que se realiza para poder controlar
entradas y salidas dependiendo de las necesidades del usuario. Adems este
pequeo cdigo tendr el objetivo de poder entenderse con la computadora o PC,
realizando as la funcin de avisarte en el momento que ha sido conectado y
detectado por la PC. En ese momento el firmware estar en espera de cualquier
dato que se est enviando por la PC atreves de cualquier software que se est
utilizando. A continuacin se muestra en un pequeo diagrama a bloques de lo
que hace el firmware.

Figura 1: Diagrama de bloques firmware

ENVI Y RECEPCIN DE DATOS DESDE LABVIEW

La programacin en labVIEW (PicUSB-LabVIEW) se realizo a travs de un subvi


(picusb) para poder manipular fcilmente el dispositivo usb.
El subvi creado se muestra en la siguiente figura 2, donde muestra la
configuracin que se tiene que realizar.

Figura 2 Subvi

Para tener agregado este modulo (SubVI) a labVIEW, debe copiarse a la siguiente
direccin

C:\Archivos de programa\National Instruments\LabVIEW \user.lib\picusb

(Respetar el nombre de las libreras y carpetas)

Donde:

Vid_Pid: Es el nombre del vendedor y producto con el que fue configurado


nuestro dispositivo, en nuestro caso: "vid_0X04d8&pid_0010"

N.bytes a escribir: Nos indica el nmero de bytes o el tamao del dato que
vamos a transferir.

Dato a Enviar: Indica el dato que se va a enviar.

Retardo de entrada y salida: Nos indica a cada cuanto tiempo haremos la


capturar de datos. El tiempo tiene que indicarse en milisegundos.

N.bytes a Recibir: Aqu indicaremos el tamao de datos que estamos enviando


del dispositivo usb (microcontrolador o PicUSB).
Dato Recibido: En esta parte es donde capturaremos los datos que se estn
enviando del dispositivo y lo visualizamos en un grafica si estamos enviando datos
de temperatura o el termmetro que tiene labview, esto depende de lo que se este
controlando.

DESARROLLO DE LA TARJETA

Para el montaje de la conexin entre el PC y el PIC se debe realizar este circuito


bsico, segn el PIC que se quiera utilizar (de la familia 18FXX5X), de igual
manera segn los puertos de entrada y salidas se le agregan los perifricos
necesarios para su objetivo.

Figura 3 (Conexin bsica para conexin PIC LABVIEW) Todas las versiones utilizadas de
software, se utilizaron con sus versiones de pruebas de 30 das con fines acadmicos, se les
recuerda a los seguidores de este tutorial utilizar software legal en sus desarrollos o las versiones
gratuitas.
CREACIN DEL VI EN LABVIEW PARA LA COMUNICACIN PC-PIC.

En esta se realiza un esquema general para la visualizacin de una seal


analgica y control de salida de 7 leds (ON / OFF). Este esquema se puede
ajustar segn su criterio y necesidad.

Figura 4 (Esquema de componentes utilizados) Todas las versiones utilizadas de software, se


utilizaron con sus versiones de pruebas de 30 das con fines acadmicos, se les recuerda a los
seguidores de este tutorial utilizar software legal en sus desarrollos o las versiones gratuitas.
Figura 5 (GUI) Todas las versiones utilizadas de software, se utilizaron con sus versiones de
pruebas de 30 das con fines acadmicos, se les recuerda a los seguidores de este tutorial utilizar
software legal en sus desarrollos o las versiones gratuitas.

Ahora bien para probar nuestra tarjeta implementamos el montaje siguiente, con
el fin de tener una seal analgica entrante por el canal 1 del ADC del micro y 8
salidas digitales por el puerto D del PIC, cabe destacar que los leds se pueden
cambiar por cualquier otro elemento que se quiera controlar desde el pc, de igual
manera y haciendo unos pocos cambios en las lneas de cdigo con que se
programa el PIC se pueden aadir o no mas entradas analgicas tanto como el pic
a utilizar nos permita.
Figura 6 (circuito de pruebas) Todas las versiones utilizadas de software, se utilizaron con sus
versiones de pruebas de 30 das con fines acadmicos, se les recuerda a los seguidores de este
tutorial utilizar software legal en sus desarrollos o las versiones gratuitas.

Para la visualizacin del funcionamiento se simulo en Proteus el circuito (de igual


forma este esquema esta probado fsicamente, y trabaja segn lo esperado). El
video del funcionamiento se puede encontrar en este link.
http://www.youtube.com/watch?v=bM5Shi3NC_4.
Cuando conectemos por primera vez nuestro dispositivo nos preguntara sobre el
driver especifico del dispositivo, le damos la ruta en donde se encuentra nuestro
drivers(los driver suministrados son para Windows XP, si necesitan otro sistema
operativo pueden entrar en este link
http://es.scribd.com/doc/76490397/Generador-de-Inf-Para-Los-Drivers-USB-de-
Microchip, de igual manera microchip en su pgina, explica y en foros se
consiguen muy fcil).

Figura 7 driver instalado

Nota (*): Todas las versiones utilizadas de software, se utilizaron con sus
versiones de pruebas de 30 das con fines acadmicos, se les recuerda a los
seguidores de este tutorial utilizar software legal en sus desarrollos o las versiones
gratuitas.

NOTA 2:
Puedes cambiar el PIC poniendo la librera (.h) correspondiente para el CCS. Por
ejemplo, en vez de usar el PIC 18F4550 queremos usar el PIC 18F2550, entonces
hacemos lo siguiente, donde pone:
#Include <18F4550.h>
Lo cambiamos por:
#Include <18F2550.h>

Te servir cualquier PIC de la serie 18Fxx5x mientras respete ese '5' en posicin
segunda comenzando por la derecha porque significa que soporta comunicacin
USB.

Los "#fuses" del programa CCS estn configurados para poner un cristal de 20
MHz. Si quieres poner cualquier otro cristal (de 4 a 48 MHz.)

Puedes descargar el Driver que sirve para cualquier versin de windows aqui

REFERENCIAS

http://uelectronika.blogspot.com/

http://colombia.ni.com/

http://www.usb.org/home

http://www.microchip.com/

También podría gustarte