Académique Documents
Professionnel Documents
Culture Documents
-Tasa de transferencia: Puede ser de baja velocidad (15 Mb/s) o de alta velocidad (12Mb/s).
-Soporta Interrupciones. Cada vez que se produce una transmisin o recepcin de datos en el bus, se genera
una interrupcin en el PIC ante la cual la rutina de atencin debe responder gestionando todos los aspectos de
bajo nivel de la especificacin USB. De esta manera para la aplicacin principal que ejecuta el microcontrolador
el manejo del protocolo USB es transparente.
-Permite el uso de hasta 32 EndPoints (16 bidireccionales) pero normalmente solo utilizaremos 3 (endpoints
0, 1 y 2). Un endpoint es un buffer que almacena datos dentro del dispositivo (Tpicamente es un registro). A
su vez cada endpoint dispone de un identificador nico que viene asignado de fbrica y una determinada
orientacin del flujo de datos (IN/OUT). Todos los dispositivos deben soportar el endpoint 0, que se usa para la
configuracin.
-1-Kbyte Dual Access RAM. Los bancos 4 a 7 de la memoria de datos estn mapeados a un puerto dual
especial de RAM. Cuando el mdulo USB est desactivado, los GPRs en estos bancos se utilizan como cualquier
otro GPR en la memoria de datos. Cuando se permite el mdulo USB, la memoria en stos bancos se asigna
como RAM de almacenamiento intermedio para las operaciones del USB. Esta rea se comparte entre el
ncleo del microcontrolador y el motor de la interfaz en serie (SIE) del USB y se utiliza para transferir datos
directamente entre los dos.
-SIE (Serial Interface Engine) encargado de la generacin del CRC, la sincronizacin de las seales D+ y D- y
la correcta comunicacin entre el modulo y el PIC. El SIE puede interconectarse directamente al USB, utilizando
el
transmisor-receptor interno, o puede conectarse a travs un transmisor-receptor externo.
Configuracin
- USBEN: es un bit prioritario al comienzo de la configuracin ya que habilita o deshabilita el modulo
USB, ignorando todos los bits de control y estado cuando esta a cero. Este bit tambin activa el regulador de
tensin del chip y conecta las resistencias pull-up, si se permiten, asi que con USBEN podemos por software
conectar o desconectar del USB. Este bit podemos encontrarlo en el registro UCON<3>.
Configuracin de la frecuencia
Para la puesta en marcha de la comunicacin USB es necesario configurar correctamente el PIC, donde
una parte fundamental es la configuracin de la frecuencia de reloj. Dependiendo de si queremos
funcionar con el modulo en baja velocidad o alta velocidad (USB 2.0), deberemos proporcionar al modulo
de 6 o 48 Mhz respectivamente. Para este ejemplo usaremos la configuracin de USB 2.0 y un cristal
conectado al PIC de 4 Mhz.
-Como se puede ver en OSC1 y OSC2conectamos nuestro cristal: 4 Mhz, aunque podramos haber usado uno
de 8 Mhz, 12 Mhz, 16 Mhz, 20 Mhz, 24 Mhz, 40 Mhz 48 Mhz, que son los cristales validos compatibles. Hay
que tener en cuenta que este cristal es el mismo para generar la frecuencia de 48 Mhz necesaria para el
USB 2.0 y para el Clock del PIC, que pueden ser la misma o no, segn la configuracin que al final
adoptemos. Esto quiere decir que podemos tener el USB a 48 Mhz y nuestro programa en el PIC funcionando a
12 Mhz por ejemplo.
Tras el Smicht Trigger del Primary Oscillator salen tres lneas en paralelo que van a mdulos distintos con
distintas posibilidades.
-La primera lnea, la superior, va directamente al switch USBDIV que si est a cero indica que la frecuencia
base original del cristal es directamente inyectada al USB, si el switch FSENtambin esta a 1. Este switch
elige entre el PLL o el Primary Clock del CPU. Esta Opcin de inyectar directamente la frecuencia del cristal es
obviamente solo posible si usamos un Cristal de 48 Mhz que es lo que necesitamos para el USB. Cualquier otro
cristal
debe
ser
tratado
para
conseguir
los
48
Mhz
necesarios.
-La segunda lnea tiene a su entrada un PLL Prescaler (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 (Multiplexor) vamos a seleccionar
la que deseamos usar. As si nuestro cristal es de 4 Mhz y en PLLDIV colocamos un 000 estaremos
dividiendo por 1 el valor de FOSC con lo que tendremos 4 Mhz a la salida del MUX. Esta salida del MUX es
lo que utilizamos para inyectrsela al PLL de 96 Mhz. Si le metemos 4 Mhz l genera 96 Mhz. Pero 96 Mhz es
el doble de lo que nos hace falta para el USB que son 48 Mhz, as que inmediatamente despus tenemos usar
un divisor por 2 que es el segundo camino por el que llegamos a USBDIV y en este caso le pondremos un 1
para
usar
la
seal
proveniente
del
PLL.
-El resto de la circuitera esta asociada a la configuracin y asignacin de la velocidad de reloj para la ALU.
Transmisor interno
-El perifrico USB tiene un transmisor de poca velocidad internamente conectado al SIE. Esta caracterstica es
til en aplicaciones baratas con un chip.El bit UTRDIS (UCFG<3>) controla el transmisor. Est permitido
por defecto (UTRDIS = 0).
Transmisor externo
-Este mdulo proporciona ayuda para el uso de un transmisor fuera del chip. El
transmisor externo se utiliza en aplicaciones donde las condiciones fsicas dictan la
localizacin del transmisor lejos del SIE. Las operaciones con un transmisor externo se permiten activando el
bit UTRDIS=1.
Regulador interno
-El dispositivo PIC18FX455 tiene un regulador incorporado de 3,3V para proporcionar energa al transmisor
interno y proporcionar una fuente para el pull-up interno y externo, en aplicaciones de 5V. Para que el
regulador sea estable se necesita un condensador externo de 220nF (20%). El regulador se activa por defecto
y puede inhabilitarse a travs del bit de configuracin (VREGEN = ON, OFF). Cuando est activo, la tensin es
visible en el pin VUSB. Cuando el regulador est desactivado, se tiene que conectar una fuente de 3,3V al pin
VUSB para alimentar el transmisor interno.
BIT 6
OSCIF CMIF
BIT 5
BIT 4 BIT 3
USBIF EEIF
BIT 2
BIT 1
BIT 0
BIT 6
OSCIE CMIE
BIT 5
BIT 4
USBIE EEIE
BIT 3
BIT 2
BIT 1
BIT 0
BIT 6
OSCIP CMIP
BIT 5
BIT 4
USBIP EEIP
BIT 3
BIT 2
BIT 1
BIT 0
-Todos los dispositivos USB estn compuestos por una serie de endpoints y
una direccin nica asignada por el sistema. Un endpoint es un buffer que
almacena datos dentro del dispositivo. Cada endpoint dispone de un
identificador nico que viene asignado de fbrica y una determinada
orientacin del flujo de datos (In,Out). Todos los dispositivos deben soportar el
endpoint 0, que se usa para la configuracin. Las asociaciones entre los distintos endpoints de un dispositivo y
el host se llaman Pipes (tuberas). Las Pipes permiten mover datos entre el software del host y el endpoint del
dispositivo. Cada Pipe esta determinado por su tipo de servicio, numero de endpoint, tamao de paquetes,
direccin, etc.
Existen 4 tipos de endpoints distintos (Control, Bulk, Iscronas e Interrupciones),
cada uno se utiliza en un tipo de transferencia.
-Cada uno de los 16 Endpoints bidireccionales posibles en el PIC18F4550 tiene un registro de control
independiente, UEPn (donde n representa el nmero del Endpoint). Cada registro tiene los mismos bits
de control.
El bit EPHSHK (UEPn<4>) controla el protocolo de intercambio de los Endpoints; activar este bit permite
el protocolo de intercambio del USB.Tpicamente, este bit se setea siempre excepto al usar Endpoints
sncronos. El bit EPCONDIS (UEPn<3>) se utiliza para permitir o inhabilitar las operaciones de control del
USB (SETUP) con Endpoint. Borrar este bit permite las transacciones SETUP. Los bits EPINEN UEPn<1>) y
EPOUTEN (UEPn<2>) se deben activar para permitir las transacciones de entrada y de salida. Para el
Endpoint 0, este bit debe estar siempre borrado por que las especificaciones del USB identifican el Endpoint 0
como el Endpoint de control por defecto.