Gennaio 31, 2022

Interfaccia USB con microcontrollore PIC con codice

INTERFACCIA USB con MICROCONTROLLORE PIC: Lo scopo di questo articolo è quello di costruire il concetto di interfaccia USB per il microcontrollore PIC. Programmatore viene utilizzato solo la prima volta per caricare il codice in microcontrollore e dopo che possiamo caricare direttamente il codice in microcontrollore attraverso questo circuito più semplice. PIC18F2550 e PIC18F4550 sono famosi per il loro modulo USB.

Sommario

USB (Universal Serial Bus)

è la connessione più comune utilizzato per collegare un computer a diversi dispositivi, come fotocamere digitali, stampanti, scanner e dischi rigidi esterni, ecc.

USB VELOCITÀ di TRASFERIMENTO

USB 1.0 Supporta velocità di trasferimento dati:

  • 5 Mega bit al secondo Mbps (a bassa velocità), utilizzato per Umani Dispositivi di Input e.g-tastiera, mouse, joystick, ecc
  • 2 Mbps (alta velocità) utilizzato per stampanti, scanner, ecc

USB 2.0 conosciuto come hi-speed USB e in grado di supportare una velocità di trasferimento fino a 480Mbps.

USB 3.0 Noto anche come super-speed USB e supporta velocità di trasferimento fino a 5.0 gigabit al secondo (Gbps).

USB 3.1 Noto anche come super speed + e in grado di supportare velocità di trasferimento fino a 10 Gbps.

USB Type-C La sua spina si collega sia a “host e dispositivi”.

USB PIN OUT:usb-communication-with-pic-microcontroller

I principali passi coinvolti in questo progetto sono:

Passo#1 Orologio Generazione

Passo#2 Circuito di Costruzioni

Passo#3 la Programmazione del Microcontrollore

Passo#4 masterizzare il codice nel Microcontrollore

Passo#5 Driver di Periferica

Passo#6 Circuito di Lavoro

GENERAZIONE di CLOCK per interfaccia USB con microcontrollore pic

P18F2550/4550 supporta bassa velocità (1.5 Mb/s) ed a Piena Velocità (12 Mb/s) e così, per USB abbiamo un orologio. Un orologio interno di 6 MHz o 48 MHz è richiesto a causa del requisito di temporizzazione imposto da USB.Ma c’è un problema nell’usare il cristallo di 48MHz. Questo cristallo è di alto costo e crea anche rumore. Poiché più alto è il cristallo, maggiore sarà il rumore.Ci sono numerose scelte per raggiungere il requisito di clock del modulo USB che forniscono ancora flessibilità per il clock del resto del dispositivo dalla sorgente dell’oscillatore primario.Qui, l’oscillatore a cristallo utilizzato con PIC18F4550 per l’interfaccia USB è l’oscillatore a cristallo 20MHz. Viene utilizzato per l’oscillazione interna del microcontrollore ed è collegato su 13 e 14 pin di MCU. comunicazione usb oscialltor selezione per pic microcontrollore

CONFIGURAZIONE BIT IMPOSTAZIONI PER l’interfaccia USB con pic microcontrollore

Nel caso di 20 MHz di cristallo:

  • Impostare la” Selezione dell’oscillatore ” su HSPLL. Darà 20 MHz all’ingresso di “oscillatore primario”
  • Imposta la “selezione prescaler PLL” per dividere per 5, quindi otteniamo 4 MHz che vengono moltiplicati per 24 per ottenere il 96 MHz per USB
  • Imposta la “Selezione orologio USB” a 96 MHz diviso per 2
  • Imposta la “Selezione orologio di sistema postscaler” a 96 diviso per due.

Infine, la frequenza dell’oscillatore è impostata su 48 MHz. (96 MHz/2=48MHzimpostazione della frequenza in mikro c per pic

interfaccia USB circuito con pic

interfaccia usb con microcontrollore pic

Fare lo schema del circuito come mostrato nello schema:

  • La tensione di ingresso a un PIC18F4550 Microcontrollore non dovrebbe mai superare i 5 V.
  • cristallo oscillatore utilizzato è di 20 MHZ oscillatore a cristallo a cui è collegato il 13 e 14 pin.
  • Breve 11th e 32nd pin insieme a 5 v, allo stesso modo 12th e 31st pin a GND. Ma qui MCU ha costruito in connessioni.
  • I due led sono su RD0 e RD1 e ad ogni LED viene aggiunta una resistenza di 1 kΩ. Essi sono utilizzati per lo scopo di comunicazione solo per vedere che la comunicazione USB esiste.
  • Da questo circuito di interfaccia USB ci accingiamo a controllare 2 pin, RD2 e RD3.
  • Un interruttore è per il pulsante di reset ed è collegato con il pin 1.
  • Altro interruttore è per il Bootloading collegato con pin 37.

I LED on (RD2, RD3) sono usati come pin di controllo, ma questi pin di controllo possono essere usati anche per controllare altre cose. Si può facilmente interfacciato con L293D driver del motore, motore a corrente continua, motore passo-passo, relè interruttori, servo ecc.

Schema su Proteus

PROGRAMMAZIONE DEL MICROCONTROLLORE PIC

Il codice per l’interfacciamento USB con il microcontrollore è riportato di seguito. Ma per usare questo codice devi aggiungere anche il driver del dispositivo. Prima di utilizzare questo codice, l’utente deve creare driver di periferica USB andando su strumenti di Mikro C per pic e fare clic su terminale HID e generare descrittore.c file e incollare questo file nella cartella di codice principale.

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)) ; }}

