Obsah:
2025 Autor: John Day | [email protected]. Naposledy zmenené: 2025-01-13 06:58
Napriek tomu, že je FPGA DueProLogic oficiálne navrhnutý pre Arduino, chystáme sa zaistiť komunikáciu FPGA a Raspberry Pi 4B.
V tomto návode sú implementované tri úlohy:
(A) Súčasným stlačením dvoch tlačidiel na FPGA prevrátite uhol kamery RPi.
(B) Raspberry Pi 4B riadi externý LED obvod FPGA.
(C) Živý prenos kamery Raspberry Pi v prehliadači cez WiFi
Krok 1: Vytvorte elektronický obvod
Krok 2: Upravte kód Verilog
Pri kúpe FPGA DueProLogic by ste mali dostať DVD. Po otvorení „Projects_HDL“by ste mali vidieť pôvodný súbor kódu HDL. Po nastavení plánovača pinov pridajte zvýraznený kód podľa obrázku v častiach 2A, 2B, 2C a 2D.
2A: Na aktiváciu tlačidiel musíte použiť tento kód
// Tlačidlové prepínače
vstupný vodič UBA,
vstupný vodič UBB
Ak chcete komunikovať s Raspberry Pi, musíte ich pridať.
reg sel_send; // aktivácia Raspberry pi
reg príjem; // prijaté od maliny pi
2B: Ak chcete portom priradiť hodnoty, mali by ste zodpovedajúcim spôsobom upraviť kód
priradiť XIO_1 [3] = start_stop_cntrl;
priradiť XIO_2 [2] = príjem; // výstup HIGH alebo LOW v obvode LED
priradiť XIO_2 [3] = ~ UBA; // tlačidlo
priradiť XIO_2 [4] = UBB; // tlačidlo
priradiť XIO_2 [5] = sel_send; // FPGA vysiela signál na malinový pi
priradiť sel_read = XIO_5 [1]; // FPGA prijíma signál z malinového pi
priradiť c_enable = XIO_5 [2]; // XIO_5 - UB57 - D17
priradiť LEDExt = XIO_5 [5];
2C: Ak súčasne stlačíte dve tlačidlá, FPGA odošle VYSOKÝ výstup do Raspberry Pi.
vždy @(sel_send alebo UBB alebo UBA) // odoslať do RPi
začať
ak (UBB == 1'b0 && UBA == 1'b0)
sel_send = 1'b1;
inak
sel_send = 1'b0;
koniec
2D: FPGA číta signál z Raspberry Pi s hodinovou frekvenciou 66 MHz. Port XIO_2 [2] je prepojený s 'rece'.
vždy @(sel_read) // čítajte pi
začať
ak (sel_read == 1'b1)
príjem = 1'b0;
inak
príjem = 1'b1;
koniec
Krok 3: Nahrajte kód Verilog
Potom nahrajte skompilovaný súbor pof do súboru FPGA. Ak sa automaticky nezistí žiadny hardvér, kliknutím na položku „Hardvérové nastavenie“ho opravte ručne
Krok 4: Nahrajte kód Raspberry Pi
Zvýraznené riadky umožňujú FPGA komunikáciu s Raspberry Pi.
Úplný kód Raspberry Pi pre tento projekt,
A = GPIO.input (pin) #read FPGAprint (A);
ak (A == 1):
camera.rotation = 0
GPIO.output (18, GPIO. LOW) #odoslať do FPGA
ak (A == 0):
kamera.rotácia = 180
GPIO.output (18, GPIO. HIGH) #odoslať do FPGA
Krok 5: Skúsme to
Otvorte prehliadač a zadajte svoju IP adresu napr. 192.168.xx.xxx:8000.
Systém by mal predsa fungovať!