USB-interfacing met PIC-microcontroller met code
USB-INTERFACING met PIC-MICROCONTROLLER: het doel van dit artikel is om een concept op te bouwen over de USB-interface met de PIC-Microcontroller. Programmeur wordt pas de eerste keer gebruikt voor het laden van de code in microcontroller en daarna kunnen we de code direct in microcontroller laden via dit eenvoudiger circuit. PIC18F2550 en PIC18F4550 zijn beroemd om hun USB Module.
inhoudsopgave:
USB (Universal Serial Bus)
het is de meest gebruikte verbinding om een computer aan te sluiten op verschillende apparaten, zoals digitale camera ‘ s, printers, scanners en externe harde schijven, enz.
USB-overdrachtssnelheden
USB 1.0 ondersteunt gegevensoverdrachtssnelheden van:
- 5 Mega bits per seconde Mbps (lage snelheid), gebruikt voor menselijke invoerapparaten zoals toetsenbord, muis, joysticks enz.
- 2 Mbps (hoge snelheid) gebruikt voor printers, scanners enz.
USB 2.0 bekend als hi-speed USB en geschikt voor het ondersteunen van een overdrachtssnelheid tot 480Mbps.
USB 3.0 ook bekend als super-speed USB en ondersteunt overdrachtssnelheden tot 5,0 gigabit per seconde (Gbps).
USB 3.1 ook bekend als super speed+ en geschikt voor het ondersteunen van overdrachtssnelheden tot 10 Gbps.
USB Type-C de stekker is aangesloten op zowel”hosts als apparaten”.
usb-PIN-OUT:
de belangrijkste stappen in dit project zijn::
Stap#1 Klok Generatie
Stap#2 Circuit Constructies
Stap#3 het Programmeren van de Microcontroller
Stap#4 Branden van de code in de Microcontroller
Stap#5 Stuurprogramma ‘ s
Stap#6 Circuit Werken
KLOK GENERATIE voor USB-interfacing met pic microcontroller
P18F2550/4550 ondersteunt low-speed (1,5 Mb/s) en de Volledige Snelheid (12 Mb/s) dus voor USB-we hebben om te kiezen voor een bepaalde klok. Een interne klok van 6 MHz of 48 MHz is vereist vanwege de door USB opgelegde tijdsduur.Maar er is een probleem bij het gebruik van het kristal van 48MHz. Dit kristal is van hoge kosten en het creëert ook lawaai. Omdat het kristal hoger is, zal het lawaai groter zijn.Er zijn tal van keuzes om de USB-module klok eis die nog steeds flexibiliteit bieden voor het klokken van de rest van het apparaat van de primaire oscillator bron te bereiken.Hier is de crystal oscillator gebruikt met PIC18F4550 voor USB-Interfacing 20MHz crystal oscillator. Het wordt gebruikt voor interne oscillatie van microcontroller en het wordt aangesloten op speld 13 en 14 van MCU.
CONFIGURATIEBITS instellingen voor USB-interfacing met pic-microcontroller
in het geval van 20MHz-kristal:
- Stel de “Oscillator selectie” in op HSPLL. Het geeft 20 MHz aan de ingang van “primaire oscillator”
- Stel de “PLL prescaler selectie” in op delen door 5, dus we krijgen 4 MHz die worden vermenigvuldigd met 24 om de 96 MHz voor USB
- Stel de ” USB clock selection “in op 96 MHz gedeeld door 2
- Stel de” System clock postscaler selection ” in op 96 gedeeld door twee.
ten slotte is de frequentie van de Oscillator ingesteld op 48 MHz. (96 MHz/2=48 MHz
USB-interfacing circuit met PIC-microcontroller
Maak het schema zoals weergegeven in het schema:
- de ingangsspanning van een PIC18F4550-Microcontroller mag nooit hoger zijn dan 5 V.
- de gebruikte kristaloscillator is 20MHZ kristaloscillator die is aangesloten op 13 en 14 pin.
- korte 11e en 32e speld samen tot 5v, evenzo 12e en 31e speld tot GND. Maar hier heeft MCU verbindingen ingebouwd.
- de twee LEDs staan op RD0 en RD1 en aan elke LED wordt 1 kΩ weerstand toegevoegd. Ze worden alleen gebruikt voor communicatiedoeleinden om te zien dat de USB-communicatie bestaat.
- met deze USB Interface circuit gaan we 2 pinnen, RD2 en RD3 controleren.
- een schakelaar is voor de resetknop en is verbonden met pin 1.
- andere schakelaar is voor het opstarten verbonden met pin 37.
LED ‘ s on (RD2, RD3) worden gebruikt als controlepennen, maar deze controlepennen kunnen ook worden gebruikt om andere dingen te controleren. Het kan gemakkelijk gekoppeld met L293D motorbestuurder, gelijkstroom-Motor, Stepper Motor , relaisschakelaars, servo enz.
schema op Proteus
programmering van de PIC-Microcontroller
Code voor USB-interfacing met microcontroller wordt hieronder gegeven. Maar om deze code te gebruiken moet je device driver ook toevoegen. Voordat u deze code gebruikt, moet de gebruiker USB-apparaatstuurprogramma maken door naar Hulpmiddelen van Mikro C voor pic te gaan en op HID terminal te klikken en descriptor te genereren.C Bestand en plak dit bestand in uw belangrijkste code map.
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)) ; }}
de code voor de micro-controller is geschreven met een aantal speciale software die een eigen programmeertaal hebben vergelijkbaar met C bijvoorbeeld: MPLAB, microC software. De code wordt vervolgens gecompileerd naar een respectievelijke uitvoer. In dit proces de”.hex ” bestand wordt gegenereerd die moet branden / zekering in de microcontroller.
het branden van de CODE in MICROCONTROLLER
de uitvoer geladen in de EPROM van de microcontroller wordt de firmware genoemd. We hebben een speciale hardware nodig om deze uitvoercode (hex-bestand) in de MCU te fuseren. JDM programmer is een voorbeeld van een dergelijk apparaat dat wordt gebruikt om het hex-bestand naar de MCU te laden. Het is gemakkelijk te maken en goedkoop.Na het laden, chip van de PIC18F4550 van de programmer (1e keer laden van hex code) en plaats het terug in de USB interface circuit.Hierna moeten we de chauffeur leveren.
we hoeven deze stap (gebruik van programmer) niet elke keer te volgen voor het laden van de firmware (Hex-bestand). Zodra de basisfirmware in de spaander wordt geladen kunnen wij output hexfile direct met de kring van de interfaceontwikkeling met smallbootloading software bijwerken.
apparaatstuurprogramma ‘ s voor USB-interfacing met pic-microcontroller
sluit de USB-kabel van de computer aan op de USB-Interface. Zelfs na het voltooien van het circuit en ook de programmering in microcontroller, zal het niet goed beginnen te werken. Zoals we weten dat nieuwe hardware installatie vereist driver voor windows te krijgen gedetecteerd door het systeem.
voor Driver installatie en Bootloading operatie moeten we downloaden en installeren USB MICROCHIP FRAMEWORK van microchip website.
CIRCUIT werking van USB-interfacing
om het circuit te starten, moeten we het initialiseren in BOOTLOAD Mode. In de USB interface circuit, zoals reeds uitgelegd,zijn er twee knoppen, een is de reset button en een andere is de BOOTLOAD knop.
- houd de SET-knop
- Houd de RESET ingedrukt en druk vervolgens op de bootload-knop eenmaal
- en laat beide knoppen los.
- het venster detecteert dan de PICI8F4550 USB hardware en vraagt naar Drivers voor dit ic18f4550 circuit / board.
- als het venster niet om stuurprogramma ‘ s vraagt, kunnen er problemen zijn met het circuit.
- stel dat de stuurprogramma ’s voor dit USB-apparaat zich in
bevinden C:\MCUSB\MCUSB Driver \ Debug
wanneer de vensters om stuurprogramma’ s vragen,gaat u naar Handmatig zoeken naar stuurprogramma ’s en bladert u naar de map met de locatie hierboven voor stuurprogramma’ s.Nadat de Drivers zijn geïnstalleerd zullen LED1 en Led 2 (aangesloten op RD0 en RD1) als alternatief gaan knipperen, wat betekent dat onze USB-circuit perfect communiceert met onze PC.Nadat de drivers zijn geïnstalleerd, wanneer om dit circuit te verbinden met onze computer, hoeven we niet op reset orbootload buttons en de LED ‘ s zullen beginnen te knipperen als alternatief.Nu is de USB-de Raad van de Interfacecircuit klaar, en kunnen wij ons eigen hexuitdraaidossier in de spaander direct van USB-raad, (zonder JDM programmeur) Laden.
het is niet nodig om een programmer (brander circuit) te gebruiken voor het branden van de firmware (hex bestand) in de PIC18F4550. De programmeur JDM wordt gebruikt slechts voor de eerste keer programmering van de code en voor andere stadia kunnen wij een Bootloading Software gebruiken om nieuwe code direct van USB-interfacekring aan MCU te branden. Dat MCU kan voor andere specifieke kring worden gebruikt die waarvoor de outputcode werd ontworpen.