31 stycznia, 2022

Interfejs USB z mikrokontrolerem PIC o kodzie

interfejs USB z mikrokontrolerem PIC: celem tego artykułu jest zbudowanie koncepcji interfejsu USB do mikrokontrolera PIC. Programator jest uĺľywany Juĺľ za pierwszym razem do Ĺ 'adowania kodu w mikrokontrolerze, a nastÄ ™ pnie moĹĽemy Ĺ’ adowaÄ ‡ kod w mikrokontrolerze bezpoĹ „rednio poprzez ten prostszy ukĹ’ ad. PIC18F2550 i PIC18F4550 słyną z modułu USB.

spis treści

USB (Universal Serial Bus)

jest to najczęstsze połączenie używane do podłączenia komputera do różnych urządzeń, takich jak aparaty cyfrowe, drukarki, skanery i Zewnętrzne Dyski twarde itp.

prędkości transferu USB

USB 1.0 obsługuje szybkość transferu danych:

  • 5 Mega bity na sekundę Mbps (niska prędkość), używane dla ludzkich urządzeń wejściowych, takich jak klawiatura, mysz, Joysticki itp
  • 2 Mbps (wysoka prędkość) używane do drukarek, skanerów itp

USB 2.0 znany jako hi-speed USB i zdolny do obsługi szybkości transferu do 480Mbps.

USB 3.0 znany również jako super-speed USB i obsługuje szybkość transferu do 5,0 gigabitów na sekundę (Gbps).

USB 3.1 znany również jako super speed+ i zdolny do obsługi szybkości transferu do 10 Gbps.

USB Type – C jego wtyczka łączy się zarówno z „hostami, jak i urządzeniami”.

wyjście USB: Komunikacja usb z mikrokontrolerem pic

główne etapy tego projektu to:

Krok#1 generowanie zegara

Krok#2 konstrukcje obwodów

Krok#3 Programowanie mikrokontrolera

Krok#4 Wypalanie kodu w mikrokontrolerze

Krok#5 sterowniki urządzeń

Krok#6 Praca obwodu

generowanie zegara dla USB połączenie z mikrokontrolerem pic

P18f2550/4550 obsługuje niską prędkość (1,5 MB/S) I pełną prędkość (12 MB/s), Więc dla USB musimy wybrać konkretny Zegar. Wewnętrzny zegar 6 MHz lub 48 MHz jest wymagany ze względu na wymagania czasowe nałożone przez USB.Ale jest problem w użyciu kryształu 48MHz. Ten kryształ jest wysoki koszt, a także tworzy hałas. Ponieważ wyższy kryształ, tym większy będzie hałas.Istnieje wiele możliwości osiągnięcia wymogu zegara modułu USB, który nadal zapewnia elastyczność w taktowaniu reszty Urządzenia z podstawowego źródła oscylatora.Tutaj oscylator Kryształowy używany z PIC18F4550 do łączenia USB to oscylator Kryształowy 20 MHz. Służy do wewnętrznej oscylacji mikrokontrolera i jest podłączony na 13 i 14 pin MCU.Komunikacja usb wybór oscialltor dla mikrokontrolera pic

Konfiguracja Ustawienia bitów dla interfejsu USB z mikrokontrolerem pic

w przypadku kryształu 20MHz:

  • ustaw „Wybór oscylatora” na HSPLL. Da 20 MHz na wejściu „primary oscillator”
  • Ustaw „PLL prescaler selection”, aby podzielić przez 5, więc otrzymujemy 4 MHz, które są mnożone przez 24, aby uzyskać 96 MHz dla USB
  • ustaw „Wybór zegara USB” na 96 MHz podzielony przez 2
  • ustaw „Wybór zegara systemowego postscaler” na 96 podzielony przez dwa.

