USB-liitäntä PIC-mikrokontrolleriin koodilla
USB-liitäntä PIC-mikrokontrolleriin: tämän artikkelin tarkoituksena on rakentaa käsite USB-liitännästä PIC-mikrokontrolleriin. Ohjelmoijaa käytetään vain ensimmäistä kertaa koodin lataamiseen mikrokontrollerissa ja sen jälkeen voimme ladata koodin suoraan mikrokontrolleriin tämän yksinkertaisemman piirin kautta. PIC18F2550 ja PIC18F4550 ovat kuuluisia USB-Moduulistaan.
Sisällysluettelo
USB (Universal Serial Bus)
se on yleisin liitäntä, jota käytetään tietokoneen liittämiseen eri laitteisiin, kuten digitaalikameroihin, tulostimiin, skannereihin ja ulkoisiin kiintolevyihin jne.
USB – siirtonopeudet
USB 1.0 tukee tiedonsiirtonopeuksia:
- 5 Mega bits / second Mbps (low speed), jota käytetään ihmisen syöttölaitteissa, esim.näppäimistössä, hiiressä, joystickeissa jne.
- 2 Mbps (high speed), jota käytetään tulostimissa, skannereissa jne.
USB 2.0 tunnetaan hi-speed USB ja pystyy tukemaan siirtonopeus jopa 480Mbps.
USB 3.0 tunnetaan myös nimellä super-speed USB ja se tukee siirtonopeuksia jopa 5,0 gigabittiä sekunnissa (Gbps).
USB 3.1 tunnetaan myös nimellä super speed+ ja pystyy tukemaan siirtonopeuksia jopa 10 Gbps.
USB Type-C its plug connects to both ”hosts and devices”.
USB PIN OUT:
hankkeen tärkeimmät vaiheet ovat:
Step#1 Clock Generation
Step#2 Circuit Constructions
Step#3 Programming the Microcontroller
Step#4 Burning the code in Microcontroller
Step#5 Device Drivers
Step#6 Circuit Working
CLOCK GENERATION for USB rajapinta Pic-mikrokontrolleriin
P18f2550/4550 tukee alhaista nopeutta (1,5 Mb/s) ja täyttä nopeutta (12 MB/s), joten USB: lle on valittava tietty kello. Sisäinen kello joko 6 MHz tai 48 MHz tarvitaan USB: n asettaman ajoitusvaatimuksen vuoksi.Mutta on ongelma käyttää kristallia 48MHz. Tämä kristalli on kallis ja se aiheuttaa myös melua. Koska korkeampi kristalli, sitä suurempi on Melu.On olemassa lukuisia valintoja saavuttaa USB-moduulin kello vaatimus, joka silti antaa joustavuutta kellotukseen loput laitteen ensisijainen oskillaattori lähde.Tässä, kideoskillaattori käytetään PIC18F4550 USB-liitännät on 20MHz kideoskillaattori. Sitä käytetään mikrokontrollerin sisäiseen värähtelyyn ja se on kytketty MCU: n 13-ja 14-nastaisiin.
CONFIGURATION BITS SETTINGS FOR USB interfacing with pic microcontroller
in case of 20MHz crystal:
- Aseta ”oskillaattori valinta” hspll. Se antaa 20 MHz tulo ”ensisijainen oskillaattori”
- Aseta ”PLL prescaler valinta” jakaa 5, joten saamme 4 MHz jotka kerrotaan 24 saada 96 MHz USB
- Aseta ”USB kello valinta” 96 MHz jaettuna 2
- Aseta ”järjestelmän kello postscaler valinta” 96 jaettuna kahdella.
lopulta oskillaattorin taajuudeksi asetetaan 48 MHz. (96 MHz/2=48mhz
USB-liitäntäpiiri pic-mikrokontrollerilla
tee piirikaavio kaavion mukaisesti:
- pic18f4550 mikrokontrollerin tulojännite ei saa koskaan ylittää 5 V.
- käytetty kideoskillaattori on 20MHz kideoskillaattori, joka on kytketty 13 ja 14 pin.
- lyhyt 11.ja 32. pin yhdessä 5V, samoin 12. ja 31. pin GND. Mutta täällä MCU on rakentanut yhteyksiä.
- kaksi LEDiä ovat RD0: llä ja RD1: llä ja jokaiseen LEDiin lisätään 1 kΩ vastus. Niitä käytetään tietoliikennetarkoituksessa vain nähdä, että USB viestintä on olemassa.
- tällä USB-Liitäntäpiirillä aiomme ohjata 2 nastaa, RD2 ja RD3.
- yksi kytkin on nollauspainiketta varten ja se on kytketty pin 1: een.
- Muu kytkin on pin 37: ään kytkettyyn Käynnistyslataukseen.
LEDien päällä (RD2, RD3) käytetään säätötappeja, mutta näitä säätötappeja voidaan käyttää myös muiden asioiden ohjaamiseen. Se voidaan helposti liittää L293D Moottorin kuljettaja, DC moottori, askelmoottori, relekytkimet, servo jne.
Skeematic on Proteus
PROGRAMMING the PIC MICROCONTROLLER
Code for USB interfacing with microcontroller is gived below. Mutta käyttää tätä koodia sinun täytyy lisätä laiteohjain myös. Ennen tämän koodin, käyttäjän pitäisi luoda USB-laiteajuri menemällä työkalut Mikro C pic ja klikkaa HID terminal ja luoda asiasana.C-tiedosto ja liitä tämä tiedosto pääkoodikansioosi.
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)) ; }}
mikro-ohjaimen koodi on kirjoitettu joillakin erikoisohjelmilla, joilla on oma C: tä muistuttava ohjelmointikieli: mplab, microC software. Koodi on sitten käännetty vastaavaan tulosteeseen. Tässä prosessissa ”.hex ” – tiedosto luodaan, joka on poltettava/sulake mikrokontrollerissa.
koodin polttaminen MIKROKONTROLLERISSA
mikrokontrollerin EPROMIIN ladattua tulostetta kutsutaan firmwareksi. Tarvitsemme erityisen laitteiston sulattaaksemme tämän tulostuskoodin (hex-tiedoston) MCU: hun. JDM-ohjelmoija on esimerkki tällaisesta laitteesta, jota käytetään Hex-tiedoston lataamiseen MCU: lle. Se on helppo tehdä ja halpa.Lastauksen jälkeen, siru pois PIC18F4550 alkaen ohjelmoija (1.kerta lastaus hex-koodi) ja aseta se takaisin USB-liitäntäpiiriin.Tämän jälkeen meidän on tarjottava kuljettaja.
meidän ei tarvitse noudattaa tätä vaihetta (ohjelmoijan käyttö) joka kerta firmwaren (hex-tiedoston) lataamisessa. Kun perusohjelmisto on ladattu siru voimme päivittää lähtö hexfile suoraan käyttöliittymän kehityspiirillä smallbootloading ohjelmisto.
laiteajurit USB-liitäntään pic-mikrokontrollerin kanssa
Liitä USB-kaapeli tietokoneesta USB-liitäntään. Vaikka piiri ja mikrokontrollerin ohjelmointi on suoritettu loppuun, se ei ala toimia kunnolla. Kuten tiedämme, että uusi laitteisto asennus vaatii kuljettaja windows saada havaita järjestelmän.
ajurin asennusta ja Käynnistyslatausta varten meidän on ladattava ja asennettava USB MICROCHIP FRAMEWORK microchip-sivustolta.
USB-liitäntöjen PIIRITYÖ
piirin käynnistämiseksi se on alustettava käynnistyslataustilassa. USB-liitäntäpiirissä, kuten jo selitettiin,on kaksi painiketta, yksi on theeresetbutton ja toinen on BOOTLOAD-painike.
- pidä reset-painiketta
- pidä RESET-painiketta painettuna ja paina sitten bootload-painiketta kerran
- ja vapauta sitten molemmat painikkeet.
- ikkuna tunnistaa PICI8F4550 USB-laitteiston ja kysyy ajureita tälle piirille/levylle.
- jos ikkuna ei kysele kuljettajia, radalla voi olla ongelmia.
- Oletetaan, että tämän USB-laitteen ajurit sijaitsevat
C:\MCUSB\MCUSB ajuri \ Debug
kun windows kysyy ajureita, siirry manuaaliseen ajurihakuun ja selaa edellä mainitusta ajurien sijaintikansiosta.Kun ohjaimet on asennettu Led1 ja Led 2 (kytketty RD0 ja RD1) alkaa vilkkua vaihtoehtoisesti, mikä tarkoittaa, että meidän USB-piiri on täysin kommunikoida meidän PC.Kun ohjaimet on asennettu, kun tämä piiri liitetään tietokoneeseen, meidän ei tarvitse painaa reset orbootload nappeja ja LED: t alkavat vilkkua vaihtoehtoisesti.Nyt USB-liitäntä piirilevy on valmis, ja voimme ladata oman hex-tiedoston sirulle suoraan USB-levyltä (ilman JDM-ohjelmoijaa).
ohjelmoijaa (poltinpiiri) ei tarvitse käyttää firmwaren (hex-tiedoston) polttamiseen PIC18F4550: een. JDM-ohjelmoijaa käytetään vain koodin ensimmäistä kertaa ohjelmointiin ja muissa vaiheissa Voimme käyttää Käynnistyslatausohjelmistoa polttamaan uutta koodia suoraan USB-liitäntäpiiristä MCU: hun. Tätä MCU: ta voidaan käyttää muihin erityisiin piirityöskentelyihin, joita varten tulostuskoodi on suunniteltu.