Está en la página 1de 145

Diseñando aplicaciones USB

© 2008 Microchip Technology Incorporated. All Rights Reserved. Slide 1


Objectivos
 Despues de esta clase usted podrá
seleccionar una apropiada solución de
conectividad USB para su aplicación de control
embebida (incrustada)
 seleccionar el MCU PIC mas conveniente para
ese propósito
 seleccionar la plataforma de desarrollo
apropiada para su aplicación
decida que manos de Microchip en el
entranamiento le asistirán en el proceso de
desarrollo.

© 2008 Microchip Technology Incorporated. All Rights Reserved. COM3100Rev0.3 Slide 2


Agenda
 El desafío de conectividad para Diseñar Sistemas Embebidos
 Revisión sobre USB
 Principios de Operación
 Soluciones en Microcontroladores PIC® para USB de MCHP
 Usando el Microchip USB Framework
 Drivers de PC para USB
 Microchip USB Herramientas de desarollo
 Algunas Soluciones USB
 Resumen y Recusos

© 2008 Microchip Technology Incorporated. All Rights Reserved. COM3100Rev0.3 Slide 3


El Desafío de la Conectividad
 Muchas aplicaciones
embebidas requieren
conectividad para
equipo externo
 señales de control de
intercambio
 descarga de datos
 carga de datos y
nuevo firmware
 diagnósticos

© 2008 Microchip Technology Incorporated. All Rights Reserved. COM3100Rev0.3 Slide 4


El desafío de la conectividad
 Ultima Solución: Conectividad RS232
 Nuevo desafío: No RS232 o puesrtos paralelos
o laptops o computadoras o impresoras
 Solo USB, Ethernet y/o WLAN

© 2008 Microchip Technology Incorporated. All Rights Reserved. COM3100Rev0.3 Slide 5


Acceso a Periféricos de PC
 Vía antigua  Vía USB
 Periféricos de PC:  Periféricos de PC:
 Espacio de direcciones I/O  Mapeado de 127 dispositivos
mapeado en la memoria del dentro de un espacio virtual
80X86 de direccionamiento
 Asigna una línea específica  No utiliza ningún recurso del
de IRQ PC I/O, IRQ o DMA
 Asigna un canal de DMA  Acceso indirecto usando la
específico interfaz porgramable provista
por el driver del dispositivo
 Acceso Directo (ISA, PCI,
PCMCIA)

© 2008 Microchip Technology Incorporated. All Rights Reserved. COM3100Rev0.3 Slide 6


El desafío de la conectividad
 Alternativa ?
 Subsistir usando viejas computadoras
 Usar adaptadores RS232 a USB
 Solución: Implementar conectividad USB
en su aplicación

© 2008 Microchip Technology Incorporated. All Rights Reserved. COM3100Rev0.3 Slide 7


Agenda
 El desafío de conectividad para Diseñar Sistemas Embebidos
 Revisión sobre USB
 Principios de Operación
 Soluciones en Microcontroladores PIC® para USB de MCHP
 Usando el Microchip USB Framework
 Drivers de PC para USB
 Microchip USB Herramientas de desarollo
 Algunas Soluciones USB
 Resumen y Recusos

© 2008 Microchip Technology Incorporated. All Rights Reserved. COM3100Rev0.3 Slide 8


USB Descripción
 USB fué co-desarollado por un consocio
de companias….
 Compaq/HP, Intel, Microsoft, LSI, NEC etc.
 …Buscando crear un solo Bus que …
 Conecte muchos dispositivos sobre el mismo
bus
 Fuerafacil para adicionar/remover dispositivos
periféricos conectados sobre el bus

© 2008 Microchip Technology Incorporated. All Rights Reserved. COM3100Rev0.3 Slide 9


Ventajas de la conectividad USB

Extienden la funcionalidad
de su computadora!

Análisis de datos,
Data Logging,
Uppdate de Firmware,
Diagnosticos,
Aplicaciones Embedded!

• Auto detección & configuración (Plug&Play)


• Facil expansión usando hubs
• Bus alimentado – reduce los transformadores de pared RS232
• Datos protegidos por CRC , paquetes malos son Parallel
PS/2
vueltos a enviar.
• Tres Velocidades:
Low- 1.5, Full- 12, High- 480 Megabits / second

© 2008 Microchip Technology Incorporated. All Rights Reserved. COM3100Rev0.3 Slide 10


Comparación de Buses y
Velocidad
No necesita tener 1394-Fire Wire
soporte de alta Ethernet
velocidad para
WiFi (b/g)
obedecer la USB 2.0

USB 2.0

LS-USB FS-USB HS-USB


1.5 Mb/s 12 Mb/s 480 Mb/s

CAN USB 1.1


Serial Port Parallel Port

500 Kb/s 1 Mb/s 1.5 Mb/s 12 Mb/s 100 Mb/s 480 Mb/s 1 Gb
© 2008 Microchip Technology Incorporated. All Rights Reserved. COM3100Rev0.3 Slide 11
Elementos de un sistema USB

Controlador HOST USB (Master)


y Root Hub

Hub

Mouse Impresora Audio (Esclavo)


(Esclavo) (Esclavo)

© 2008 Microchip Technology Incorporated. All Rights Reserved. COM3100Rev0.3 Slide 12


Mecanismo de transferencia de datos
USB
 USB es un “Single Master + Multiple Slaves” Bus consultado

Controlador HOST USB(Master)


y Root Hub

Mouse Printer Speaker


Todas las transacciones son iniciadas por Dispositivos responden al HOST
el Host
Cada dispositivo es consultado por el
Dispositivos no pueden llamar a otro Host
El ancho de banda del USB es compartido
© 2008 Microchip Technology Incorporated. All Rights Reserved. COM3100Rev0.3 Slide 13
Topología Física del Bus
Host (Tier 1)
USB Host Controller
& Root Hub

Tier 2 Keyboard Speaker Hub

Tier 3 Logic Hub: Max Chaining = 5


Analyzer
Hub

Tier 4 Hub

Tier 5 Hub
PIC18 USB estan
Tier 6 Hub diseñados para ser
periféricos!
Tier 7 Data Logger
Hub
Hasta 126 periféricos...

© 2008 Microchip Technology Incorporated. All Rights Reserved. COM3100Rev0.3 Slide 14


USB Host
 Maneja y controla el BUS
 Incializa todas las transacciones
 Automaticamente detecta todos los
dispositivos removidos e insertados en el BUS
 Enumera todos los dispositivos conectados y
los conecta con los drivers

© 2008 Microchip Technology Incorporated. All Rights Reserved. COM3100Rev0.3 Slide 15


Requerimientos típicos del MCU para
ser HOST
 Procesamiento de alto rendimiento con
MCU de 32/64 bit funcionando con un
istema opeativo en tiempo real como
Windows
 Aplicaciones con interfaz grafica de
usuario
 Identificación de Drivers USB y
enumeraciónde dispositivos USB
 USB Host Controller, funcionando a Full
Speed (12Mbps) o High Speed(480Mbps).
© 2008 Microchip Technology Incorporated. All Rights Reserved. COM3100Rev0.3 Slide 16
Host Embebido
 Aplicación Embebida conectada a uno dispositivo
periférico USB
 Aplicación Embebida no conectad a otros Host
 Ventajas: firmware embebido mas pequeño, menos
complejo
 Ejemplo: Data Logger de temperatura remoto
 Descarga datos al USB Flash Driver
 Actúa como Host cuando es conectado al Flash Drive but …
 No se conecta directamente al PC Host

© 2008 Microchip Technology Incorporated. All Rights Reserved. COM3100Rev0.3 Slide 17


Requerimientos típicos para el Host
Embebido
 Periféricos para servir en el mundo real
 A/D converters, Comparators etc
 Serial Interfaces like SPI, I2C, UART
 PWMs, Timers and I/O lines
 MCU del tipo16/32 bit
 Full Speed (12Mbps) USB OTG
 Software en el Host para identificar y
enumerar Dispositivos Periféricos USB

© 2008 Microchip Technology Incorporated. All Rights Reserved. COM3100Rev0.3 Slide 18


Dispositivos Periféricos USB
 Responde si el Host, no puede iniciar
transacciones
 Requiere drivers para ser reconocido por el
Host
 Hardware/Firmware para responder al Host

© 2008 Microchip Technology Incorporated. All Rights Reserved. COM3100Rev0.3 Slide 19


Características típicas de los periféricos del
MCU

 Periféricos para el servicio de entrada y salida


con el mundo real
 conversores A/D, Comparadores etc
 Interfaces Serie como SPI, I2C, UART
 PWMs, Timers y lineas I/O
 Full Speed (12Mbps) USB transducer with data