wreszcie częstotliwość oscylatora jest ustawiona na 48 MHz. (96 MHz/2=48 MHzustawienie częstotliwości w mikro c dla pic

układ łączący USB z mikrokontrolerem pic

układ łączący usb z mikrokontrolerem pic

Utwórz schemat obwodu zgodnie ze schematem:

  • napięcie wejściowe do mikrokontrolera PIC18F4550 nigdy nie powinno przekraczać 5 V.
  • używany oscylator Kryształowy to oscylator Kryształowy 20 MHz, który jest podłączony na 13 i 14 pinach.
  • Krótki 11. i 32. pin razem do 5V, podobnie 12. i 31. pin do GND. Ale tutaj MCU ma wbudowane połączenia.
  • dwie diody LED są na RD0 i RD1, a rezystancja 1 kΩ jest dodawana do każdej diody LED. Służą one do komunikacji tylko po to, aby zobaczyć, że komunikacja USB istnieje.
  • za pomocą tego obwodu interfejsu USB będziemy sterować 2 pinami, RD2 i RD3.
  • jeden przełącznik służy do przycisku resetowania i jest połączony z pinem 1.
  • inny przełącznik służy do Bootloadingu połączonego z pinem 37.

włączone diody LED (RD2, RD3) są używane jako kołki sterujące, ale te kołki sterujące mogą być również używane do sterowania innymi rzeczami. Można go łatwo połączyć ze sterownikiem silnika L293D, silnikiem prądu stałego, Silnikiem Krokowym , przełącznikami przekaźników, serwomechanizmem itp.

schemat na Proteusie

programowanie mikrokontrolera PIC

kod do połączenia USB z mikrokontrolerem podano poniżej. Ale aby użyć tego kodu, musisz również dodać sterownik urządzenia. Przed użyciem tego kodu użytkownik powinien utworzyć sterownik urządzenia USB przechodząc do narzędzia Mikro C dla pic i klikając na HID terminal i generując deskryptor.plik c i wklej ten plik do głównego folderu kodu.

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

kod dla mikrokontrolera jest napisany za pomocą specjalnego oprogramowania, które ma własny język programowania podobny do C np.: mplab, microC software. Kod jest następnie kompilowany do odpowiedniego wyjścia. W tym procesie”.generowany jest plik hex”, który ma być spalany / bezpiecznik w mikrokontrolerze.

wypalanie kodu w mikrokontrolerze

wyjście załadowane do EPROM mikrokontrolera nazywa się firmware. Potrzebujemy specjalnego sprzętu, aby połączyć ten kod wyjściowy (plik hex) z MCU. Programator JDM jest przykładem takiego urządzenia, które służy do załadowania pliku hex do MCU. Jest łatwy do wykonania i tani.Po załadowaniu odłącz PIC18F4550 od programatora (pierwsze ładowanie kodu szesnastkowego) i włóż go z powrotem do obwodu interfejsu USB.Po tym musimy zapewnić kierowcę.

nie musimy postępować zgodnie z tym krokiem (użycie programatora) za każdym razem, aby załadować firmware (Plik hex). Po załadowaniu podstawowego oprogramowania układowego do układu możemy zaktualizować wyjściowy plik hexfile bezpośrednio z obwodem programowania interfejsu za pomocą oprogramowania smallbootloading.

sterowniki urządzeń do łączenia USB z mikrokontrolerem pic

podłącz kabel USB od komputera do interfejsu USB. Nawet po skompletowaniu układu, a także zaprogramowaniu w mikrokontrolerze, nie zacznie on działać poprawnie. Jak wiemy, nowa instalacja sprzętu wymaga sterownika dla systemu windows, aby został wykryty przez system.

do instalacji sterowników i operacji ładowania musimy pobrać i zainstalować USB MICROCHIP FRAMEWORK ze strony microchip.

Obwód praca interfejsu USB

aby uruchomić Obwód, musimy zainicjować go w trybie BOOTLOAD. W obwodzie interfejsu USB, jak już wyjaśniono, są dwa przyciski, jeden to przycisk set, a drugi to przycisk BOOTLOAD.

  • przytrzymaj przycisk zestawu
  • przytrzymaj przycisk RESET, a następnie naciśnij przycisk bootload raz
  • , a następnie zwolnij oba przyciski.
  • okno wykryje sprzęt USB PICI8F4550 i poprosi o Sterowniki dla tego obwodu / płytki.
  • jeśli okno nie pyta o sterowniki, mogą wystąpić problemy z układem.
  • Załóżmy, że sterowniki dla tego urządzenia USB znajdują się w
    C:\MCUSB\MCUSB Driver \ Debug

gdy system windows poprosi o sterowniki, przejdź do ręcznego wyszukiwania sterowników i przejdź do powyższego folderu lokalizacji wzmianki o sterownikach.Po zainstalowaniu sterowników Led1 i Led 2 (podłączone do RD0 i Rd1) zaczną migać alternatywnie, co oznacza, że nasz Obwód USB doskonale komunikuje się z naszym komputerem.Po zainstalowaniu sterowników, za każdym razem, gdy podłączamy ten obwód z naszym komputerem, nie musimy naciskać przycisków resetowania lub ładowania, a diody LED zaczną migać alternatywnie.Teraz płytka drukowana interfejsu USB jest gotowa i możemy załadować własny plik szesnastkowy do układu bezpośrednio z płyty USB (bez programatora JDM).

nie jest konieczne używanie programatora (obwodu palnika) do nagrywania oprogramowania układowego (pliku hex) do PIC18F4550. Programator JDM jest uĺźywany tylko do pierwszego programowania kodu, a na innych etapach moĹźemy uĹźyÄ ‡ oprogramowania Bootloadingowego do wypalenia nowego kodu bezpoĹ ” rednio z obwodu interfejsu USB do MCU. Ten MCU może być używany do innych specyficznych układów roboczych, dla których został zaprojektowany kod wyjściowy.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.