Guia de Configuração USB no Microcontrolador PIC18F4550

Enviado por Javi e classificado em Eletrônica

Escrito em em português com um tamanho de 25,55 KB

Características do Módulo USB

Taxa de transferência: Pode ser de baixa velocidade (1.5 Mb/s) ou de alta velocidade (12 Mb/s).

  • Interrupções: Toda vez que há uma transmissão ou recepção de dados no barramento, é gerada uma interrupção para o PIC. Isso permite que o atendimento de rotina gerencie os aspectos de baixo nível da especificação USB, tornando a manipulação do protocolo transparente para o núcleo da aplicação.
  • Endpoints: Permite a utilização de até 32 terminais (16 vias), mas normalmente utiliza apenas três (endpoints 0, 1 e 2). Um endpoint é um buffer que armazena dados dentro do dispositivo. Todos os dispositivos devem suportar o endpoint 0, utilizado para configuração.

Dual Access RAM: O módulo utiliza 1 Kbyte de RAM de acesso duplo. Quando o módulo USB está desativado, esses bancos funcionam como memória RAM comum. Quando ativado, a memória é alocada como buffer para a operação USB, compartilhada entre o núcleo do microcontrolador e o motor da interface serial (SIE).

SIE (Serial Interface Engine): É responsável pela geração do CRC, sincronização de sinais D+ e D-, e correção de comunicação entre o módulo e o PIC.

Configuração do Módulo

USBEN: Bit de prioridade no registro UCON<3> que ativa ou desativa o módulo USB. Também controla o regulador de tensão e os resistores pull-up.

Definição de Frequência

Para a comunicação USB, a configuração da frequência do relógio é fundamental. Dependendo da velocidade (baixa ou alta), fornecemos ao módulo 6 ou 48 MHz, respectivamente. O sistema utiliza um cristal (ex: 4 MHz) que passa por prescalers e PLLs para atingir os 48 MHz necessários para o USB 2.0.

Z

O sinal passa pelo oscilador, podendo ser injetado diretamente (se for 48 MHz) ou processado via Prescaler PLL e multiplexadores para gerar a frequência correta.

Transmissores e Regulador

  • Transmissor Interno: Controlado pelo bit UTRDIS (UCFG<3>).
  • Transmissor Externo: Utilizado quando as condições físicas exigem distância entre o transmissor e o SIE (ativado com UTRDIS = 1).
  • Regulador Interno: O PIC18F4550 possui um regulador de 3,3 V para o transmissor. Requer um capacitor externo de 220nF e é configurado pelo bit VREG.

Velocidade do Barramento

A velocidade é definida pelo registro UCFG e resistores pull-up:

  • FSEN (UCFG<2>): 1 para Full-speed (48 MHz, pull-up em D+); 0 para baixa velocidade (6 MHz, pull-up em D-).
  • UPUEN (UCFG<4>): Habilita ou desabilita os resistores pull-up.

Interrupções USB

O PIC18F4550 utiliza registros específicos para gerenciar interrupções:

  • PIR2: Contém a flag de interrupção (USBIF).
  • PIE2: Contém o bit de permissão (USBI).
  • IPR2: Define a prioridade (USBIP).

Controle de Endpoint USB

Os endpoints são buffers de dados. Cada um dos 16 endpoints bidirecionais possui um registro de controle independente (UEPn):

  • EPHSHK (UEPn<4>): Controla o protocolo de troca (handshake).
  • EPCONDIS (UEPn<3>): Habilita ou desabilita o controle de operações SETUP.
  • EPINEN e EPOUTEN: Habilitam operações de entrada e saída, respectivamente.

Entradas relacionadas: