31 ledna, 2022

Rozhraní USB s mikrokontrolérem PIC s kódem

rozhraní USB s mikrokontrolérem PIC: účelem tohoto článku je vytvořit koncept rozhraní USB s mikrokontrolérem PIC. Programátor se používá poprvé pro načtení kódu v mikrokontroléru a poté můžeme přímo načíst kód v mikrokontroléru prostřednictvím tohoto jednoduššího obvodu. PIC18F2550 a PIC18F4550 jsou známé svým USB modulem.

obsah

USB (Universal Serial Bus)

jedná se o nejběžnější připojení používané k připojení počítače k různým zařízením, jako jsou digitální fotoaparáty, tiskárny, skenery a externí pevné disky atd.

přenosové rychlosti USB

USB 1.0 podporuje přenosové rychlosti:

  • 5 Mega bity za sekundu Mbps (nízká rychlost), používané pro lidské vstupní zařízení, např. klávesnice, myš, joysticky atd.
  • 2 Mbps (vysoká rychlost) používané pro tiskárny, skenery atd.

USB 2.0 známý jako hi-speed USB a schopný podporovat přenosovou rychlost až 480Mbps.

USB 3.0 také známý jako super-speed USB a podporuje přenosové rychlosti až 5,0 gigabitů za sekundu (Gbps).

USB 3.1 také známý jako super speed+ a schopný podporovat přenosové rychlosti až 10 Gbps.

USB Type-C jeho zástrčka se připojuje k „hostitelům i zařízením“.

USB PIN OUT:USB-communication-with-pic-mikrokontrolér

hlavní kroky zapojené do tohoto projektu jsou:

Krok#1 generování hodin

Krok#2 Konstrukce obvodů

Krok#3 programování mikrokontroléru

Krok#4 vypalování kódu v mikrokontroléru

Krok#5 ovladače zařízení

Krok#6 pracovní obvod

generování hodin pro rozhraní USB s mikrokontrolérem pic

P18F2550/4550 podporuje nízkou rychlost (1, 5 MB/s) a plná rychlost (12 Mb/s) takže pro USB musíme vybrat konkrétní hodiny. Interní hodiny buď 6 MHz nebo 48 MHz je nutné z důvodu požadavku načasování uloženého USB.Ale je tu problém s použitím krystalu 48MHz. Tento krystal má vysokou cenu a také vytváří hluk. Vzhledem k tomu, vyšší krystal, tím větší bude hluk.Existuje mnoho možností, jak dosáhnout požadavku na hodiny modulu USB, které stále poskytují flexibilitu pro taktování zbytku zařízení z primárního zdroje oscilátoru.Zde je krystalový oscilátor používaný s PIC18F4550 pro rozhraní USB 20MHz krystalový oscilátor. Používá se pro vnitřní kmitání mikrokontroléru a je připojen na 13 a 14 pin MCU.usb komunikace oscialltor výběr pro pic mikrokontrolér

nastavení konfiguračních bitů pro USB rozhraní s pic mikrokontrolérem

v případě krystalu 20MHz:

  • nastavte „výběr oscilátoru“ na HSPL. To dá 20 MHz na vstupu „primární oscilátor“
  • nastavit „výběr PLL prescaler“ dělit 5, takže dostaneme 4 MHz, které jsou vynásobeny 24 získat 96 MHz pro USB
  • nastavte „USB clock selection“ na 96 MHz děleno 2
  • nastavte „System clock postscaler selection“ na 96 děleno dvěma.

