You are on page 1of 15

USB UNIVERSAL SERIAL BUS

Sistemas Microprocessados II
USB microcontroladores PIC

.
prof. Marcos Zuccolotto
.

Arquitetura PIC 18F2455

USB UNIVERSAL SERIAL BUS


Sistemas Microprocessados II
USB microcontroladores PIC

.
prof. Marcos Zuccolotto
.

Perifrico USB SIE Serial Interface Engine Full-speel e low-speed Transceiver interno ou externo Regulador de tenso interno Resistores de pull-up internos 1kbyte memria USB Streaming Parallel Port (dispositivos 40 pinos)

USB UNIVERSAL SERIAL BUS


Sistemas Microprocessados II
USB microcontroladores PIC

.
prof. Marcos Zuccolotto
.

Modos de alimentao do dispositivo Alimentao pelo barramento

Alimentao prpria

Alimentao dupla com predominncia da fonte prpria

USB 2.0 : Carga no barramento no pode exceder a 100 mA para dispositivos low-power e 500 mA para dispositivos high-power.

USB UNIVERSAL SERIAL BUS


Sistemas Microprocessados II
USB microcontroladores PIC

.
prof. Marcos Zuccolotto
.

RAM USB Memria dupla-porta Mapeada entre os endereos 400h a 7FFh Banco 4 : utilizado para controle dos buffers de endpoint Banco 5 a 7 : utilizados para dados USB Mecanismo de semforo para arbitrar acesso entre a SIE e o core do microprocessador. Tabela de descritores de buffers : apontam para as reas de memria utilizadas pelos Endpoints Tabela de Descritores de Buffer (BDT) Buffer Descriptors (BD) BDnADRL e BDnADRH : Endereo inicial do buffer de memria BDnCNT : Contador de bytes transferidos BDnSTAT : Registrador de Status

USB UNIVERSAL SERIAL BUS


Sistemas Microprocessados II
USB microcontroladores PIC

.
prof. Marcos Zuccolotto
.

Bufferizao Ping-pong Quando um Endpoint possui um buffer ping-pong, so associoados a este Endpoint duas entrada BDT Uma entrada para as transaes pares Uma entrada para as transaes impares Isto permite ao microcontrolador acessar um buffer enquanto o outro est sendo utilizado pelo SIE. Existem 4 modos de operao : Sem suporte a ping-pong Suporte a ping-pong s no endpoint 0 Suporte a ping-pong em todos os endpoints Suporte a ping-pong em todos os endpoints exceto no endpoint 0

USB UNIVERSAL SERIAL BUS


Sistemas Microprocessados II
USB microcontroladores PIC

.
prof. Marcos Zuccolotto
.

Buffer Descriptor BDnSTAT Modo CPU


UOWN DTS KEN INCDIS DTSEN BSTALL BC9 BC8

UOWN : USB Own - Propriedade do buffer


0 Buffer acessado pelo microcontrolador

DTS : Data Toggle Sincronization


1 Data 1 packet 0 Data 0 packet Ignorado se DTSEN = 0 .

KEN: BD Keep Enable


1 USB mantm o BD indefinidamente ( configurao SPP) 0 USB devolve o BD quando transao encerrada

INCDIS: Address Increent Disable


1 Incremento do endereo desabilitado ( configurao SPP) 0 Incremento do endereo habilitado

DTSEN : Data Toggle Sincronization Enable


1 Pacote com sincronizao incorreta ignorado, exceto nas transaes de SETUP 0 No realizada sincronizao

BSTALL : Buffer Stall Enable


1 Habilitado Buffer Stall 0 Desabilitado Buffer Stall

BC9:BC8 : Byte Count 9 e 8


Bits mais significativos do BDnCNT, implementando um contador de 10 bits, para transaes de at 1024 bytes.

USB UNIVERSAL SERIAL BUS


Sistemas Microprocessados II
USB microcontroladores PIC

.
prof. Marcos Zuccolotto
.

Buffer Descriptor BDnSTAT Modo SIE


UOWN PID3 PID2 PID1 PID0 BC9 BC8

UOWN : USB Own - Propriedade do buffer


