Inhoudsopgave:
2025 Auteur: John Day | [email protected]. Laatst gewijzigd: 2025-01-13 06:57
Ondanks dat de FPGA DueProLogic officieel is ontworpen voor Arduino, gaan we de FPGA en Raspberry Pi 4B communiceerbaar maken.
In deze zelfstudie worden drie taken geïmplementeerd:
(A) Druk tegelijkertijd op de twee drukknoppen op FPGA om de hoek van de RPi-camera om te draaien.
(B) Raspberry Pi 4B bestuurt het externe LED-circuit van FPGA.
(C) Live stream de Raspberry Pi Camera op Browser via WiFi
Stap 1: Bouw een elektronisch circuit
Stap 2: Bewerk Verilog-code
Wanneer u de FPGA DueProLogic koopt, zou u een dvd moeten ontvangen. Nadat u "Projects_HDL" hebt geopend, zou u het originele HDL-codebestand moeten zien. Nadat u de pinplanner heeft ingesteld, voegt u de gemarkeerde code toe zoals weergegeven in sectie 2A, 2B, 2C en 2D.
2A: Om drukknoppen te activeren, moet je deze code gebruiken
// Drukknopschakelaars
ingangsdraad UBA,
ingangsdraad UBB
Om met Raspberry Pi te communiceren, moet je deze toevoegen.
reg sel_send; // activeer Raspberry pi
reg ontvangst; // ontvangen van frambozenpi
2B: Om waarden aan de poorten toe te kennen, moet u de code dienovereenkomstig bewerken
toewijzen XIO_1[3] = start_stop_cntrl;
toewijzen XIO_2[2] = rece; //uitgang HOOG of LAAG in LED-circuit
toewijzen XIO_2[3] = ~UBA; //druk op de knop
toewijzen XIO_2[4] = UBB; //druk op de knop
toewijzen XIO_2[5] = sel_send; // FPGA stuurt signaal naar Raspberry Pi
toewijzen sel_read= XIO_5[1]; //FPGA ontvangt signaal van Raspberry Pi
wijs c_enable = XIO_5[2] toe; //XIO_5 -- UB57 -- D17
wijs LEDExt = XIO_5[5] toe;
2C: Als twee drukknoppen tegelijkertijd worden ingedrukt, stuurt de FPGA HOGE output naar Raspberry Pi.
altijd @(sel_send of UBB of UBA) //send to RPi
beginnen
als (UBB == 1'b0 && UBA == 1'b0)
sel_send = 1'b1;
anders
sel_send = 1'b0;
einde
2D: De FPGA leest het signaal van de Raspberry Pi met de klokfrequentie van 66MHz. De poort XIO_2[2] is gekoppeld aan 'rece'.
altijd @(sel_read) //lees pi
beginnen
if (sel_read == 1'b1)
rece = 1'b0;
anders
rece = 1'b1;
einde
Stap 3: Upload Verilog-code
Upload vervolgens het gecompileerde pof-bestand naar de FPGA. Als er geen hardware automatisch wordt gedetecteerd, klikt u op "Hardware Setup" om het handmatig te corrigeren
Stap 4: Upload Raspberry Pi-code
Door de gemarkeerde lijnen kan de FPGA communiceren met Raspberry Pi.
De volledige Raspberry Pi-code voor dit project,
A = GPIO.input(pin) #read FPGAprint(A);
als(A==1):
camera.rotatie = 0
GPIO.output (18, GPIO. LOW) #verzenden naar FPGA
als(A==0):
camera.rotatie = 180
GPIO.output (18, GPIO. HIGH) #verzenden naar FPGA
Stap 5: Laten we het proberen
Open uw browser en typ uw IP-adres, b.v. 192.168.xx.xxx:8000.
Het systeem moet immers werken!