január 31, 2022

USB interfész PIC mikrokontrollerrel

USB interfész PIC mikrokontrollerrel: a cikk célja a PIC mikrokontroller USB interfészének koncepciójának felépítése. A programozót csak először használják a kód mikrokontrollerbe történő betöltésére, majd ezt követően közvetlenül betölthetjük a kódot a mikrokontrollerbe ezen az egyszerűbb áramkörön keresztül. A PIC18F2550 és a PIC18F4550 híres USB Moduljáról.

Tartalomjegyzék

USB (univerzális soros busz)

ez a leggyakoribb kapcsolat a számítógép különböző eszközökhöz, például digitális fényképezőgépekhez, nyomtatókhoz, szkennerekhez és külső merevlemezekhez stb.

USB átviteli sebesség

az USB 1.0 támogatja az:

  • 5 Mega bit másodpercenként Mbps (alacsony sebesség), használt emberi beviteli eszközök pl billentyűzet, egér, joystick stb
  • 2 Mbps (nagy sebesség) használt nyomtatók, szkennerek stb

USB 2.0 hi-speed USB néven ismert, és képes akár 480Mbps átviteli sebesség támogatására.

az USB 3.0 super-speed USB néven is ismert, és akár 5,0 Gigabit / másodperc (Gbps) átviteli sebességet is támogat.

az USB 3.1 super speed+ néven is ismert, és akár 10 Gbps átviteli sebességet is képes támogatni.

C típusú USB csatlakozója mind a “gazdagépekhez, mind az eszközökhöz”csatlakozik.

USB PIN OUT: usb-kommunikáció-pic-mikrovezérlővel

a projekt fő lépései a következők:

Step#1 óra generációs

Step#2 áramkör konstrukciók

Step#3 programozása mikrokontroller

Step#4 égő kódot mikrokontroller

Step#5 eszközmeghajtók

Step#6 áramkör működik

CLOCK generáció a PIC mikrokontroller

p18f2550/4550 támogatja az alacsony sebességet (1,5 MB/s) és a teljes sebességet (12 MB/s), így az USB-hez ki kell választanunk egy adott órát. 6 MHz vagy 48 MHz belső órajelre van szükség az USB által előírt időzítési követelmény miatt.De van egy probléma a 48mhz-es kristály használatával. Ez a kristály magas költségekkel jár, és zajt is okoz. Mivel magasabb a kristály, annál nagyobb lesz a zaj.Számos lehetőség van az USB modul órajel-követelményének elérésére, amely továbbra is rugalmasságot biztosít az eszköz többi részének az elsődleges oszcillátorforrásból történő órázásához.Itt, a kristály oszcillátor használt PIC18F4550 USB interfész 20MHz kristály oszcillátor. A mikrokontroller belső oszcillációjára szolgál, és az MCU 13 és 14 pólusán csatlakozik. usb kommunikáció oscialltor kiválasztás pic mikrokontrollerhez

konfigurációs bit beállítások a pic mikrokontrollerhez való USB csatlakozáshoz

20 MHz-es kristály esetén:

  • állítsa az” oszcillátor kiválasztását ” HSPLL értékre. Ez ad 20 MHz bemenetén “elsődleges oszcillátor”
  • állítsa be a “PLL prescaler selection” osztani 5, így kapunk 4 MHz, amelyek szorozva 24, hogy a 96 MHz USB
  • állítsa be a “USB clock selection”, hogy 96 MHz osztva 2
  • állítsa be a “System clock postscaler selection”, hogy 96 osztva kettővel.

