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:
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.
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=48MHz
USB propojovací obvod 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.