input/output buffers
 Dispositivos USB y Firmware para interface de
periféricos
 Procesamiento para el servicio requerido por
el USB Full speed

© 2008 Microchip Technology Incorporated. All Rights Reserved. COM3100Rev0.3 Slide 20


Clases de dispositivos periféricos
USB

Floppy
Data Glove Drive
Ethernet
Adapter
Mouse
External
Hard Drive
PICkit™ 2
Starter Kit Modem
Mass Storage Device
Joystick Class (MSD)

Communication Device
Class (CDC)
Keyboard ICD2

Custom Class
(Vendor Class)
Human Interface Device Class
(HID)
Many more USB classes….

© 2008 Microchip Technology Incorporated. All Rights Reserved. COM3100Rev0.3 Slide 21


USB On-The-Go (OTG) y Doble papel
 USB On-The-Go (OTG) le permite al Dispositivo operar
como Host o Dispositivo
 PDA (Dispositivo) conectado al PC (Host)
 PDA (Host) conectado al Thumb drive (Dispositivo)
 PDA en Modo Dual Role
 PDA conectado a PDA, Host y dispositivo pueden
cambiar papeles
 Modo PDA en OTG

PC Host PDA OTG Host PDA OTG Host

PDA OTG Device Thumb Drive PDA OTG Device

© 2008 Microchip Technology Incorporated. All Rights Reserved. COM3100Rev0.3 Slide 22


Requerimientos típicos para
Dispositivos OTG
 Perifericos para servicio de entradas y salidas
al mundo real
 A/D converters, Comparators etc
 Serial Interfaces SPI, I2C, UART
 PWMs, Timers y Lineas I/O
 MCU de alto procesamiento 16/32 bit
 Full Speed (12Mbps) USB OTG transductor con
buffers de datos entrada/salida
 Host Software Drivers para identificar y
enumerar Dispositivos Periféricos USB
 Software para funcionar como Dsipositivo
cuando se conecta al Host
© 2008 Microchip Technology Incorporated. All Rights Reserved. COM3100Rev0.3 Slide 23
Hub USB
 Conecta dispositivos
adicionales al Bus USB
 Maximo 5 Hubs sobre
Root Hub Keyboard Speaker Hub

 Provee alimentación al Logic


Analyzer
Hub
conectar dispositivos
Hub
 La mayoría de Hubs usa
controladores ASIC Hub

Hub

hasta 126 periféricos... Data Logger


Hub
© 2008 Microchip Technology Incorporated. All Rights Reserved. COM3100Rev0.3 Slide 24
Resumen de Elementos USB
 Full USB Host
 PC
 Embedded USB Host
 Drivers No Instalables
 Requerimirntos de Firmware reducidos
 Dispositivos periféricos USB
 Mouse, Keyboard, etc.
 Doble papel /OTG
 Puede switchear el Rol
 Puede ser OTG o apenas dos roles
© 2008 Microchip Technology Incorporated. All Rights Reserved. COM3100Rev0.3 Slide 25
USB Interfaz física
5V Power and GND Lines

Host Connector D+ and D- Twisted Pair, Differential mode Device Connector


Communication Lines

 Interfaz de cuatro cables


 Línea de 5 V de alimentación y de GND desde donde
el dispositivo USB puede ser alimentado
 Par trenzado,líneas de comunicaciones en modo
diferencial para una excelente inmunidad al ruido de
datos
 Conectores especiales para el Host y Dispositivo

© 2008 Microchip Technology Incorporated. All Rights Reserved. COM3100Rev0.3 Slide 26


Conectores USB
“A” Plug

USB Host

“B” “mini-B” “micro-B”


FS, HS FS, HS
Peripheral Peripheral Peripheral LS, FS, HS
Peripheral

Hardwired
or
Custom
Detachable

© 2008 Microchip Technology Incorporated. All Rights Reserved. COM3100Rev0.3 Slide 27


El Mito mas grande
 Mito: una Low-Speed periféricos USB pueden transferir datos de aplicaciones
hasta 187.5 KB/s (1.5 Mbps)

 FACT: Imposible, por las restricciones de la especificación USB :


 8 byte de transferencia de datos cada 10 ms
 = 800 Bytes/segundo

© 2008 Microchip Technology Incorporated. All Rights Reserved. COM3100Rev0.3 Slide 28


El siguiente gran Mito
 Mito: Una Full-Speed periférico USB puede transferir datos hasta 1.5 MB/s (12
Mb/s)

 Hecho : Imposible, el ancho de banda total es de 1.5 MB/s


 Debe ser compartido entre los periféricos
 Overhead del protocolo
 Restricciones del protocolo
 El procesamiento de datos crudos realista para a periférico simple es
~1.0 MB/s
 Solo 64KB/s en algunos casos.

© 2008 Microchip Technology Incorporated. All Rights Reserved. COM3100Rev0.3 Slide 29


Agenda

 El desafío de conectividad para Diseñar Sistemas Embebidos


 Revisión sobre USB
 Principios de Operación
 Soluciones en Microcontroladores PIC® para USB de MCHP
 Usando el Microchip USB Framework
 Drivers de PC para USB
 Microchip USB Herramientas de desarollo
 Algunas Soluciones USB
 Resumen y Recusos

© 2008 Microchip Technology Incorporated. All Rights Reserved. COM3100Rev0.3 Slide 30


Dispositivo USB Framework
- Software View of Hardware -
Host System Peripheral Device
User Code
Function Layer

Function Layer
Non USB Format
N - Driver Physical Device
Specific
USB Device Driver Pipes (Ep1..)
Bus Interface USB Device

Non USB Format Device Specific Comm

Layer
USB Device Bus Interface
2-Default
Layer

USB System Software Control Pipes Logical Device


(Ep0_OUT/IN)
USB Data Frames USB Data Frames

Layer
Layer

USB Adapter/Controller Cable Bus Interface

Camino de las comunicaciones física


Camino de las comunicaciones lógicas (“Pipe”)

© 2008 Microchip Technology Incorporated. All Rights Reserved. COM3100Rev0.3 Slide 31


El Dispositivo USB “Lógico”
Device
(Manufacturer: Microchip Technology)
(Product: Mouse in a Circle Demo)
(VID_PID: 04d8_0000)
Configuration
(Active)

Interface
(Mouse) Analog/Digital I/O

USB Device-Specific Pipe(s) Endpoint 1 MCHPFSUSB


(HID) (Interrupt - IN) HID TX/RX Functions
Endpoint 1
(Interrupt - OUT)

Los seteos lógicos


aestan representados
por una Tabla
Endpoint 0 Descriptora de
USB System Software (Control - OUT) dispositivos,
(default control pipes) Endpoint 0 almacenada en
(Control - IN) “usbdsc.c”..mas
sobre esto despues.
© 2008 Microchip Technology Incorporated. All Rights Reserved. COM3100Rev0.3 Slide 32
Como hacen las comunicaciones el
host y el dispositivo?
Transacciones…

© 2008 Microchip Technology Incorporated. All Rights Reserved. COM3100Rev0.3 Slide 33


Un Endpoint es un Buffer

Data Bucket

OUT Transaction RAM


Endpoint 1 OUT LED

IN Transaction RAM
Endpoint 1 IN “Caps-Lock”

 El número máximo de endpoints por dispositivo


specificado por la especificación USB:
 16 endpoints de salida + 16 endpoints de entrada = 32 endpoints
 PIC18F87J50, PIC18F4550 suportan hasta 32 endpoints
 EP0 = Es la comunicación Pipe por Default

© 2008 Microchip Technology Incorporated. All Rights Reserved. COM3100Rev0.3 Slide 34


Transacción USB

USB Transaction

Token Packet

SETUP y OUT los tipos de


token informan el dispositivo Especifica:
apuntado al cual el Host quiere • Dirección del dispositivo apuntado
enviar datos • Número de Endpoint
• Dirección de la transferencia de
IN el tipo de token informa el datos
dispositivo apuntado del cual el
host quiere recibir datos.

© 2008 Microchip Technology Incorporated. All Rights Reserved. COM3100Rev0.3 Slide 35


USB Transacción- IN

USB Transaction

IN Token Packet

Data Packet

© 2008 Microchip Technology Incorporated. All Rights Reserved. COM3100Rev0.3 Slide 36


USB Transacción - IN

USB Transaction

IN Token Packet

Data Packet

Handshake Packet

Acknowledge - ACK

© 2008 Microchip Technology Incorporated. All Rights Reserved. COM3100Rev0.3 Slide 37


IN Transacción ACK
USB Traffic USB PIC® MCU
USB Transaction