végül az oszcillátor frekvenciája 48 MHz-re van állítva. (96 MHz/2=48mhzfrekvencia beállítás mikro c pic

USB interfész áramkör pic mikrovezérlővel

 usb interfész pic mikrovezérlővel

készítse el a kapcsolási rajzot a sematikus ábrán látható módon:

  • a PIC18F4550 mikrovezérlő bemeneti feszültsége soha nem haladhatja meg az 5 V-ot.
  • a használt kristályoszcillátor 20 MHz-es kristályoszcillátor, amely 13 és 14 tűs csatlakozóval van összekötve.
  • rövid 11. és 32. tű 5V-ig, hasonlóan a 12. és 31. tű a GND-hez. De itt az MCU beépített kapcsolatokat.
  • a két led rd0-n és RD1-en van, és mindegyik LED-hez 1 K-os ellenállást adunk. Csak kommunikációs célokra használják, hogy lássák, hogy az USB-kommunikáció létezik.
  • ezzel az USB interfész áramkörrel 2 érintkezőt, RD2-t és RD3-at fogunk vezérelni.
  • az egyik kapcsoló a Reset gombhoz van csatlakoztatva, és az 1. tűvel van összekötve.
  • a másik kapcsoló a 37-es csaphoz csatlakoztatott Rendszerbetöltésre szolgál.

LED-ek (RD2, RD3) vezérlőcsapként használhatók, de ezek a vezérlőcsapok más dolgok vezérlésére is használhatók. Könnyen csatlakoztatható az L293D Motorvezérlőhöz, az egyenáramú motorhoz, a Léptetőmotorhoz , a relékapcsolókhoz, a szervohoz stb.

a Proteus vázlata

a PIC mikrovezérlő programozása

a mikrovezérlővel való USB-kapcsolat kódja az alábbiakban található. De ennek a kódnak a használatához hozzá kell adnia az eszközillesztőt is. A kód használata előtt a felhasználónak létre kell hoznia az USB eszközillesztőt a Mikro C for pic tools menüpontban, majd kattintson a HID terminálra és generálja a leírót.C fájlt, majd illessze be ezt a fájlt a fő kódmappába.

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

a mikrovezérlő kódja valamilyen speciális szoftverrel van megírva, amelynek saját programozási nyelve hasonló a C pl.: MPLAB, microC software. A kódot ezután lefordítják a megfelelő kimenetre. Ebben a folyamatban a”.hex ” fájl jön létre, amely az, hogy éget/biztosíték a mikrokontroller.

a kód írása a MIKROVEZÉRLŐBEN

a mikrovezérlő EPROM-jába betöltött kimenetet firmware-nek nevezzük. Szükségünk van egy speciális hardverre, hogy ezt a kimeneti kódot (hex fájlt) beolvasszuk az MCU-ba. JDM programozó egy példa az ilyen eszköz, amely betölti a hex fájlt az MCU. Könnyű elkészíteni és olcsó.Betöltés után, chip le a PIC18F4550 a programozó (1.alkalommal betöltése hexadecimális kód), és helyezze vissza az USB interfész áramkör.Ezt követően meg kell adnunk a sofőrt.

nem kell ezt a lépést követnünk (programozó használata) minden alkalommal a firmware (hex fájl) betöltéséhez. Miután az alap firmware betöltődik a chipbe, frissíthetjük a kimeneti hexfile-t közvetlenül az interfész fejlesztési áramkörével a smallboot loading szoftverrel.

eszközillesztők a pic mikrovezérlővel való USB-csatlakozáshoz

csatlakoztassa a számítógép USB-kábelét az USB-interfészhez. Még befejezése után az áramkör, valamint a programozás mikrokontroller, akkor nem fog működni megfelelően. Mint tudjuk, hogy az új hardver telepítése megköveteli a Windows illesztőprogramját, hogy a rendszer észlelje.

az illesztőprogram telepítéséhez és a Bootloading művelethez le kell töltenünk és telepítenünk kell az USB MICROCHIP keretrendszert a microchip webhelyéről.

az USB interfész áramköri működése

az áramkör indításához inicializálni kell BOOTLOAD módban. Az USB interfész áramkörében, amint azt már kifejtettük, két gomb van, az egyik a resetbutton, a másik pedig a BOOTLOAD gomb.

  • tartsa lenyomva a reset gombot
  • tartsa lenyomva a RESET gombot, majd nyomja meg egyszer a boot load gombot
  • majd engedje el mindkét gombot.
  • ezután az ablak felismeri a PICI8F4550 USB hardvert, és illesztőprogramokat kér a thisPIC18F4550 áramkörhöz/kártyához.
  • ha az ablak nem kér illesztőprogramokat, akkor problémák lehetnek az áramkörrel.
  • tegyük fel, hogy az USB-eszköz illesztőprogramjai
    C:\MCUSB\MCUSB Driver \ Debug

amikor a windows illesztőprogramokat kér, keresse meg a kézi illesztőprogram-keresést, és keresse meg a fenti említést az illesztőprogramok helymappájához.Az illesztőprogramok telepítése után a Led1 és a Led 2 (rd0 és RD1 csatlakozással) villogni kezd, ami azt jelenti, hogy az USB áramkör tökéletesen kommunikál a számítógépünkkel.Az illesztőprogramok telepítése után, amikor ezt az áramkört csatlakoztatjuk a számítógépünkhöz, nem kell megnyomnunk a reset vagy a boot load gombokatés a LED-ek alternatív módon villogni kezdenek.Most az USB interfész áramköri lap készen áll, és a saját hex fájlunkat közvetlenül az USB-kártyáról tölthetjük be a chipbe (JDM programozó nélkül).

nem szükséges programozót (égő áramkört) használni a firmware (hex fájl) PIC18F4550-be történő írásához. A JDM programozót csak a kód első programozására használjuk, más szakaszokhoz pedig egy Bootloading szoftver segítségével új kódot írhatunk közvetlenül az USB interfész áramkörről az MCU-ra. Ez az MCU használható más speciális áramköri munkákhoz, amelyekhez a kimeneti kódot tervezték.

Vélemény, hozzászólás?

Az e-mail-címet nem tesszük közzé.