1 Buffer acessado pela SIE

PID3:PID0 : Packet Indentifier bits O token PID recebido na ultima transao (IN, OUT ou SETUP) BC9:BC8 : Byte Count 9 e 8
Bits mais significativos do BDnCNT, implementando um contador de 10 bits, para transaes de at 1024 bytes.

BDByteCount Distribudo em 2 registradores : BDnSTAT<1:0> e BDnCNT Transao IN (envia dados para o host) : Representa o nmero de bytes a serem transmitidos durante a transao. Aps a transao, o SIE retornar com o nmero de bytes enviados. Transao OUT (recebe dados do host) : Representa o nmero mximo de bytes que podem ser armazenados na RAM-USB. Aps a transao OUT, o SIE retornar com a quantidade de bytes recebidos. Se o nmero de bytes recebidos exceder a correspondente contagem, o pacote de dados ser rejeitado e uma resposta NAK ser gerada. Se isto acontecer o contador de bytes no atualizado.

USB UNIVERSAL SERIAL BUS


Sistemas Microprocessados II
USB microcontroladores PIC

.
prof. Marcos Zuccolotto
.

Registradores de Controle UCON Registrador de controle da USB


- PPBRST SE0 PKTDIS USBEN RESUME SUSPND -

PPBRST: PingPongBufferReset
1 Resseta todos os buffer ping-pong para os descritores pares deve ser limpo por software. 0 Buffer ping-pong inalterados

SE0 : Single Ended Zero flag


1 Detectado Single Ended Zero no barramento 0 Barramento OK

PKTDIS: Packet Transfer Disable bit


1 Desabilita processamento do token SIE e de processamento de pacotes, ligado automaticamente quando um token SETUP for recebido 0 Processamento de pacotes habilitado

USBEN: USB Module Enable


1 Mdulo USB e circuitos de suporte habilitados 0 Mdulo USB e circuitos de suporte habilitados Pode ser utilizado para conectar/desconectar a USB por software. Todo o mdulo USB deve estar configurado antes da utilizao deste bit.

RESUME : Resume Signaling Enable


1 Sinalizao de RESUME ativada 0 Sinalizao de RESUME desativada SUSPND : Suspend USB 1 USB em modo de conservao de energia, SIE desativado. 0 SIE em operao normal

USB UNIVERSAL SERIAL BUS


Sistemas Microprocessados II
USB microcontroladores PIC

.
prof. Marcos Zuccolotto
.

Registradores de Controle UCFG Registrador de configurao da USB


UTEYE UOEMON - UPUEN UTRDIS FSEN PPB1 PPB0

UTEYE: USB eye pattern test enable


1 Teste do padro de olho habilitado. 0 Teste do padro de olho desabilitado

UOEMON : USB OE Monitor Enable


1 Monitor ativo. Indica os intervalos nos quais as linhas de comunicao so driveadas (RC1) 0 Monitor desativo

UPUEN: USB On-Chip Pull-up enable


1 Habilita pull-ups internos 0 Desabilita pull-ups internos

UTRDIS: USB On-chip Transceiver Disable


1 Desabilita transceiver usb interno, habilita interface externa 0 Trasceiver USB interno habilitado

FSEN : Full-speed Enable bit


1 Full-speed device : requer entrada de clock a 48 MHz 0 Low-speed device : requer entrada de clock a 6 MHz PPB1:PPB0 : Ping-pong Buffers Configuration 11 Buffers ping-pong habilitados para os endpoints 1 a 15. 10 Buffers ping-pong habilitados para todos os endpoints. 01 Buffers ping-pong habilitados para o endpoint 0 OUT. 00 Buffers ping-pong desabilitados.

USB UNIVERSAL SERIAL BUS


Sistemas Microprocessados II
USB microcontroladores PIC

.
prof. Marcos Zuccolotto
.

Registradores de Controle USTAT Registrador de status da USB


.-. ENDP3 ENDP2 ENDP1 ENDP0 DIR PPBI -

ENDP3:ENDP0: Nmero do ultimo endpoint ativo


1111 Endpoint 15 .... 0000 Endpoint 0