IN Token Packet
(to EP1 IN)
Serial If U
OW
RAM
SFR EP1 OUT BD
(UOWN, Length,
Endpoint
N = 1 OUT Pointer)
1
Interface SFR EP1 IN BD
Data Packet SIE Sends Data RAM
(UOWN, Length,
Engine Endpoint 1 IN
0
Pointer)
W N=
ts UO
Se

Keystrokes

Update BD
Handshake Packet
putsUSBUSART( )

© 2008 Microchip Technology Incorporated. All Rights Reserved. COM3100Rev0.3 Slide 38


IN Transacción NAK
USB Traffic USB PIC® MCU
USB Transaction

IN Token Packet
(to EP1 IN)
Serial If U
OW
RAM
SFR EP1 OUT BD
(UOWN, Length,
Endpoint
N = 1 OUT Pointer)
0
Interface SFR EP1 IN BD
RAM
(UOWN, Length,

Handshake
Engine Endpoint 1 IN
Pointer)

SIE Sends NAK


Packet

© 2008 Microchip Technology Incorporated. All Rights Reserved. COM3100Rev0.3 Slide 39


OUT/SETUP Transacción ACK
USB Traffic USB PIC® MCU
USB Transaction
OUT/SETUP
Token Packet
If U
(to EP1 OUT) Serial OW
N=
1
Interface RAM
SFR EP1 OUT BD
Data Packet SIE Deposits Data
Endpoint 1 OUT
(UOWN, Length,
Pointer)
Engine WN
= 0

h, UO
RAM
SFR EP1 IN BD
gt
Handshake LenEndpoint 1 IN
(UOWN, Length,
s
Set
SIE Sends ACK Pointer)
Packet

© 2008 Microchip Technology Incorporated. All Rights Reserved. COM3100Rev0.3 Slide 40


OUT/SETUP Transacción NAK
USB Traffic USB PIC® MCU
USB Transaction
OUT/SETUP
Token Packet
If U
(to EP1 OUT) Serial OW
N=
0
Interface RAM
SFR EP1 OUT BD
Data Packet Endpoint 1 OUT
(UOWN, Length,
Pointer)
Engine
SI
D
E
isc SFR EP1 IN BD
ar RAM
Handshake ds Endpoint 1 IN
(UOWN, Length,
SIE Sends NAK D at Pointer)
Packet a

© 2008 Microchip Technology Incorporated. All Rights Reserved. COM3100Rev0.3 Slide 41


Transacciones en Acción
- Función PDFSUSB READ_POT -

 Aplicación PDFSUSB continuamente envía el comando “0x37”


 El dispositivo retorna el comando + el valor del ADC de 10-bit del
Potenciómetro: <0x37><ADRESL><ADRESH>

© 2008 Microchip Technology Incorporated. All Rights Reserved. COM3100Rev0.3 Slide 42


Transacciones en Acción
- Beagle12 Capturando READ_POT -

Referirse al apendice A en Handout


para el PDFSUSB completo
Referirse al Command/Response

© 2008 Microchip Technology Incorporated. All Rights Reserved. COM3100Rev0.3 Slide 43


Llaves:Tipos de Token

SETUP

OUT

IN

© 2008 Microchip Technology Incorporated. All Rights Reserved. COM3100Rev0.3 Slide 44


Como hace la comunicación el host y
el dispositivo?
Transferencias…

© 2008 Microchip Technology Incorporated. All Rights Reserved. COM3100Rev0.3 Slide 45


Transferencias Vs. Transacciones

MPUSBWrite(EP7, Pointer, Size = 129, Timeout)


Transfer
Key:
Transaction 1
64 Byte Payload OUT Token Packet

Data Packet
Transaction 2
64 Byte Payload ACK Handshake Packet

Transaction 3
Transferencia: Grupo
1 Byte Payload de transacciones
relacionadas.

© 2008 Microchip Technology Incorporated. All Rights Reserved. COM3100Rev0.3 Slide 46


Resumen - Tipo de transferencia de
Dato
- Full Speed USB -
Transfer/ Endpoint Polling Interval % Reserved Max. # Data Bytes/Frame/Endpoint Data
Type BW/Frame for all (Max# transactions per frame @ Max Ep Integrity
transfers of this type Size)*

Interrupt Fixed, Periodic 90 64 (1 x 64) Yes

Isochronous Fixed, Periodic 90 1023 (1 x 1023) No

Bulk Variable, Uses Free 0 1216 (19 x 64) Yes


Bandwidth

Control Variable 10 832 (13 x 64) Yes

*Assume que la transferencia usa el maximo espacio permitido po el tipo


de Endpoint
© 2008 Microchip Technology Incorporated. All Rights Reserved. COM3100Rev0.3 Slide 47
Rango máximo de transferencias
teórica Por Endpoint

1400
1216
1200
1023
1000 832
800
KByte/s
600 Low
400 Full
200 64
24 0.8
0
Control Interrupt Bulk Iso
Tipo de transferencia

© 2008 Microchip Technology Incorporated. All Rights Reserved. COM3100Rev0.3 Slide 48


Tipos de Transferencias - Ejemplos

Mouse Printer Speaker


Control Control Control
+ + +
Interrupt Bulk Isochronous

© 2008 Microchip Technology Incorporated. All Rights Reserved. COM3100Rev0.3 Slide 49


Consideraciones cuando se usan las
clases standar
 CDC (Virtual Com Port)  Custom
 Protocolo de comunicaciones
del dispositivo definido
 El PIC mira bien un
modem, o un terminal  Protocolo de
conectado al puerto serie comunicaciones del
 El PC Host intercambia
con la aplicación PIC dispositivo indefinido
string ASCII (default)  Aplicación en el PC llama
 llamar al manejador de directamente al endpoint en
packets enviando además el PIC
los paquetes de datos
 Lower data rate than
 La aplicación PC /PIC
custom class (80kByte/s intercambia datos crudos
vs 1MByte/s) raw

Mas sobre el USB


CDC Device Class en
la Parte 2

© 2008 Microchip Technology Incorporated. All Rights Reserved. COM3100Rev0.3 Slide 50


Ejemplo – Usando CDC

Application

Application
UART Driver

UART Driver
CDC Driver

UART Hardware
USB Hardware

RS-232 RS-232 USB


USB

UART Hardware
USB Hardware

UART APIs
Microchip
CDC RS-232 USB UART APIs
Emulation PIC18F4550
Firmware API
Application Firmware
Application

© 2008 Microchip Technology Incorporated. All Rights Reserved. COM3100Rev0.3 Slide 51


Enumeración
Auto-Detección & Auto-Configuración
Detras de la “Magia” del
“Plug&Play”

© 2008 Microchip Technology Incorporated. All Rights Reserved. COM3100Rev0.3 Slide 52


Auto-Detección: Full-Speed
Peripheral Device

Microcontroller

VUSB 3.3 V
Full Speed Identification
D+ line pull-up
1.5 k±5%

+5V

D+
Transceiver
D-

GND

USB
Connector

© 2008 Microchip Technology Incorporated. All Rights Reserved. COM3100Rev0.3 Slide 53


Auto-Detección: Low-Speed
Peripheral Device

Microcontroller

VUSB 3.3 V
Low Speed Identification
D- line pull-up
1.5 k±5%

+5V

D+
Transceiver
D-

GND

USB
Connector

© 2008 Microchip Technology Incorporated. All Rights Reserved. COM3100Rev0.3 Slide 54


Endpoint 0 y Enumeración
 See Chapter 9 in USB 2.0 Spec for more info.

PIC18 USB Microcontroller


Dual Port/Access RAM

Endpoint 0 OUT
(Control Data)
Control Transfers
Endpoint 0 IN
(Control Data)
Descriptors

Other Endpoints

Get Set Device


Bus Reset Set Address
Descriptors Configuration Ready

© 2008 Microchip Technology Incorporated. All Rights Reserved. COM3100Rev0.3 Slide 55


Descriptores

String 0 Device
String 1
A otras configuraciones
String N Configuration 1
A otras interfaces

Interface 0 Interface 1

Endpoint Endpoint Endpoint Endpoint

 Los Descriptores son tipicamente almacenados en memoria no


volatil/Flash
© 2008 Microchip Technology Incorporated. All Rights Reserved. COM3100Rev0.3 Slide 56
Descriptores - Ejemplo
USB 2.0, VID = 0x04D8,
Manu. String Device PID = 0x0007, Num. Configurations,
Strings?
Microchip
Configuration #1: Bus-Powered,
Configuration 1 Remote Wakeup, 500mA, Num.
Prod. String Interfaces
PICDEM USB

Interface 0 Interface #0: HID Class, Num.


