USB grensesnitt MED pic microcontroller med kode
USB GRENSESNITT MED PIC MICROCONTROLLER: formålet med denne artikkelen er å bygge konsept OM USB-grensesnitt TIL Pic Microcontroller. Programmerer brukes bare første gang for å laste koden i mikrokontroller, og etter det kan vi direkte laste koden i mikrokontroller gjennom denne enklere kretsen. PIC18F2550 OG PIC18F4550 er kjent FOR SIN USB-Modul.
Innholdsfortegnelse
USB (Universal Serial Bus)
DET er den vanligste tilkoblingen som brukes til å koble en datamaskin til forskjellige enheter som digitale kameraer, skrivere, skannere og eksterne harddisker etc.
USB OVERFØRINGSHASTIGHETER
USB 1.0 Støtter dataoverføringshastigheter på:
- 5 Mega bits per sekund Mbps (lav hastighet), som brukes For Menneskelige Inndataenheter f.eks tastatur, mus, styrespaker etc
- 2 Mbps (høy hastighet) som brukes for skrivere, skannere etc
USB 2.0 kjent som hi-speed USB og i stand til å støtte en overføringshastighet opp til 480Mbps.
USB 3.0 også kjent som super-speed USB og støtter overføringshastigheter på opptil 5,0 gigabit per sekund (Gbps).
USB 3.1 også kjent som super speed+ og i stand til å støtte overføringshastigheter på opptil 10 Gbps.
USB Type-C pluggen kobles til både «verter og enheter».
USB-PIN UT:
hovedtrinnene som er involvert i dette prosjektet er:
Trinn#1 Klokkegenerering
Trinn#2 Kretskonstruksjoner
Trinn#3 Programmering Av Mikrokontrolleren
Trinn#4 Brenner koden I Mikrokontroller
Trinn#5 Enhetsdrivere
Trinn#6 Kretsarbeid
klokkegenerering for usb-grensesnitt Med pic microcontroller
P18f2550/4550 Støtter Lav Hastighet (1,5 Mb/S) og full Hastighet (12 Mb/S) Så For Usb Må Vi Velge En Bestemt Klokke. En intern klokke på enten 6 MHz eller 48 MHz er nødvendig på GRUNN av timing krav pålagt AV USB.Men det er et problem å bruke krystallet på 48MHz. Denne krystallen er av høy pris, og det skaper også støy. Siden høyere krystall, jo større blir støy.DET er mange valg for Å oppnå USB-modul klokke kravet som fortsatt gir fleksibilitet for klokkes resten av enheten fra den primære oscillator kilde.Her er krystalloscillatoren som brukes MED PIC18F4550 FOR USB-Grensesnitt 20mhz krystalloscillator. Den brukes til intern oscillasjon av mikrokontrolleren, og den er koblet på 13 og 14 pin AV MCU.
KONFIGURASJON BITS INNSTILLINGER FOR USB grensesnitt med pic mikrokontroller
i tilfelle av 20mhz krystall:
- Sett «Oscillatorvalg» TIL HSPLL. Det vil gi 20 MHz ved inngangen til»primær oscillator»
- Sett «PLL prescaler selection» for å dele med 5, så vi får 4 MHz som multipliseres med 24 for å få 96 MHz FOR USB
- Sett «USB clock selection» til 96 MHz delt med 2
- Sett «System clock postscaler selection» til 96 delt med to.
Endelig Er Oscillatorfrekvensen satt til 48 MHz. (96 MHz/2=48mhz
USB-grensesnittkrets med pic-mikrokontroller
Lag kretsdiagrammet som vist i skjematisk:
- inngangsspenningen til EN PIC18F4550 Mikrokontroller bør aldri overstige 5 V.
- krystalloscillatoren som brukes er 20MHZ krystalloscillator som er koblet på 13 og 14 pin.
- Kort 11. og 32. pinne sammen til 5v, tilsvarende 12. og 31. pinne TIL GND. MEN HER HAR MCU bygget inn tilkoblinger.
- de to lysdiodene er PÅ RD0 og RD1 og 1 kΩ motstand legges til hver LED. De brukes til kommunikasjonsformål bare for å se AT USB-kommunikasjonen eksisterer.
- ved DENNE USB-Grensesnittkretsen skal vi kontrollere 2 pinner, RD2 og RD3.
- En bryter er For Reset-knappen og er koblet til pin 1.
- Annen bryter er For Bootloading koblet til pin 37.
LED-er på (RD2, RD3) brukes som kontrollpinner, men disse kontrollpinnene kan også brukes til å kontrollere andre ting. Det kan lett kobles TIL L293D Motor Driver, DC Motor, Stepper Motor, rele brytere, servo etc.
Skjematisk På Proteus
PROGRAMMERING AV PIC-MIKROKONTROLLEREN
Kode FOR USB-grensesnitt med mikrokontroller er gitt nedenfor. Men for å bruke denne koden må du også legge til enhetsdriver. Før du bruker denne koden, bør brukeren opprette USB – enhetsdriver ved å gå til Verktøy Av Mikro C for pic og klikk PÅ HID terminal og generere descriptor.c fil og lim inn denne filen i hovedkodemappen din.
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 for mikrokontrolleren er skrevet med noen spesiell programvare som har eget programmeringsspråk som Ligner På C f. eks: mplab, microC software. Koden blir deretter kompilert til en respektive utgang. I denne prosessen».hex » filen genereres som skal brenne/sikring i mikrokontrolleren.
BRENNING AV KODEN i MIKROKONTROLLER
utgangen lastet inn I EPROM av mikrokontrolleren kalles fastvaren. Vi trenger en spesiell maskinvare for å smelte denne utgangskoden (hex-filen) inn I MCU. JDM programmerer er et eksempel på en slik enhet som brukes til å laste hex-filen TIL MCU. Det er enkelt å lage og billig.Etter lasting, chip AV PIC18F4550 fra programmereren (1.gang lasting av hex-kode) og sett den inn i USB-grensesnittkretsen.Etter dette må vi gi sjåføren.
Vi trenger ikke å følge dette trinnet (bruk av programmerer) hver gang for å laste fastvaren (hex-filen). Når basen firmware er lastet inn i brikken kan vi oppdatere utgang hexfile direkte med grensesnittet utvikling krets med smallbootloading programvare.
ENHETSDRIVERE FOR USB-grensesnitt med pic mikrokontroller
Koble USB-kabelen fra datamaskinen TIL USB-Grensesnittet. Selv etter å ha fullført kretsen og også programmeringen i mikrokontroller, vil den ikke begynne å fungere skikkelig. Som vi vet at ny maskinvareinstallasjon krever driver for windows å bli oppdaget av systemet.
For Driverinstallasjon og Bootloading operasjon må vi laste NED OG Installere USB MICROCHIP FRAMEWORK fra microchip nettside.
KRETSARBEID AV USB-grensesnitt
for å starte kretsen må vi initialisere den I BOOTLOAD-Modus. I USB-grensesnittkretsen, som allerede forklart, er det to knapper, en er deresetbutton og en annen ER BOOTLOAD-knappen.
- HOLD dereset-knappen
- Hold TILBAKESTILLINGEN trykket og trykk deretter på bootload-knappen en gang
- slipp deretter begge knappene.
- vinduet vil da oppdage PICI8F4550 USB-maskinvaren og be Om Drivere for dettepic18f4550 krets / kort.
- hvis vinduet ikke ber om drivere, kan det være noen problemer med kretsen.
- Anta At Driverne for DENNE USB-enheten er plassert i
C:\MCUSB\MCUSB Driver\Debug
når windows vil be om drivere, gå for manuell driver søk og bla til ovennevnte plassering mappe For Drivere.Etter At Driverne er installert, Vil Led1 og Led 2 (koblet PÅ RD0 og RD1) begynne å blinke alternativt, noe som betyr at VÅR USB-krets kommuniserer perfekt med PCEN.Etter at driverne er installert, når du skal koble denne kretsen med datamaskinen vår, trenger vi ikke å trykke på reset orbootload-knapperog LYSDIODENE vil begynne å blinke alternativt.NÅ ER USB-Grensesnittets Kretskort klart, og vi KAN LASTE vår egen hex-fil Inn I brikken Direkte FRA USB-KORT, (uten JDM programmerer).
det er ikke nødvendig å bruke en programmerer (brennerkrets) for å brenne fastvaren (hex-filen) inn I PIC18F4550. JDM programmerer brukes kun for første gang programmering av koden og for andre stadier kan vi bruke En Bootloading Programvare for å brenne ny kode direkte FRA USB-grensesnitt krets TIL MCU. AT MCU kan brukes til andre spesifikke kretsarbeid som utgangskoden ble designet for.