Spisu treści:
2025 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2025-01-13 06:58
Pomimo tego, że FPGA DueProLogic jest oficjalnie zaprojektowane dla Arduino, zamierzamy sprawić, by FPGA i Raspberry Pi 4B były komunikowalne.
W tym samouczku zaimplementowano trzy zadania:
(A) Jednocześnie naciśnij dwa przyciski na FPGA, aby zmienić kąt kamery RPi.
(B) Raspberry Pi 4B steruje zewnętrznym obwodem LED FPGA.
(C) Transmisja na żywo z kamery Raspberry Pi w przeglądarce przez Wi-Fi
Krok 1: Zbuduj obwód elektroniczny
Krok 2: Edytuj kod Verilog
Kupując FPGA DueProLogic, powinieneś otrzymać płytę DVD. Po otwarciu „Projects_HDL” powinieneś zobaczyć oryginalny plik kodu HDL. Po skonfigurowaniu planera pinów dodaj podświetlony kod, jak pokazano w sekcji 2A, 2B, 2C i 2D.
2A: Aby aktywować przyciski, musisz użyć tego kodu
//Przełączniki przyciskowe
przewód wejściowy UBA,
przewód wejściowy UBB
Aby komunikować się z Raspberry Pi, musisz je dodać.
reg sel_send; //aktywuj Raspberry Pi
rejestracja; //otrzymane z pi malinowego
2B: Aby przypisać wartości do portów, należy odpowiednio edytować kod
przypisz XIO_1[3] = start_stop_cntrl;
przypisz XIO_2[2] = odbierz; //wyjście HIGH lub LOW w obwodzie LED
przypisz XIO_2 [3] = ~UBA; //naciśnij przycisk
przypisz XIO_2 [4] = UBB; //naciśnij przycisk
przypisz XIO_2[5] = sel_send; // FPGA wysyła sygnał do raspberry pi
przypisz sel_read= XIO_5[1]; //FPGA odbiera sygnał z raspberry pi
przypisz c_enable = XIO_5[2]; //XIO_5 - UB57 - D17
przypisz LEDExt = XIO_5[5];
2C: Jeśli dwa przyciski zostaną wciśnięte jednocześnie, FPGA wysyła sygnał wyjściowy HIGH do Raspberry Pi.
zawsze @(sel_send lub UBB lub UBA) //wyślij do RPi
rozpocząć
jeśli (UBB == 1'b0 && UBA == 1'b0)
sel_send = 1'b1;
w przeciwnym razie
sel_send = 1'b0;
kończyć się
2D: Układ FPGA odczytuje sygnał z Raspberry Pi o częstotliwości taktowania 66MHz. Port XIO_2[2] jest połączony z 'rece'.
zawsze @(sel_read) //odczytaj pi
rozpocząć
jeśli (sel_read == 1'b1)
rece = 1'b0;
w przeciwnym razie
rece = 1'b1;
kończyć się
Krok 3: Prześlij kod Verilog
Następnie prześlij skompilowany plik pof do FPGA. Jeśli żaden sprzęt nie zostanie wykryty automatycznie, kliknij „Konfiguracja sprzętu”, aby poprawić go ręcznie
Krok 4: Prześlij kod Raspberry Pi
Podświetlone linie umożliwiają komunikację FPGA z Raspberry Pi.
Pełny kod Raspberry Pi dla tego projektu,
A = GPIO.input(pin) #odczytaj FPGAprint(A);
jeśli(A==1):
obrót kamery = 0
GPIO.output(18, GPIO. LOW) #wyślij do FPGA
jeśli(A==0):
obrót kamery = 180
GPIO.output(18, GPIO. HIGH) #wyślij do FPGA
Krok 5: Spróbujmy
Otwórz przeglądarkę i wpisz swój adres IP, np. 192.168.xx.xxx:8000.
W końcu system powinien działać!