Other String Endpoints
Go USB!
Endpoint 1 IN, Interrupt Transfer Type,
Endpoint
64-byte buffer, Poll every 3 ms
Unicode
Characters
© 2008 Microchip Technology Incorporated. All Rights Reserved. COM3100Rev0.3 Slide 57
Planeando la alimentación
 Max USB suspend current is 0.5/2.5mA
 Don’t:
Power from
USB Cable VDD

22µF

© 2008 Microchip Technology Incorporated. All Rights Reserved. COM3100Rev0.3 Slide 58


Planeando la alimentación
 Max USB suspend current is 0.5/2.5mA
 Do:
Power from
VDD
USB Cable

≤10µF

© 2008 Microchip Technology Incorporated. All Rights Reserved. COM3100Rev0.3 Slide 59


PIC® MCU: Detectando un accesorio USB

Self-Powered
Power from
USB Cable VDD
I/O

Si el dispositivo esta auto-alimentado,


usted Necesita usar un pin I/O para
detectar un cable accesado.

D+ o D- No necesitan un Pull Up (y
nunca corriente de fuente sobre el
VBUS) hasta el driver host alto VBUS .

© 2008 Microchip Technology Incorporated. All Rights Reserved. COM3100Rev0.3 Slide 60


Agenda
 El desafío de conectividad para Diseñar Sistemas Embebidos
 Revisión sobre USB
 Principios de Operación
 Soluciones en Microcontroladores PIC® para USB de MCHP
 Usando el Microchip USB Framework
 Drivers de PC para USB
 Microchip USB Herramientas de desarollo
 Algunas Soluciones USB
 Resumen y Recusos

© 2008 Microchip Technology Incorporated. All Rights Reserved. COM3100Rev0.3 Slide 61


MCUs PICs de Microchip
 Ofrece MCU PIC con arquitectura de 8, 16, and 32 bit
 Dispositivos de 20 - 100 Pines
 8Kb a 256Kb de Memoria de Programa en Flash
 512 bytes a 16Kb Ram de Datos
 Voltaje de Operación:1.8V to 5.5V
 Amplio Rango de Periféricos para Aplicaciones en el
mundo Real
 Conversores A/D , Comparadores
 SPI, I2C, UART
 PWMs, Timers y lineas I/O

© 2008 Microchip Technology Incorporated. All Rights Reserved. COM3100Rev0.3 Slide 62


Productos USB Ofrecidos
128 KB

128K/4K
128K/4K 128K/4K
128K/4K

PIC18F67J50 PIC18J87J50
96 KB

96K/4K
96K/4K 96K/4K
96K/4K

PIC18F66J55 PIC18F86J55
64K/4K
64K/4K 64K/4K
64K/4K
32 KB 64 KB

PIC18F66J50 PIC18F86J50
32K/2K
32K/2K 32K/2K
32K/2K 32K/4K
32K/4K 32K/4K
32K/4K

PIC18F2550 PIC18F4550 PIC18F65J50 PIC18F85J50


PIC18F2553 PIC18F4553
24K/2K
24K/2K 24K/2K
24K/2K
24 KB

PIC18F2455 PIC18F4455
PIC18F2458 PIC18F4458
16K/768
16K/768 16K/768
16K/768 16K/768
16K/768
8 KB 16 KB

PIC18F14K50 PIC18F2450 PIC18F4450


8K/512
8K/512

PIC18F13K50

20-Pin 28-Pin 48-Pin 64-Pin 80-Pin


*Source: Vendor Published Specifications
© 2008 Microchip Technology Incorporated. All Rights Reserved. COM3100Rev0.3 Slide 63
Productos USB OTG Ofrecidos
512 KB

512K/32K
512K/32K
4ch
4chDMA
DMA++USB
USB
DMA
DMA+Trace
+Trace
PIC32MX460F512L
256 KB

256K/16K
256K/16K 256K/32K 256K/16K
256K/16K 256K/16K
256K/16K 256K/32K
256K/32K
256K/32K 4ch
4chDMA
DMA++USB
USB
4ch
4chDMA
DMA++USB
USBDMA
DMA DMA
DMA+Trace
+Trace
PIC24FJ256GB106 PIC32MX440F256H PIC24FJ256GB108 PIC24FJ256GB110 PIC32MX460F256L
192 KB

192K/16K
192K/16K 192K/16K
192K/16K 192K/16K
192K/16K

PIC24FJ192GB106 PIC24FJ192GB108 PIC24FJ192GB110

128K/16K 128K/16K 128K/16K 128K/32K


128K/32K
128K/16K 128K/16K 128K/16K 4ch
4chDMA
DMA++USB
USBDMA
DMA
64 KB 128 KB

PIC32MX440F128L
PIC24FJ128GB106 PIC24FJ128GB108 PIC24FJ128GB110

64K/16K
64K/16K 64K/16K
64K/16K 64K/16K
64K/16K

PIC24FJ64GB106 PIC24FJ64GB108 PIC24FJ64GB110

64-Pin PIC24F
80-Pin PIC32
100-Pin
PIC24F PIC32
*Source: Vendor Published Specifications
© 2008 Microchip Technology Incorporated. All Rights Reserved. COM3100Rev0.3 Slide 64
USB de MCU PIC de Microchip’s
 Suporta USB 2.0 Low y Full Speed
 Transceptores, Reguladores de Voltaje y resistores de pull
up sobre el chip
 PLL parael Clock USB sobre el chip
 USB Dual Port RAM
 no requiere hardware externo adicional para soportar USB

PIC USB Microcontroller

Built in Pullups
+5V

D+
Transceiver
D-

GND

© 2008 Microchip Technology Incorporated. All Rights Reserved. COM3100Rev0.3 Slide 65


Módulo USB
Peripheral Device Board

PIC18F4550
3.3 V Regulator

Bus Pull-Up
Resistors
D+/D- Transceiver
Data RAM

Program
USB RAM Memory

SIE Control
Registers

© 2008 Microchip Technology Incorporated. All Rights Reserved. COM3100Rev0.3 Slide 66


Motor de la Interfaz Serie

SIE ...
 Serializa y deserializa datos USB PIC18 USB MCU
d
 Codifica y decoddifica datos
NRZI
 Handles bit D+/D- Transceiver
 Cheque CRC para validar Data RAM
paquetes de datos
 Detecta señalizaciones de Program
USB RAM Memory
eventos en el Bus y notifica a la
CPU para procesar interrupción SIE Control
 Manejo de Transacciones USB
Registers
 Manejo del protocolo de
handshaking

© 2008 Microchip Technology Incorporated. All Rights Reserved. COM3100Rev0.3 Slide 67


Ejemplo de la configuración de
Clock
Peripheral Device Board

PIC18F4550

20 MHz EC Divide by 5 96 MHz PLL Divide by 3

Divide by 2
Accept 4 MHz Input Only
32 MHz :
8 MIPs
PIC®
SIE MCU
Core

SIE Clock = 48 MHz : Full-Speed Mode

© 2008 Microchip Technology Incorporated. All Rights Reserved. COM3100Rev0.3 Slide 68


Agenda
 El desafío de conectividad para Diseñar Sistemas Embebidos
 Revisión sobre USB
 Principios de Operación
 Soluciones en Microcontroladores PIC® para USB de MCHP
 Usando el Microchip USB Framework
 Drivers de PC para USB
 Microchip USB Herramientas de desarollo
 Algunas Soluciones USB
 Resumen y Recusos

© 2008 Microchip Technology Incorporated. All Rights Reserved. COM3100Rev0.3 Slide 69


Microchip USB Firmware
Características
 C18 Compatible
 MPLAB® IDE Project Centric
 Polling Scheme
 Cooperative Multi-Tasking (No Blocking Routines)
 Program Memory Usage
 USB Enumeration (Chapter 9) - 3 KB
 HID - 1 KB
 CDC (RS-232 Emulation) - 1 KB
 USB Mass Storage - 4 KB

© 2008 Microchip Technology Incorporated. All Rights Reserved. COM3100Rev0.3 Slide 70


MCHPFSUSB Clases de Dispositivos
Frameworks Disponibles

Floppy
Data Glove Drive
Ethernet
Adapter
Mouse
External
Hard Drive

PICkit 2
Mass Storage Device Modem

Joystick Class (MSD)

Communication Device
Class (CDC)
Keyboard ICD2

Custom Class
(Vendor Class)
Human Interface Device Class
(HID)

© 2008 Microchip Technology Incorporated. All Rights Reserved. COM3100Rev0.3 Slide 71


El usar vs. Creando clase de
Dispositivo
PIC18F4550

Control Transfer
(SETUP,
Chapter9
EP0
OUT, IN)

EP1
Interrupt Device User
Bulk ... Class Application
Isochronous
(OUT, IN) EP15

© 2008 Microchip Technology Incorporated. All Rights Reserved. COM3100Rev0.3 Slide 72