Il codice per il micro-controller è scritto con alcuni software speciali che hanno proprio linguaggio di programmazione simile a C e. g: mplab, microC software. Il codice viene quindi compilato in un rispettivo output. In questo processo il”.hex ” file viene generato che deve essere bruciare / fusibile nel microcontrollore.

MASTERIZZAZIONE DEL CODICE NEL MICROCONTROLLORE

L’uscita caricata nella EPROM del microcontrollore è chiamata firmware. Abbiamo bisogno di un hardware speciale per fondere questo codice di output (file hex) nell’MCU. Il programmatore JDM è un esempio di tale dispositivo che viene utilizzato per caricare il file hex sull’MCU. È facile da fare ed economico.Dopo il caricamento, chip off il PIC18F4550 dal programmatore (1ST tempo di caricamento del codice hex) e inserire di nuovo nel circuito di interfaccia USB.Dopo questo, dobbiamo fornire l’autista.

Non dobbiamo seguire questo passaggio (uso del programmatore) ogni volta per caricare il firmware (file hex). Una volta che il firmware di base è caricato nel chip possiamo aggiornare l’uscita hexfile direttamente con il circuito di sviluppo dell’interfaccia con il software smallbootloading.

DRIVER DI PERIFERICA PER l’interfaccia USB con microcontrollore pic

Collegare il cavo USB dal computer all’interfaccia USB. Anche dopo aver completato il circuito e anche la programmazione nel microcontrollore, non inizierà a funzionare correttamente. Come sappiamo che nuova installazione hardware richiede driver per Windows per ottenere rilevato dal sistema.

Per l’installazione del driver e il funzionamento di Bootloading abbiamo bisogno di scaricare e installare USB MICROCHIP FRAMEWORK dal sito web microchip.

FUNZIONAMENTO DEL CIRCUITO di interfaccia USB

Per avviare il circuito, dobbiamo inizializzarlo in modalità BOOTLOAD. Nel circuito di interfaccia USB, come già spiegato, ci sono due pulsanti,uno è ilresetbutton e un altro è il pulsante BOOTLOAD.

  • TENERE premuto il pulsante theRESET
  • Tenere premuto il RESET e quindi premere il pulsante theBOOTLOAD una volta
  • Quindi rilasciare entrambi i pulsanti.
  • La finestra rileverà quindi l’hardware USB PICI8F4550 e chiederà i driver per questo circuito/scheda PIC18F4550.
  • Se la finestra non richiede driver, potrebbero esserci alcuni problemi con il circuito.
  • Supponiamo che i driver per questo dispositivo USB si trovino in
    C:\MCUSB\MCUSB Driver \ Debug

Quando Windows chiederà i driver,vai alla ricerca manuale dei driver e vai alla cartella di posizione di cui sopra per i driver.Dopo aver installato i driver Led1 e Led 2 (collegati su RD0 e RD1) inizieranno a lampeggiare alternativamente, il che significa che il nostro circuito USB è perfettamente in comunicazione con il nostro PC.Dopo che i driver sono installati, ogni volta che per collegare questo circuito con il nostro computer, non abbiamo bisogno di premere reset o bootload buttonsand il LED inizierà a lampeggiare in alternativa.Ora il circuito di interfaccia USB è pronto, e siamo in grado di caricare il nostro proprio file hex nel chip direttamente dalla scheda USB, (senza JDM programmatore).

Non è necessario utilizzare un programmatore (circuito bruciatore) per masterizzare il firmware (file hex) nel PIC18F4550. Il programmatore JDM viene utilizzato solo per la prima programmazione del codice e per altre fasi possiamo utilizzare un software di Bootloading per masterizzare nuovo codice direttamente dal circuito di interfaccia USB a MCU. Questo MCU può essere utilizzato per altri circuiti specifici per i quali è stato progettato il codice di uscita.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.