nakonec je frekvence oscilátoru nastavena na 48 MHz. (96 MHz / 2=48MHznastavení frekvence v mikro c pro pic

USB propojovací obvod s pic mikrokontrolérem

usb rozhraní s pic mikrokontrolérem

proveďte schéma zapojení podle schématu:

  • vstupní napětí do mikrokontroléru PIC18F4550 by nikdy nemělo překročit 5 V.
  • použitým krystalovým oscilátorem je krystalový oscilátor 20MHZ, který je připojen na pin 13 a 14.
  • krátký 11. a 32. pin dohromady na 5v, podobně 12. a 31. pin na GND. Ale tady MCU vybudovala spojení.
  • dvě led diody jsou zapnuté RD0 a RD1 a ke každé LED je přidán odpor 1 kΩ. Používají se pro komunikační účely pouze proto, aby viděli, že komunikace USB existuje.
  • tímto obvodem rozhraní USB budeme ovládat 2 piny, RD2 a RD3.
  • jeden spínač je pro resetovací tlačítko a je spojen s pinem 1.
  • jiný přepínač je určen pro Bootloading spojený s pinem 37.

LED diody (RD2, RD3) se používají jako kontrolní kolíky, ale tyto ovládací kolíky mohou být použity k ovládání i jiných věcí. Může být snadno propojen s ovladačem motoru L293D, stejnosměrným motorem, krokovým motorem,reléovými spínači, servomotorem atd.

schéma na Proteus

programování mikrokontroléru PIC

kód pro rozhraní USB s mikrokontrolérem je uveden níže. Chcete-li však použít tento kód, musíte také přidat ovladač zařízení. Před použitím tohoto kódu, uživatel by měl vytvořit USB ovladač zařízení tím, že půjdete do nástroje Mikro C pro pic a klikněte na HID terminálu a generovat deskriptor.C soubor a vložte tento soubor do hlavní složky kódu.

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

kód pro mikrořadič je napsán pomocí speciálního softwaru, který má vlastní programovací jazyk podobný např.: mplab, microC software. Kód je pak zkompilován na příslušný výstup. V tomto procesu“.hex “ soubor je generován, který má být vypálit / pojistka v mikrokontroléru.

vypalování kódu v mikrokontroléru

výstup načtený do EPROM mikrokontroléru se nazývá firmware. Potřebujeme speciální hardware pro fúzi tohoto výstupního kódu (hex soubor) do MCU. JDM programátor je příkladem takového zařízení, které se používá k načtení souboru hex do MCU. Je to snadné a levné.Po načtení odpojte PIC18F4550 od programátoru (1. čas načítání hexadecimálního kódu) a vložte jej zpět do obvodu rozhraní USB.Poté musíme poskytnout řidiči.

nemusíme tento krok (použití programátoru) pokaždé pro načtení firmwaru (hex soubor). Jakmile je základní firmware vložen do čipu, můžeme aktualizovat výstupní hexfile přímo pomocí vývojového obvodu rozhraní pomocí softwaru smallbootloading.

ovladače zařízení pro rozhraní USB s mikrokontrolérem pic

Připojte kabel USB z počítače k rozhraní USB. Ani po dokončení obvodu a také programování v mikrokontroléru nezačne správně fungovat. Jak víme, že nová instalace hardwaru vyžaduje, aby systém detekoval Ovladač pro windows.

pro instalaci ovladače a Bootloading operace musíme stáhnout a nainstalovat rámec USB mikročip z webových stránek microchip.

obvodová práce rozhraní USB

pro spuštění obvodu je nutné jej inicializovat v režimu BOOTLOAD. V obvodu rozhraní USB, jak již bylo vysvětleno, existují dvě tlačítka, jedno je theRESETbutton a další je tlačítko BOOTLOAD.

  • podržte tlačítko Nastavení
  • stiskněte tlačítko RESET a stiskněte tlačítko bootload jednou
  • poté uvolněte obě tlačítka.
  • okno poté detekuje hardware USB PICI8F4550 a požádá o Ovladače pro tento obvod/desku.
  • pokud okno nepožaduje ovladače, mohou se vyskytnout problémy s obvodem.
  • Předpokládejme, že ovladače pro toto zařízení USB jsou umístěny v
    C:\MCUSB\MCUSB Driver \ Debug

když systém windows požádá o ovladače, přejděte na ruční vyhledávání ovladačů a přejděte do výše zmíněné složky umístění ovladačů.Po instalaci ovladačů Led1 a Led 2 (připojené na RD0 a RD1) začnou alternativně blikat, což znamená, že náš USB obvod dokonale komunikuje s naším PC.Po instalaci ovladačů, kdykoli pro připojení tohoto obvodu k našemu počítači, nemusíme stisknout tlačítko reset orbootload a LED diody začnou blikat alternativně.Nyní je deska s obvody rozhraní USB připravena a můžeme do čipu načíst vlastní hex soubor přímo z desky USB (bez programátoru JDM).

pro vypalování firmwaru (hex souboru) do PIC18F4550 není nutné používat programátor (obvod hořáku). Programátor JDM se používá pouze pro první programování kódu a pro další fáze můžeme použít Bootloading Software pro vypalování nového kódu přímo z obvodu rozhraní USB do MCU. Tento MCU lze použít pro jiné specifické obvody pracující pro které byl výstupní kód navržen.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.