Dispositivo de Interfaz Humana
(HID)

PIC® Microcontroller PC Computer

HID\Mouse Standard Windows Drivers HID App

USB Cable

Design Considerations:
•64 KB/s max
•Interrupt Transfer Type
•Standard Windows driver
•Custom PC application can access HID data
through Win32 APIs

© 2008 Microchip Technology Incorporated. All Rights Reserved. COM3100Rev0.3 Slide 73


CDC - RS-232 Emulación

PIC® Microcontroller PC Computer

CDC Standard Windows Drivers Hyper Terminal

USB Cable
INF File Required
(C:\MCHPFSUSB\fw\CDC\inf)

Design Considerations:
•~80 KB/s max
•Bulk Transfers
•PC applications can access the device as though
it is connected to a serial COM port
© 2008 Microchip Technology Incorporated. All Rights Reserved. COM3100Rev0.3 Slide 74
Personalizar Clase de Driver

PIC® Microcontroller PC Computer


Boot
MCHPUSB.sys MPUSBAPI.dll PDFSUSB.exe
Demo
Binary Source and
Only Other C++
Binary
Binary Examples
USB Cable Only

INF File Required


Source and
(C:\MCHPFSUSB\Pc
\MCHPUSB Driver\Release) Binary

Design Considerations:
•~1,088 KB/s max
•Very flexible (Control, Bulk, Int, Iso Transfers are
possible)
•Not a standard Windows driver
•PC programming is required
© 2008 Microchip Technology Incorporated. All Rights Reserved. COM3100Rev0.3 Slide 75
Dispositivo de almacenamiento
masivo (MSD)
See AN1003: USB Mass Storage
PIC® Microcontroller PC Computer
Windows
MSD Standard Windows Driver
Explorer

USB Cable

Design Considerations:
•Acts like a disk drive
•Rápida Transferencia de datos sobre USB
•Speed is limited depending on the physical media
interface
•For usefulness, a File System should also be
implemented in firmware
© 2008 Microchip Technology Incorporated. All Rights Reserved. COM3100Rev0.3 Slide 76
Descargando el Microchip USB
Framework

© 2008 Microchip Technology Incorporated. All Rights Reserved. COM3100Rev0.3 Slide 77


MCHPFSUSB Firmware
- Estructura de las carpetas del Proyecto -

 C:\MCHPFSUSB

Workspace file: MCHPUSB.mcw

Output file: MCHPUSB.hex

© 2008 Microchip Technology Incorporated. All Rights Reserved. COM3100Rev0.3 Slide 78


Demo 1 & 2
 Demo 1: Demo Driver de Propósito General
 Demo 2: Recarga ejemplo Mouse HID usando el bootloader

© 2008 Microchip Technology Incorporated. All Rights Reserved. COM3100Rev0.3 Slide 79


Aplicación de un PORT COM“Virtual”

HyperTerminal

HyperTerminal
UART Driver

UART Driver
CDC Driver

UART Hardware
USB Hardware

RS-232 RS-232 USB


USB

UART Hardware
USB Hardware

UART APIs
Microchip
CDC RS-232 USB UART APIs
Emulation PIC18F4550
Firmware API
Application Firmware
Application

© 2008 Microchip Technology Incorporated. All Rights Reserved. COM3100Rev0.3 Slide 80


Las Clases de dispositivos de
comunicaciones (CDC)
 Abarca una variedad de dispositivos
 Dispositivos “POTs (Plain Old Telephone Service)”
 Teléfonos analógicos y modems, adaptador a terminal ISDN ,
Teléfonos celulares, “Virtual” COM ports
 Dispositivos de RED de “Velocidad Media”
 ADSL Modems, Cable Modems, Ethernet Adaptors
 La interfaz USB en estos dispositivos acarrea datos
genéricos como un pozo como aplicaciones
específicas encapsuladas protocolos de comandos ,
por ejemplo Terminal V25 para modems (pone
comandos AT).

© 2008 Microchip Technology Incorporated. All Rights Reserved. COM3100Rev0.3 Slide 81


Modelo Abstracto de Control (ACM)
Emulación Serie (3.6.2.1)
 ACM implementació cubierta de ports COM vituales
 Son requeridos 2 interfaces USB USB
 Communications Class Interface
 1 - Int IN Ep
 Used to notify host of the current RS-232 connection status
from the USB RS-232 emulated device
 Data Class Interface
 1 – Bulk IN Ep & 1 – Bulk OUT Ep
 Used to transfer raw data bytes that would normally be
transferred over RS-232
 Also may be used to send encapsulated call control (AT)
commands

© 2008 Microchip Technology Incorporated. All Rights Reserved. COM3100Rev0.3 Slide 82


The “Logical” CDC-ACM
USB Device
Device
(Manufacturer: Microchip Technology)
(Product: CDC RS-232 Emulation Demo)
(VID_PID: 04d8_000a)

Configuration#1
(Active)

Interface#0 Interface#1
(Communications (Data Class Interface)
Class Interface)
Analog/Digital I/O
Endpoint 2
(Interrupt - IN)
usbser.sys Endpoint 3 MCHPFSUSB
(Bulk - OUT)
Pipes CDC TX/RX
Endpoint 3 Functions
(Bulk - IN)

OS USB
Endpoint 0
(Control - OUT)
Control
Pipes Endpoint 0
(Control - IN)

© 2008 Microchip Technology Incorporated. All Rights Reserved. COM3100Rev0.3 Slide 83


Projecto CDC
- Clase ACM-Requerimientos específicos -
 Resumen de clase-especificar requisitos y notificaciones
implementadas (ver 6.2 & 6.3 en CDC especificaciones para
descripción):
 las implementaciones CDC firmware tratadas para
 SEND_ENCAPSULATED_COMMAND
 GET_ENCAPSULATED_RESPONSE
 SET_LINE_CODING
 GET_LINE_CODING
 SET_CONTROL_LINE_STATE
 Sin embargo, el CDC firmware corrientemente retorna una NAK para decir
al host que no hay respuesta disponible
 Usted no necesita preocuparse por atender estos requerimientos
 Solo envíe/reciva su dato crudo vía el CDC RS-232 funciones API

© 2008 Microchip Technology Incorporated. All Rights Reserved. COM3100Rev0.3 Slide 84


Proyecto CDC
- Clock Configuración -

Peripheral Device Board

PIC18F4550

20 MHz EC Divide by 5 96 MHz PLL Divide by 2

Divide by 2
Accepts 4 MHz Input Only
48 MHz :
12 MIPs
CPU
SIE
Core

SIE Clock = 48 MHz : Full-Speed Mode

© 2008 Microchip Technology Incorporated. All Rights Reserved. COM3100Rev0.3 Slide 85


CDC APIs
void putrsUSBUSART(const rom char *data);

void putsUSBUSART(char *data);

void mUSBUSARTTxRom(rom byte *pData, byte len);

void mUSBUSARTTxRam(byte *pData, byte len);

byte getsUSBUSART(char *buffer, byte len);

byte mCDCGetRxLength(void);

© 2008 Microchip Technology Incorporated. All Rights Reserved. COM3100Rev0.3 Slide 86


Determinantes del API
 Usted es quien intercambia la nueva linea ASCII strings
terminada (modo canónico) o bytes crudos (modo no-
canónico)con la aplicación host ?

 El dato es almacenado en ROM o RAM?

© 2008 Microchip Technology Incorporated. All Rights Reserved. COM3100Rev0.3 Slide 87


API para Null-terminated Literal &
Datos en ROM
void putrsUSBUSART(const rom char *data);

void putsUSBUSART(char *data);

void mUSBUSARTTxRom(rom byte *pData, byte len);

void mUSBUSARTTxRam(byte *pData, byte len);


Use ‘putrs’ para datos literales almacenados
en ROM
byte getsUSBUSART(char *buffer, byte len);
Ejemplos de Uso:
putrsUSBUSART(“Hello”);
byte mCDCGetRxLength(void);
or
putrsUSBUSART(welcome);
where
rom char welcome[]=(“Bye”);

© 2008 Microchip Technology Incorporated. All Rights Reserved. COM3100Rev0.3 Slide 88


Importancia del estado Checking
 Estado cdc_trf_
 CDC_TX_READY
 CDC_TX_BUSY
 CDC_TX_BUSY_ZLP
 CDC_TX_COMPLETING
 Cuando llamando un API que envía datos para el host, necesita chequear
que:
cdc_trf_state == CDC_TX_READY
 O use macro:
 BOOL mUSBUSARTIsTxTrfReady(void);
Retorna ‘1’ cuando el estado es CDC_TX_READY

