Janeiro 31, 2022

Interface USB com microcontrolador PIC com código

interface USB com microcontrolador PIC: o objetivo deste artigo é construir conceito sobre interface USB para o microcontrolador PIC. O programador é usado apenas pela primeira vez para carregar o código no microcontrolador e depois disso podemos carregar diretamente o código no microcontrolador através deste circuito mais simples. PIC18F2550 e PIC18F4550 são famosos por seu módulo USB.

Tabela de Conteúdo

USB (Universal Serial Bus)

é a conexão mais comum utilizado para ligar um computador para diferentes dispositivos como câmeras digitais, impressoras, scanners e unidades de disco rígido externas, etc.

VELOCIDADES de TRANSFERÊNCIA USB

USB 1.0 Suporta taxas de transferência de dados de:

  • 5 Mega bits por segundo Mbps (velocidade baixa), usado para Dispositivos de Entrada Humana e.g teclado, mouse, joysticks, etc
  • 2 Mbps (alta velocidade) usada para impressoras, scanners, etc

USB 2.0 conhecido como hi-speed USB e capaz de suportar uma taxa de transferência de até 480Mbps.

USB 3.0 também conhecido como super-velocidade USB e suporta taxas de transferência de até 5,0 gigabits por segundo (Gbps).

USB 3.1 também conhecido como Super speed + e capaz de suportar taxas de transferência de até 10 Gbps.

USB Type-C seu plugue se conecta a “hosts e dispositivos”.

PIN out USB:  USB-communication-with-pic-microcontrolador

as principais etapas envolvidas neste projeto são:

Passo#1 Geração de Clock

Etapa#2 do Circuito Construções

Passo#3 Programação do Microcontrolador

Passo#4 de gravar o código no Microcontrolador

Passo#5 Drivers de Dispositivo

Etapa#6 do Circuito de Trabalho

GERAÇÃO de CLOCK para USB interface com o microcontrolador pic

P18F2550/4550 suporta velocidade baixa (1,5 Mb/s) e Velocidade máxima (12 Mb/s) para USB e temos que selecionar um determinado relógio. Um relógio interno de 6 MHz ou 48 MHz é necessário devido ao requisito de tempo imposto pelo USB.Mas há um problema em usar o cristal de 48MHz. Este cristal é de alto custo e também cria ruído. Uma vez que maior o cristal, maior será o ruído.Existem inúmeras opções para atingir o requisito de relógio do módulo USB que ainda fornece flexibilidade para cronometrar o resto do dispositivo a partir da fonte do oscilador primário.Aqui, o oscilador de cristal usado com PIC18F4550 para interface USB é oscilador de cristal de 20MHz. É usado para oscilação interna do microcontrolador e é conectado em 13 e 14 pinos de MCU. USB Communication oscialltor seleção para pic microcontrolador

configurações de BITS para interface USB com pic microcontrolador

no caso de 20 MHz cristal:

  • defina a “seleção do oscilador” para HSPLL. Ele vai dar a 20 MHz na entrada da primária “oscilador”
  • Definir o “PLL prescaler seleção” para dividir por 5, então temos 4 MHz, que são multiplicados por 24 para obter o 96 MHz USB
  • Definir o “USB relógio seleção” para 96 MHz dividido por 2
  • Definir o “relógio do Sistema postscaler seleção” para 96 dividido por dois.

