Innholdsfortegnelse:
2025 Forfatter: John Day | [email protected]. Sist endret: 2025-01-13 06:58
Til tross for at FPGA DueProLogic er offisielt designet for Arduino, skal vi gjøre FPGA og Raspberry Pi 4B kommuniserbare.
Tre oppgaver er implementert i denne opplæringen:
(A) Trykk samtidig på de to trykknappene på FPGA for å snu vinkelen på RPi -kameraet.
(B) Raspberry Pi 4B styrer den eksterne LED -kretsen til FPGA.
(C) Live stream Raspberry Pi -kameraet i nettleseren via WiFi
Trinn 1: Bygg elektronisk krets
Trinn 2: Rediger Verilog -koden
Når du kjøper FPGA DueProLogic, bør du motta en DVD. Etter at du har åpnet "Projects_HDL", bør du se den originale HDL -kodefilen. Etter at du har konfigurert pin -planleggeren, legger du til den uthevede koden som vist i seksjon 2A, 2B, 2C og 2D.
2A: For å aktivere trykknapper må du bruke denne koden
// Trykknappbrytere
inngangskabel UBA,
inngangskabel UBB
For å kommunisere med Raspberry Pi må du legge til disse.
reg sel_send; // aktiver Raspberry pi
reg mott; // mottatt fra bringebær pi
2B: For å tilordne verdier til portene, bør du redigere koden tilsvarende
tilordne XIO_1 [3] = start_stop_cntrl;
tilordne XIO_2 [2] = mottak; // utgang HØY eller LAV i LED -krets
tilordne XIO_2 [3] = ~ UBA; // trykknapp
tilordne XIO_2 [4] = UBB; // trykknapp
tilordne XIO_2 [5] = sel_send; // FPGA sender signal til bringebær pi
tilordne sel_read = XIO_5 [1]; // FPGA mottar signal fra bringebær pi
tilordne c_enable = XIO_5 [2]; // XIO_5 - UB57 - D17
tilordne LEDExt = XIO_5 [5];
2C: Hvis du trykker på to trykknapper samtidig, sender FPGA HØY utgang til Raspberry Pi.
alltid @(sel_send eller UBB eller UBA) // send til RPi
begynne
hvis (UBB == 1'b0 && UBA == 1'b0)
sel_send = 1'b1;
ellers
sel_send = 1'b0;
slutt
2D: FPGA leser signal fra Raspberry Pi med klokkefrekvensen 66MHz. Porten XIO_2 [2] er koblet til "mottak".
alltid @(sel_read) // les pi
begynne
hvis (sel_read == 1'b1)
mott = 1'b0;
ellers
mott = 1'b1;
slutt
Trinn 3: Last opp Verilog -kode
Last deretter opp den kompilerte pof -filen til FPGA. Hvis ingen maskinvare oppdages automatisk, klikker du på "Maskinvareoppsett" for å korrigere det manuelt
Trinn 4: Last opp Raspberry Pi -kode
De markerte linjene gjør at FPGA kan kommunisere med Raspberry Pi.
Hele Raspberry Pi-koden for dette prosjektet, https://roywchpi.blogspot.com 2020/06/12-fpga-cycl…
A = GPIO.input (pin) #read FPGAprint (A);
hvis (A == 1):
kamera. rotasjon = 0
GPIO.output (18, GPIO. LOW) #send til FPGA
hvis (A == 0):
kamera. rotasjon = 180
GPIO.output (18, GPIO. HIGH) #send til FPGA
Trinn 5: La oss prøve det
Åpne nettleseren din og skriv inn IP -adressen din f.eks. 192.168.xx.xxx:8000.
Tross alt burde systemet fungere!