© 2008 Microchip Technology Incorporated. All Rights Reserved. COM3100Rev0.3 Slide 89


Diagrama de Flujo del Programa

Reset main InitializeSystem

MainLoop
main.c
Cooperative USBDriverService();
Multitasking!! CDCTxService();
USBTasks() …
No blocking
functions.
ProcessIO()
user.c
Use state Exercise_01();
machine. Exercise_02();

© 2008 Microchip Technology Incorporated. All Rights Reserved. COM3100Rev0.3 Slide 90


Post Demo Análisis
 Speed
 640 Kbits/s = 80 Kbytes/s
 Faster than RS-232 (UART)
 Esta solución no es posible con un a sipositivo USB low-speed
porque esto no tiene bulto endpoint
 No hardware handshakes
 Memoria de Programa Usada: ~ 4 KB
 Nota de Aplicación
 AN956: Migrating Applications to USB from RS-232 UART with Minimal Impact
on PC Software
 Que hacer si necesita un rango de transferencia de datos mas rápido?
 Considere usar nuestras class de driver windows personalizadas y dispositivos
framework…

© 2008 Microchip Technology Incorporated. All Rights Reserved. COM3100Rev0.3 Slide 91


Agenda
 El desafío de conectividad para Diseñar Sistemas Embebidos
 Revisión sobre USB
 Principios de Operación
 Soluciones en Microcontroladores PIC® para USB de MCHP
 Usando el Microchip USB Framework
 Drivers de PC para USB
 Microchip USB Herramientas de desarollo
 Algunas Soluciones USB
 Resumen y Recusos

© 2008 Microchip Technology Incorporated. All Rights Reserved. COM3100Rev0.3 Slide 92


mchpusb.sys vs. HID vs. CDC
Features mchpusb.sys HID CDC
(v1.0.0.6)

Driver support built into No Yes Yes (need .inf)


Windows

64-bit PC Support Yes Yes Yes

XP Ready Yes Yes Yes

Vista Ready Yes Yes Yes

Transfer Types (not incl.


Ep0)

Control Yes Yes No

Iso Yes No No

Interrupt Yes Yes Yes

Bulk Yes No Yes

Max Speed ~1.0 MB/s 64KB/s ~80kByte/s

© 2008 Microchip Technology Incorporated. All Rights Reserved. COM3100Rev0.3 Slide 93


Otras Clases de Drivers
personalizados…
 LibUSB
 Open Source
 Supports Windows and Linux
 Supports Interrupt, Bulk, and Isochronous transfers
 http://libusb-win32.sourceforge.net/
 WinUSB
 Supported in Windows XP & Vista only
 Supports Interrupt and Bulk
 http://msdn2.microsoft.com/en-us/library/aa476426.aspx

© 2008 Microchip Technology Incorporated. All Rights Reserved. COM3100Rev0.3 Slide 94


MPUSBAPI
- Introducción -

 Código de la envoltura Win32 API sistema llama


funciones (comuniquese en ultima instancia con
mchpusb.sys)
 Trabaja con todos los dispositivos Microchip USB
 Trabajah Visual C++ .NET, C++ Builder, Visual Basic
.NET, y mas…
 Transferencia de datos Facil y Flexible
 Suporta transferencias Bulk, Interrupt, Control y
Isochronous
 Interfaz Funcional simplifica el desarrollo de
aplicaciones
 Libre

© 2008 Microchip Technology Incorporated. All Rights Reserved. COM3100Rev0.3 Slide 95


Microchip Driver de dispositivo USB de
Propósito General
 mchpusb.inf – Este archivo contiene la
información del driver del dipositivo USB
Microchip
 mchpusb.sys - Microchip USB Device
Driver
 Estos archivos pueden encontrase en la
siguiente ruta de acceso
 C:\MCHPFSUSB\Pc\MCHPUSB
Driver\Release

© 2008 Microchip Technology Incorporated. All Rights Reserved. COM3100Rev0.3 Slide 96


mchpusb.inf
 .inf Archivo que le dice a windows como
configurar y utilizar un dispositivo
 El Dispositivo Manager lee el VID y PID desde el
dispositivo apuntado
 Windows usa el archivo.inf para:
 Driver asociado para usar con VID & PID
 Specifica strings de la identificación del dipositivo
 Specifica fuente y destino del arhivo de los dispositivos
 Setea registro clave

© 2008 Microchip Technology Incorporated. All Rights Reserved. COM3100Rev0.3 Slide 97


Archvo.inf Modificaciones
 Sección Modificable en mchpusb.inf
 [DeviceList]
 %DESCRIPTION%=DriverInstall,
USB\VID_04D8&PID_000B, USB\VID_04D8&PID_000C
 [Strings]
 ONEYSOFT="Walter Oney Software"
MFGNAME="Microchip Technology, Inc."
INSTDISK="Microchip Technology, Inc.
Installation Disc"
DESCRIPTION="PIC18F4550 Family Device"

© 2008 Microchip Technology Incorporated. All Rights Reserved. COM3100Rev0.3 Slide 98


Funciones en MPUSBAPI.DLL

Funciones MPUSBAPI

MPUSBGetDeviceCount(..)

MPUSBOpen(..) VID & PID


MPUSBClose(..)
MPUSBReadInt( .. )
VID & PID MPUSBRead( .. )
MPUSBWrite( .. )
MPUSBGetDLLVersion( .. )

© 2008 Microchip Technology Incorporated. All Rights Reserved. COM3100Rev0.3 Slide 99


Resumen - Función DLL
Tipos usados en Transferencias
Transfer/ Endpoint Functions Time-Out
Type Applicable?

Interrupt-IN MPUSBRead, MPUSBReadInt Yes

Interrupt-OUT MPUSBWrite Yes

Bulk-IN MPUSBRead Yes

Bulk-OUT MPUSBWrite Yes

Isochronous-IN MPUSBRead No

Isochronous-OUT MPUSBWrite No

© 2008 Microchip Technology Incorporated. All Rights Reserved. COM3100Rev0.3 Slide 100
Firmware API Clases Personalizadas
- See usbgen.c & usbgen.h -
 void USBGenInitEP(void);
 Called after a SET CONFIGURATION request
 Initializes endpoints, state machine and variables
 void USBGenWrite(byte *buffer, byte len);
 Copies data from user’s buffer to the Ep buffer
 byte USBGenRead(byte *buffer, byte len);
 Copies data from the Ep buffer to the user’s buffer
 (bit) mUSBGenRxIsBusy(void);
 Macro checks if the OUT Ep is busy (owned by the SIE or not)
 (bit) mUSBGenTxIsBusy(void);
 Macro checks if the IN Ep is busy (owned by the SIE or not)
 byte mUSBGenGetRxLength(void);
 Retrieves the number of bytes copied into theuser’s buffer after the most
recent call to USBGenRead()

© 2008 Microchip Technology Incorporated. All Rights Reserved. COM3100Rev0.3 Slide 101
Custom Class (“Demo”) Firmware
Structure

Modelo Synchronous Inicializa


 Acepta comandos desde el
host
 Returna el resultado USB Tasks()

 Espera para el siguiente


Process IO()
comando

ServiceRequests()

© 2008 Microchip Technology Incorporated. All Rights Reserved. COM3100Rev0.3 Slide 102
Inicializando los Periféricos PIC18F
 In user.c, a function has been defined for you to place
application-specific peripheral initialization code:

void UserInit(void)
{
mInitAllLEDs(); //macros defined in “io_cfg.h”

mInitPOT();

}//end UserInit

 UserInit() es llamada en main() durante la


inicialización del sistema.

© 2008 Microchip Technology Incorporated. All Rights Reserved. COM3100Rev0.3 Slide 103
Tabla de Descriptores Seteos
File usbdsc.c
/* Device Descriptor */
rom USB_DEV_DSC device_dsc=
{
sizeof(USB_DEV_DSC), // Size of this descriptor in bytes
DSC_DEV, // DEVICE descriptor type
0x0200, // USB Spec Release Number in BCD format
0x00, // Class Code
0x00, // Subclass code
0x00, // Protocol code
EP0_BUFF_SIZE, // Max packet size for EP0, see usbcfg.h
0x04D8, // Vendor ID
0x000C, // Product ID: PICDEM FS USB (DEMO Mode)
0x0000, // Device release number in BCD format
0x01, // Manufacturer string index
0x02, // Product string index
0x00, // Device serial number string index
0x01 // Number of possible configurations
};

© 2008 Microchip Technology Incorporated. All Rights Reserved. COM3100Rev0.3 Slide 104
Endpoint Descriptores

File usbdsc.c
/* EndPoint Descriptor */

