USB-grænseflade med PIC microcontroller med kode
USB-grænseflade med PIC MICROCONTROLLER: formålet med denne artikel er at opbygge koncept om USB-interface til PIC Microcontroller. Programmør bruges kun første gang til at indlæse koden i microcontroller, og derefter kan vi direkte indlæse koden i microcontroller gennem dette enklere kredsløb. PIC18F2550 og PIC18F4550 er berømte for deres USB-modul.
Indholdsfortegnelse
USB (Universal Serial Bus)
det er den mest almindelige forbindelse, der bruges til at forbinde en computer til forskellige enheder såsom digitale kameraer, printere, scannere og eksterne harddiske osv.
USB overførselshastigheder
USB 1.0 understøtter dataoverførselshastigheder på:
- 5 Mega bits per sekund Mbps (lav hastighed), bruges til menneskelige Input enheder f.eks tastatur, mus, joysticks osv
- 2 Mbps (høj hastighed) bruges til printere, scannere osv
USB 2.0 kendt som hi-speed USB og i stand til at understøtte en overførselshastighed på op til 480 Mbps.
USB 3.0 også kendt som super-speed USB og understøtter overførselshastigheder op til 5.0 gigabits per sekund (Gbps).
USB 3.1 også kendt som super speed+ og i stand til at understøtte overførselshastigheder op til 10 Gbps.
USB Type-C dens stik forbinder til både “værter og enheder”.
USB PIN OUT:
de vigtigste trin involveret i dette projekt er:
Trin#1 Urgenerering
Trin#2 Kredsløbskonstruktioner
Trin#3 Programmering af mikrocontrolleren
Trin#4 brænding af koden i mikrocontroller
Trin#5 enhedsdrivere
Trin#6 kredsløb arbejder
URGENERERING til usb-grænseflade med pic-mikrocontroller
P18f2550/4550 understøtter lav hastighed (1, 5 MB/s) og fuld hastighed (12 Mb/s), så for USB skal vi vælge et specifikt ur. Et internt ur på enten 6 mm eller 48 mm er påkrævet på grund af timingkrav pålagt af USB.Men der er et problem med at bruge krystal 48mh. Denne krystal er af høj pris, og det skaber også støj. Da højere krystal, jo større vil være støj.Der er adskillige valg for at opnå USB-modulets urkrav, som stadig giver fleksibilitet til at se resten af enheden fra den primære oscillatorkilde.Her er krystaloscillatoren, der bruges med PIC18F4550 til USB-grænseflade, 20 mm krystaloscillator. Den bruges til intern svingning af mikrocontrolleren, og den er forbundet på 13 og 14 pin MCU.
konfiguration BITS indstillinger for USB grænseflade med pic microcontroller
i tilfælde af 20mh krystal:
- Indstil “Oscillatorvalg” til HSPLL. Det vil give 20 MHG ved indgangen til “primær oscillator”
- Indstil “PLL prescaler selection” til at dividere med 5, så vi får 4 MHG, som ganges med 24 for at få 96 MHG til USB
- Indstil “USB clock selection” til 96 MHG divideret med 2
- Indstil “system clock postscaler selection” til 96 divideret med to.
endelig er Oscillatorfrekvensen indstillet til 48 mm. (96 mm/2=48 mm
USB-grænsefladekredsløb med pic-mikrocontroller
lav kredsløbsdiagrammet som vist i skematisk:
- indgangsspændingen til en Pic18f4550 mikrocontroller bør aldrig overstige 5 V.
- den anvendte krystaloscillator er 20 MHG krystaloscillator, der er tilsluttet på 13 og 14 pin.
- kort 11.og 32. pin sammen til 5v, tilsvarende 12. og 31. pin til GND. Men her har MCU indbygget forbindelser.
- de to led ‘ er er på RD0 og RD1, og der tilføjes 1 k-modstand til hver LED. De bruges kun til kommunikationsformålet for at se, at USB-kommunikationen eksisterer.
- ved dette USB-Interface kredsløb skal vi styre 2 stifter, RD2 og RD3.
- en kontakt er til nulstillingsknappen og er forbundet med pin 1.
- anden kontakt er til Bootloading forbundet med pin 37.
LED ‘ er tændt (RD2, RD3) bruges som kontrolstifter, men disse kontrolstifter kan også bruges til at kontrollere andre ting. Det kan nemt interfaced med L293D Motor Driver, DC Motor, Stepper Motor , relæ afbrydere, servo etc.
skematisk på Proteus
programmering af PIC-mikrocontrolleren
kode til USB-grænseflade med mikrocontroller er angivet nedenfor. Men for at bruge denne kode skal du også tilføje enhedsdriver. Før du bruger denne kode, skal brugeren oprette USB – enhedsdriver ved at gå til værktøjer fra Mikro C til pic og klikke på HID terminal og generere deskriptor.C fil og indsæt denne fil i din vigtigste kode mappe.
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)) ; }}
koden til mikrocontrolleren er skrevet med nogle specielle programmer, der har eget programmeringssprog svarende til C f.eks: mplab, microC-programmer. Koden kompileres derefter til en respektive output. I denne proces”.”der genereres en fil, der skal brændes/sikres i mikrocontrolleren.
brænding af koden i mikrocontroller
udgangen, der er indlæst i mikrocontrollerens EPROM, kaldes firmaet. Vi har brug for et specielt udstyr til at smelte denne udgangskode (sekskantfil) ind i MCU ‘ en. JDM programmør er et eksempel på en sådan enhed, der bruges til at indlæse sekskantfilen til MCU. Det er nemt at lave og billigt.Efter indlæsning skal du fjerne PIC18F4550 fra programmereren (1.gang indlæsning af sekskantkode) og indsætte den tilbage i USB-interfacekredsløbet.Herefter skal vi give chaufføren.
vi behøver ikke at følge dette trin (brug af programmør) hver gang for at indlæse filen. Når basisfirmaet er indlæst i chippen, kan vi opdatere output-seksfilen direkte med interfaceudviklingskredsløbet med smallbootloading-programmer.
enhedsdrivere til usb-grænseflade med pic-mikrocontroller
Tilslut USB-kablet fra computeren til USB-grænsefladen. Selv efter at have afsluttet kredsløbet og også programmeringen i mikrocontroller, begynder det ikke at fungere korrekt. Som vi ved, at ny isenkram installation kræver driver til vinduer at blive opdaget af systemet.
for driverinstallation og Bootloading operation, vi har brug for at hente og installere USB MICROCHIP rammer fra microchip hjemmeside.
KREDSLØBSARBEJDE af USB-grænseflade
for at starte kredsløbet skal vi initialisere det i BOOTLOAD-tilstand. I USB-interfacekredsløbet, som allerede forklaret,er der to knapper, den ene er dersætknap og en anden er BOOTLOAD-knappen.
- HOLD den indstillede knap
- hold nulstillingen nede, og tryk derefter på bootload-knappen en gang
- slip derefter begge knapper.
- vinduet registrerer derefter PICI8F4550 USB-udstyr og beder om drivere til dettepic18f4550 Kredsløb/kort.
- hvis vinduet ikke beder om drivere, kan der være nogle problemer med kredsløbet.
- Antag, at driverne til denne USB-enhed er placeret i
C:\MCUSB\MCUSB Driver \ Debug
når vinduerne vil bede om drivere,gå til manuel driver søgning og gå til ovenstående omtale placering mappe til drivere.Når driverne er installeret, vil Led1 og Led 2 (tilsluttet på RD0 og RD1) begynde at blinke alternativt, hvilket betyder, at vores USB-kredsløb kommunikerer perfekt med vores PC.Når driverne er installeret, når vi skal forbinde dette kredsløb med vores computer, behøver vi ikke at trykke på Nulstil ellerbootload knapperog LED ‘ erne begynder at blinke alternativt.Nu er USB-Interface-printkortet klar, og vi kan indlæse vores egen sekskantfil i chippen direkte fra USB-kortet (uden JDM-programmør).
det er ikke nødvendigt at bruge en programmør (brænderkredsløb) til at brænde programmet i PIC18F4550. JDM-programmereren bruges kun til første gang programmering af koden, og i andre faser kan vi bruge et Bootloading-program til at brænde ny kode direkte fra USB-interface-kredsløb til MCU. At MCU kan bruges til andet specifikt kredsløb, som outputkoden var designet til.