finalmente, a frequência do oscilador é definida como 48 MHz. (96 MHz/2=48MHzconfiguração de freqüência em mikro c para pic

USB, interface de circuito com o microcontrolador pic

usb interface com o microcontrolador pic

Fazer o diagrama do circuito, como mostrado no esquema:

  • A tensão de entrada para um Microcontrolador PIC18F4550 nunca deve exceder 5 V.
  • cristal oscilador utilizado é de 20MHZ oscilador de cristal, que é ligado em 13 e 14 de pin.
  • 11º e 32º pinos curtos juntos para 5V, similarmente 12º e 31º pinos para GND. Mas aqui MCU tem construído em conexões.
  • os dois LEDs estão em RD0 e RD1 e 1 kΩ resistência é adicionada a cada LED. Eles são usados para fins de comunicação apenas para ver se a comunicação USB existe.
  • por este circuito de Interface USB vamos controlar 2 pinos, RD2 e RD3.
  • um interruptor é para o botão de Reset e está conectado com o pino 1.
  • outro switch é para carregamento de inicialização conectado com o pino 37.

led’s on (RD2, RD3) são usados como pinos de controle, mas esses pinos de controle também podem ser usados para controlar outras coisas. Pode facilmente conectado com o motorista do Motor L293D, o Motor da C. C., O Motor deslizante , os interruptores do relé, O servo etc.

esquemático em Proteus

programação do microcontrolador PIC

o código para interface USB com microcontrolador é fornecido abaixo. Mas para usar este código você tem que adicionar driver de dispositivo também. Antes de usar este código, o Usuário deve criar driver de dispositivo USB, indo para Ferramentas de Mikro C para pic e clique em HID terminal e gerar descritor.c arquivo e cole este arquivo em sua pasta de código principal.

unsigned char readbuff absolute 0x500; // Buffers should be in USB RAM, please consult datasheetunsigned char writebuff absolute 0x540;char cnt;char kk;void interrupt(){ USB_Interrupt_Proc(); // USB servicing is done inside the interrupt}void main(void){ ADCON1 |= 0x0F; // Configure all ports with analog function as digital CMCON |= 7; // Disable comparators HID_Enable(&readbuff,&writebuff); // Enable HID communication while(1){ while(!HID_Read()) ; for(cnt=0;cnt<64;cnt++) writebuff=readbuff; while(!HID_Write(&writebuff,64)) ; }}

o código para o microcontrolador é escrito com algum software especial que possui linguagem de programação própria semelhante a C, por exemplo: MPLAB, software microC. O código é então compilado para uma respectiva saída. Neste processo o”.é gerado um arquivo hex” que deve ser queimado / fusível no microcontrolador.

gravar o código no microcontrolador

a saída carregada no EPROM do microcontrolador é chamada de firmware. Precisamos de um hardware especial para fundir este código de saída (arquivo hex) no MCU. O programador JDM é um exemplo desse dispositivo usado para carregar o arquivo hexadecimal no MCU. É fácil de fazer e barato.Após o carregamento, retire o PIC18F4550 do programador (carregamento da primeira vez do código hexadecimal) e insira-o de volta no circuito da interface USB.Depois disso, temos que fornecer o motorista.

não precisamos seguir esta etapa (uso do programador) sempre para carregar o firmware (arquivo hex). Uma vez que o firmware base é carregado no chip, podemos atualizar o hexfile de saída diretamente com o circuito de desenvolvimento da interface com o software smallbootloading.

DRIVERS de dispositivo para interface USB com microcontrolador pic

Conecte o cabo USB do computador à Interface USB. Mesmo depois de completar o circuito e também a programação no microcontrolador, ele não começará a funcionar corretamente. Como sabemos, a nova instalação de hardware requer driver para windows para ser detectado pelo sistema.

para a instalação do Driver e a operação de carregamento de inicialização, precisamos baixar e instalar o USB Microchip FRAMEWORK no site da microchip.

circuito de trabalho de interface USB

para iniciar o circuito, temos que inicializá-lo no modo de BOOTLOAD. No circuito de interface USB, como já explicado,existem dois botões, um é o botão e outro é o botão de BOOTLOAD.

  • segure o botão theRESET
  • mantenha o RESET pressionado e, em seguida, pressione o botão bootload uma vez
  • em seguida, solte os dois botões.
  • a janela detectará o hardware USB PICI8F4550 e solicitará Drivers para o circuito/placa thisPIC18F4550.
  • se a janela não está pedindo drivers, então pode haver alguns problemas com o circuito.
  • Suponha que os Drivers para este dispositivo USB está localizado em
    C:\MCUSB\MCUSB Driver\Debug

Quando o windows vai perguntar para os motoristas,vá para controlador manual de busca e procurar, acima de mencionar a localização da pasta para os Motoristas.Depois que os Drivers são instalados, Led1 e Led 2 (conectados em RD0 e RD1) começarão a piscar alternativamente, o que significa que nosso circuito USB está se comunicando perfeitamente com nosso PC.Depois que os drivers são instalados, sempre que para conectar este circuito ao nosso computador, não precisamos pressionar reset orbootload buttonsand os LEDs começarão a piscar alternativamente.Agora a placa de circuito de interface USB está pronta, e podemos carregar nosso próprio arquivo hex no chip diretamente da placa USB, (sem programador JDM).

não é necessário usar um programador (circuito do queimador) para gravar o firmware (arquivo hex) no PIC18F4550. O programador JDM é usado apenas pela primeira vez programação do código e para outras etapas, podemos usar um software de carregamento de inicialização para gravar um novo código diretamente do circuito de interface USB para MCU. Esse MCU pode ser usado para outro circuito específico para o qual o código de saída foi projetado.

Deixe uma resposta

O seu endereço de email não será publicado.