sizeof(USB_EP_DSC),DSC_EP,_EP01_OUT,_BULK,USBGEN_EP_SIZE,1,
sizeof(USB_EP_DSC),DSC_EP,_EP01_IN,_BULK,USBGEN_EP_SIZE,1

_BULK or _INT (Interrupt)

USB_EP_SIZE defined in USBCFG.H


#define USBGEN_EP_SIZE 64

© 2008 Microchip Technology Incorporated. All Rights Reserved. COM3100Rev0.3 Slide 105
String Descriptores
rom struct{byte bLength;byte bDscType;word string[1];}sd000={
sizeof(sd000),DSC_STR,0x0409};

rom struct{byte bLength;byte bDscType;word string[25];}sd001={


sizeof(sd001),DSC_STR,
'M','i','c','r','o','c','h','i','p',' ',
'T','e','c','h','n','o','l','o','g','y',' ','I','n','c','.'};

rom struct{byte bLength;byte bDscType;word string[33];}sd002={


sizeof(sd002),DSC_STR,
'P','I','C','D','E','M',' ','F','S',' ','U','S','B',' ',
'D','e','m','o',' ','B','o','a','r','d',' ','(','C',')',
' ','2','0','0',‘7'};

© 2008 Microchip Technology Incorporated. All Rights Reserved. COM3100Rev0.3 Slide 106
Resumen
 Drivers construido dentro de Windows para mas
dispositivos USB
 Un dispositivo de clase personalizada necesita un
Vendedor especifico Driver para Dispositivos
 El archivo mchpusb.sys es un “vendedor” specífico
Driver para Dispositivo
 /MCHPFSUSB/fw/demo contiene el dispositivo
framework de clase personalizada
 .inf Files
 MPUSBAPI.DLL simplifica sus actividad de desarrollo

© 2008 Microchip Technology Incorporated. All Rights Reserved. COM3100Rev0.3 Slide 107
Agenda
 El desafío de conectividad para Diseñar Sistemas Embebidos
 Revisión sobre USB
 Principios de Operación
 Soluciones en Microcontroladores PIC® para USB de MCHP
 Usando el Microchip USB Framework
 Drivers de PC para USB
 Microchip USB Herramientas de desarollo
 Algunas Soluciones USB
 Resumen y Recusos

© 2008 Microchip Technology Incorporated. All Rights Reserved. COM3100Rev0.3 Slide 108
PICDEM™ Full-Speed USB
 PIC18F4550, 20 MHz xtal  Power LED Indicators
 USB Port  Potentiometer
 Serial Port  Temperature Sensor
 PICtail™ Daughter Board
Compatible

© 2008 Microchip Technology Incorporated. All Rights Reserved. COM3100Rev0.3 Slide 109
Low Pin Count USB Development Kit

 Demo board for


PIC18F14K50
 Connects directly to
PICkit 2
 USB 2.0 Port
 RS232 Port
 LEDs
 Potentiometer
 Breadboard area
 Software for USB
peripheral devices

© 2008 Microchip Technology Incorporated. All Rights Reserved. COM3100Rev0.3 Slide 110
PIC18F87J50 FS USB Plug-In Module
(PIM)
 PIC18F87J50, 12 MHz xtal
 USB Full Speed Port
 LEDs,
 Pushbuttons
 Plugs as PIM on other
boards

© 2008 Microchip Technology Incorporated. All Rights Reserved. COM3100Rev0.3 Slide 111
Explorer 16 USB Demo boards

Explorer 16

PIC MCU PIM USB PICtail+

 Demo board for all 16 and 32bit  Supports OTG, Embedded Host and
PIC MCUs Device
 Requires 16 or 32 bit USB PIC  USB OTG stacks for Device and
MCU PIM host
 Requires USB PICtail+ Daughter  Class drivers for Generic, HID, and
Board Mass Storage
© 2008 Microchip Technology Incorporated. All Rights Reserved. COM3100Rev0.3 Slide 112
PIC24F Starter Kit
Debugger Port USB Peripheral Device Port

OTG Port

Debugger Application
 The PIC24F Starter Kit is based on the PIC24 USB MCU
 Highlights the PIC24 as a Embedded Host or OTG
 USB Flash Drive Interface
 Interactive Display and Touch keypad interface
 Built-in MPLAB compatible Debugger
 Board powered by USB port to PC
© 2008 Microchip Technology Incorporated. All Rights Reserved. COM3100Rev0.3 Slide 113
PIC32 USB Starter Board

USB Peripheral Device Port


Thumb Drive
Debugger Connection
Debugger Port
Port (Host)

On-The-Go Port
(Dual-Role)

OTG Port

 The PIC32 USB Starter Board is based on the PIC32MX460F512 USB MCU
 Highlights the PIC32 as an Embedded Host or OTG
 USB Peripheral Device Interface
 Built-in MPLAB compatible Debugger
 Board powered by USB port to PC

© 2008 Microchip Technology Incorporated. All Rights Reserved. COM3100Rev0.3 Slide 114
USB Development Support
 Microchip USB Design Center

 Buy USB Development Boards and Kits from


microchipDirect (www.microchipdirect.com)
 Detailed Product Information at:
 www.microchip.com/pic32
 www.microchip.com/pic24
 www.microchip.com/pic18
© 2008 Microchip Technology Incorporated. All Rights Reserved. COM3100Rev0.3 Slide 115
Agenda
 El desafío de conectividad para Diseñar Sistemas Embebidos
 Revisión sobre USB
 Principios de Operación
 Soluciones en Microcontroladores PIC® para USB de MCHP
 Usando el Microchip USB Framework
 Drivers de PC para USB
 Microchip USB Herramientas de desarollo
 Algunas Soluciones USB
 Resumen y Recusos

© 2008 Microchip Technology Incorporated. All Rights Reserved. COM3100Rev0.3 Slide 116
Soluciones MCU PIC Microchip’s para
USB
 USB Device, Embedded Host or OTG
Aplicaciones:
 Interfaz para el Mundo Real
 Colectar datos sobre la temperatura, Presión,
Peso, etc.
 Control de calentadores, motores, displays etc.
 Interfaz para una PC, Embedded Host o
Dispositivo USB
 Para análisis de datos, display,
almacenamiento, etc.

© 2008 Microchip Technology Incorporated. All Rights Reserved. COM3100Rev0.3 Slide 117
Soluciones USB desde Microchip
Full-Speed On-The-Go (12 Mbps)
Full Speed USB Embedded Host or Device
“Negotiates” with other OTG Products
Copy Box, PDA, Portable Instrument
Complexity and Speed

Full-Speed Embedded Host (12 Mbps)


Full Speed USB Embedded Host
Security System, Download Files, Upload Software

Full-Speed Device (12 Mbps)


Full Speed USB Device
Biometrics, Data loggers

Low-Speed Device (1.5 Mbps)


Low Speed USB Device
Mouse, Keyboard, Speaker, Cell Charger

© 2008 Microchip Technology Incorporated. All Rights Reserved. COM3100Rev0.3 Slide 118
Soluciones desde Microchip
 AN956: Migración de Aplicaciones para USB fdesde RS232
 Aplicaciones Basadas en PIC18
 Implementación hecha sobre Standard Full Speed Demo Board
 Implementación de comunicacion con dispositivo Clase (CDC)
 Codigo C facilmente migrable para MCUs PIC USB
 4KB de firmware para implementar interfaz USB
 Suporta todos los MCUs PIC con USB Full Speed
 Incluye drivers basados en windows para el PC Host

RS232

USB
© 2008 Microchip Technology Incorporated. All Rights Reserved. COM3100Rev0.3 Slide 119
Demo 1 Dispositivo Periférico
PIC18

© 2008 Microchip Technology Incorporated. All Rights Reserved. COM3100Rev0.3 Slide 120
Solucion Desde Microchip
AN1003: USB Almacenamiento masivo
Standard
MSD Pigtail Board
Full Speed Demo Board Windows
Drivers

USB

•USB Interface para un MSD Class device


•Implemente using Secure Digital/Multimedia Card
•PIC MCU implementación sobre standard Full
Speed Demo board y MSD Pictail Board
•Uses standard Windows based drivers: usbstor.sys

© 2008 Microchip Technology Incorporated. All Rights Reserved. COM3100Rev0.3 Slide 121
Solución Desde Microchip
USB PICtail QVGA PICtail

Explorer 16

 Embedded Host Usando el PIC24FJ256GB110 16-bit


PIC MCU
 Host Reads jpeg o bit mapped pictures para USB
Flash Drive
 Host Displays pictures sobre display QVGA color

© 2008 Microchip Technology Incorporated. All Rights Reserved. COM3100Rev0.3 Slide 122
VID & PID
 Vendor ID (VID) 16-bit number
 Required to market your product
 http://www.usb.org/developers/vendor/
 USD $2,000
 Technical & Legal trouble if not using an approved VID
 Product ID (PID) 16-bit number
 Microchip’s Sub-licensing Program
 Every product line is required to have a unique combination of VID
and PID

© 2008 Microchip Technology Incorporated. All Rights Reserved. COM3100Rev0.3 Slide 123
Conformidad USB
 Compliance Testing
 Must pass to use USB logo
 USD ~$1,500
 Ch9 and other USB Firmware
 USB Protocol Analyzer
 “USBCV” USB Command Verifier
 Tests device for conformance to Ch9, Hub, HID , MSD and Video Class
specifications
 www.usb.org/developers/tools/

 Electrical Signal Quality


 Power Management

© 2008 Microchip Technology Incorporated. All Rights Reserved. COM3100Rev0.3 Slide 124
Testeo de conformidad
 For USB Compliance: Independent Test Labs
 For Device ‘Sanity Check’: USB “Plugfest”

 For USB Compliance Testing:


 Must submit a compliance checklist
 www.usb.org/developers/compliance/peripheral_low/
 Download “Peripheral Checklist”

 TID: Test ID
 Use certified USB receptacle and cable for testing
 Know the TID of your components
 All USB PIC® MCUs have a TID number. Get it at www.microchip.com/usb

 Probably a good idea to take a look at the checklist even before starting your
design!

© 2008 Microchip Technology Incorporated. All Rights Reserved. COM3100Rev0.3 Slide 125
Soluciones Embebidas
 Otra forma de realizar una conexión USB
es utilizando un USB embebido
 Permite conectar cualquier tipo de
Microcontrolador
 No requiere de Programación especial ni
conocimientos avanzados de USB
 Crea un VCP (Virtual COM Port)
 Es muy sencillo de conectar
 Muy bajo costo

© 2008 Microchip Technology Incorporated. All Rights Reserved. COM3100Rev0.3 Slide 126
FTDI DS_FT232R
 Es una solución de Bajo costo (UD$7.53)
 Es un convertidor USART a USB
 Se lo puede usar para :
 Generar un convertidor RS232 a USB
 Generar un convertidor RS485 a USB
 Generar una Interfaz embebida USB

© 2008 Microchip Technology Incorporated. All Rights Reserved. COM3100Rev0.3 Slide 127
Características Generales del
DS_FT232R
 Implementación de VCP Y Direct Libre de
Licencias y desarrollo de Driver
 Buffer TXD de 256 bytes y RXD de 128 bytes
 Resistores de terminación integrados al chip
 Generador de clock integrado
 BAUD RATE desde 300 BAUD a 3MBAUD
 EEPROM de 1024 bits integrada
 Usada para almacenar los descriptores y la
configuración de puertos I/O
 Pines I/O configurables
 Driver para LEDS TXD y RXD
© 2008 Microchip Technology Incorporated. All Rights Reserved. COM3100Rev0.3 Slide 128
FT232R diagrama interno

© 2008 Microchip Technology Incorporated. All Rights Reserved. COM3100Rev0.3 Slide 129
PIN OUT+Símbolo

© 2008 Microchip Technology Incorporated. All Rights Reserved. COM3100Rev0.3 Slide 130
Alimentación desde el USB

© 2008 Microchip Technology Incorporated. All Rights Reserved. COM3100Rev0.3 Slide 131
Conectando el FT232R a un MCU

© 2008 Microchip Technology Incorporated. All Rights Reserved. COM3100Rev0.3 Slide 132
Circuito de aplicación

© 2008 Microchip Technology Incorporated. All Rights Reserved. COM3100Rev0.3 Slide 133
MCP2200
 Interfaz Adaptado USB a USART
fabricado por Microchip
 Soporta USB Full Speed (12Mbs)
 Buffer de 128 byate para manejar el
procesamiento de datos de la USART a
cualquier BAUD RATE
 64 Bytes para TXD y RXD

© 2008 Microchip Technology Incorporated. All Rights Reserved. COM3100Rev0.3 Slide 134
Diagarama Interno

© 2008 Microchip Technology Incorporated. All Rights Reserved. COM3100Rev0.3 Slide 135
Características
 Soporta un BAUD RATE de 300bps a
1000Kbps
 Control de flujo por Hardware
 Incorpora hasta 8 puertos I/O
 EEPROM de 256Bytes
 Salidas para LED Tx y Rx
 Opera desde 3 a 5.5V
 Costo U$D 2.94

© 2008 Microchip Technology Incorporated. All Rights Reserved. COM3100Rev0.3 Slide 136
Circuito de aplicaciones del MCP2200

© 2008 Microchip Technology Incorporated. All Rights Reserved. COM3100Rev0.3 Slide 137
Placa conversora USB-232
 Es una tarjeta que permite conectar USB
a RS232
 Soporta un amplio BAUD RATE
 Driver de configuración Free
 Muy facil de Utilizar

© 2008 Microchip Technology Incorporated. All Rights Reserved. COM3100Rev0.3 Slide 138
Schematic Circuit

© 2008 Microchip Technology Incorporated. All Rights Reserved. COM3100Rev0.3 Slide 139
Driver para configurar la placa

© 2008 Microchip Technology Incorporated. All Rights Reserved. COM3100Rev0.3 Slide 140
Agenda
 El desafío de conectividad para Diseñar Sistemas Embebidos
 Revisión sobre USB
 Principios de Operación
 Soluciones en Microcontroladores PIC® para USB de MCHP
 Usando el Microchip USB Framework
 Drivers de PC para USB
 Microchip USB Herramientas de desarollo
 Algunas Soluciones USB
 Resumen y Recusos

© 2008 Microchip Technology Incorporated. All Rights Reserved. COM3100Rev0.3 Slide 141
Resumen
 Microchip Ofrece un completo rango de
Soluciones USB :
 Amplio rango de MCU PIC
 Con USB construido dentro y transceptores USB
OTG
 Soluciones MCU 8-bit, 16-bit y 32-bit

 Soluciones en dispositivos USB for HID, CDC, MSD y


Clase Custom
 Host Embebido soluciones OTG para MSD, HID y
Clase Genérica
 PC side Drivers para Windows interface via USB
 Standard Demo boards para el desarrollo de prototipo
rápido
 Notas de aplicación para guia paso a paso
© 2008 Microchip Technology Incorporated. All Rights Reserved. COM3100Rev0.3 Slide 142
Recursos
 Microchip USB Design Center: Firmware, Custom Driver, App.
Notes, other USB specific resources
 http://www.microchip.com/usb
 USB 2.0 Specifications and Device Class Specifications
 http://www.usb.org
 Developers Discussion Forum
 http://www.usb.org/phpbb/
 http://forum.microchip.com/tt.aspx?forumid=102
 “USB Complete, 3/E”
& “Serial Port Complete, 2/E” by Jan Axelson

© 2008 Microchip Technology Incorporated. All Rights Reserved. COM3100Rev0.3 Slide 143
Muchas Gracias!
Traducido por Andrés Raúl Bruno Saravia

© 2008 Microchip Technology Incorporated. All Rights Reserved. COM3100Rev0.3 Slide 144
Trademarks
The Microchip name and logo, the Microchip logo, Accuron, dsPIC, KeeLoq, KeeLoq logo, microID,
MPLAB, PIC, PICmicro, PICSTART, PRO MATE, rfPIC and SmartShunt are registered trademarks of
Microchip Technology Incorporated in the U.S.A. and other countries.
AmpLab, FilterLab, Linear Active Thermistor, Migratable Memory, MXDEV, MXLAB, SEEVAL,
SmartSensor and The Embedded Control Solutions Company are registered trademarks of Microchip
Technology Incorporated in the U.S.A.
Analog-for-the-Digital Age, Application Maestro, CodeGuard, dsPICDEM, dsPICDEM.net, dsPICworks,
ECAN, ECONOMONITOR, FanSense, FlexROM, fuzzyLAB, In ‑Circuit Serial Programming, ICSP,
ICEPIC, Mindi, MiWi, MPASM, MPLAB Certified logo, MPLIB, MPLINK, PICkit, PICDEM, PICDEM.net,
PICLAB, PICtail, PowerCal, PowerInfo, PowerMate, PowerTool, REAL ICE, rfLAB, Select Mode, Smart
Serial, SmartTel, Total Endurance, UNI/O, WiperLock and ZENA are trademarks of Microchip
Technology Incorporated in the U.S.A. and other countries.
SQTP is a service mark of Microchip Technology Incorporated in the U.S.A.
All other trademarks mentioned herein are property of their respective companies.

© 2008 Microchip Technology Incorporated. All Rights Reserved. COM3100Rev0.3 Slide 145

También podría gustarte