Cuprins:
2025 Autor: John Day | [email protected]. Modificat ultima dată: 2025-01-13 06:58
În ciuda faptului că FPGA DueProLogic este proiectat oficial pentru Arduino, vom face FPGA și Raspberry Pi 4B comunicabile.
Trei activități sunt implementate în acest tutorial:
(A) Apăsați simultan cele două butoane de pe FPGA pentru a roti unghiul camerei RPi.
(B) Raspberry Pi 4B controlează circuitul LED extern al FPGA.
(C) Transmite în direct camera Raspberry Pi pe browser prin WiFi
Pasul 1: Construiți un circuit electronic
Pasul 2: Editați codul Verilog
Când cumpărați FPGA DueProLogic, ar trebui să primiți un DVD. După ce deschideți „Projects_HDL”, ar trebui să vedeți fișierul de cod HDL original. După ce configurați planificatorul de pin, adăugați codul evidențiat așa cum se arată în secțiunile 2A, 2B, 2C și 2D.
2A: Pentru a activa butoanele, trebuie să utilizați acest cod
// Comutatoare cu buton
cablu de intrare UBA,
cablu de intrare UBB
Pentru a comunica cu Raspberry Pi, trebuie să le adăugați.
reg sel_send; // activați Raspberry pi
reg rece; // primit de la zmeura pi
2B: Pentru a atribui valori porturilor, ar trebui să editați codul în consecință
atribui XIO_1 [3] = start_stop_cntrl;
assign XIO_2 [2] = rece; // ieșire HIGH sau LOW în circuit LED
atribui XIO_2 [3] = ~ UBA; //apasa butonul
atribui XIO_2 [4] = UBB; //apasa butonul
assign XIO_2 [5] = sel_send; // FPGA trimite semnal la raspberry pi
atribui sel_read = XIO_5 [1]; // FPGA primește semnal de la raspberry pi
assign c_enable = XIO_5 [2]; // XIO_5 - UB57 - D17
atribui LEDExt = XIO_5 [5];
2C: Dacă sunt apăsate simultan două butoane, FPGA trimite ieșire HIGH la Raspberry Pi.
întotdeauna @ (sel_send sau UBB sau UBA) // trimite la RPi
începe
if (UBB == 1'b0 && UBA == 1'b0)
sel_send = 1'b1;
altceva
sel_send = 1'b0;
Sfârșit
2D: FPGA citește semnalul de la Raspberry Pi cu frecvența de ceas de 66 MHz. Portul XIO_2 [2] este legat de „rece”.
mereu @ (sel_read) // citește pi
începe
if (sel_read == 1'b1)
rece = 1'b0;
altceva
rece = 1'b1;
Sfârșit
Pasul 3: Încărcați codul Verilog
Apoi încărcați fișierul pof compilat pe FPGA. Dacă nu se detectează automat nicio componentă hardware, faceți clic pe „Configurare hardware” pentru a o corecta manual
Pasul 4: încărcați codul Raspberry Pi
Liniile evidențiate permit comunicarea FPGA cu Raspberry Pi.
Codul complet Raspberry Pi pentru acest proiect,
A = GPIO.input (pin) #citește FPGAprint (A);
dacă (A == 1):
camera.rotatie = 0
GPIO.output (18, GPIO. LOW) #send către FPGA
dacă (A == 0):
camera.rotatie = 180
GPIO.output (18, GPIO. HIGH) #trimite către FPGA
Pasul 5: Să încercăm
Deschideți browserul și tastați adresa IP de ex. 192.168.xx.xxx:8000.
La urma urmei, sistemul ar trebui să funcționeze!