DIR : Last BD Direction Indicator bit


1 A ultima transao foi um token IN 0 A ultima transao foi um token OUT ou SETUP

PPBI : Ping-Ping BD Pointer Indicator


1 A ltima transao ocorreu no banco impar 0 A ltima transao ocorreu no banco par Nota : Os dados no USTAT so vlidos somente quando o bit TRNIF est setado. O registrador USTAT uma janela de leitura de uma FIFO de 4 bytes. Se um pedido de endpoint recebido quando a FIFO estiver cheia, a SIE envia automaticamente um token NAK para o host.

USB UNIVERSAL SERIAL BUS


Sistemas Microprocessados II
USB microcontroladores PIC

.
prof. Marcos Zuccolotto
.

Registradores de Controle UEPn Controle do Endpoint n


EPHSHK EPCONDIS EPOUTEN EPINEN EPSTALL

EPHSHK : Endpoint Handshake Enable 1 Habili 0 Buffer acessado pelo microcontrolador

EPCONDIS : Bidirecional Endpoint Control


Se EPOUTEN = 1 e EPINEN =1: 1 Desabilita endpoint para transaes de controle 0 Habilita endpoint para transaes de controle

EPOUTEN: Endpoint Out enable bit


1 Endpoint habilitado para transaes OUT 0 Endpoint desabilitado para transaes OUT

EPINEN: Endpoint IN enable bit


1 Endpoint habilitado para transaes IN 0 Endpoint desabilitado para transaes IN

EPSTALL : Endpoint Stall


1 Endpoint stalled (travado) 0 Endpoint em operao norma

USB UNIVERSAL SERIAL BUS


Sistemas Microprocessados II
USB microcontroladores PIC

.
prof. Marcos Zuccolotto
.

Interrupes

Funil de interrupes USB

Exemplos de interrupes geradas

USB UNIVERSAL SERIAL BUS


Sistemas Microprocessados II
USB microcontroladores PIC

.
prof. Marcos Zuccolotto
.

Fontes de interrupo USB Interrupes primrias


SOFIF: START-OF-FRAME Token Interrupt bit STALLIF: A STALL Handshake Interrupt bit IDLEIF: Idle Detect Interrupt bit TRNIF: Transaction Complete Interrupt bit ACTVIF: Bus Activity Detect Interrupt bit UERRIF: USB Error Condition Interrupt bit URSTIF: USB Reset Interrupt bit

Interrupes secundrias (erro)


BTSEF: Bit Stuff Error Flag bit BTOEF: Bus Turnaround Time-out Error Flag bit DFN8EF: Data Field Size Error Flag bit CRC16EF: CRC16 Failure Flag bit CRC5EF: CRC5 Host Error Flag bit PIDEF: PID Check Failure Flag bit

USB UNIVERSAL SERIAL BUS


Sistemas Microprocessados II
USB microcontroladores PIC

.
prof. Marcos Zuccolotto
.

Oscilador

USB UNIVERSAL SERIAL BUS


Sistemas Microprocessados II
USB microcontroladores PIC

.
prof. Marcos Zuccolotto
.

Modos de Operao
1. XT Crystal/Resonator (fosc < 4MHz) 2. XTPLL Crystal/Resonator with PLL enabled 3. HS High-Speed Crystal/Resonator 4. HSPLL High-Speed Crystal/Resonator with PLL enabled 5. EC External Clock with FOSC/4 output 6. ECIO External Clock with I/O on RA6 7. ECPLL External Clock with PLL enabled and FOSC/4 output on RA6 8. ECPIO External Clock with PLL enabled, I/O on RA6 9. INTHS Internal Oscillator used as microcontroller clock source, HS Oscillator used as USB clock source 10. INTXT Internal Oscillator used as microcontroller clock source, XT Oscillator used as USB clock source 11. INTIO Internal Oscillator used as microcontroller clock source, EC Oscillator used as USB clock source, digital I/O on RA6 12. INTCKO Internal Oscillator used as microcontroller clock source, EC Oscillator used as USB clock source, FOSC/4 output on RA6

You might also like