Πίνακας περιεχομένων:
2025 Συγγραφέας: John Day | [email protected]. Τελευταία τροποποίηση: 2025-01-13 06:57
Παρά το γεγονός ότι το FPGA DueProLogic έχει σχεδιαστεί επίσημα για το Arduino, θα κάνουμε το FPGA και το Raspberry Pi 4B επικοινωνιακά.
Τρεις εργασίες υλοποιούνται σε αυτό το σεμινάριο:
(Α) Πατήστε ταυτόχρονα τα δύο κουμπιά στο FPGA για να αναστρέψετε τη γωνία της κάμερας RPi.
(Β) Το Raspberry Pi 4B ελέγχει το εξωτερικό κύκλωμα LED του FPGA.
(Γ) Ζωντανή ροή της κάμερας Raspberry Pi στο πρόγραμμα περιήγησης μέσω WiFi
Βήμα 1: Δημιουργία ηλεκτρονικού κυκλώματος
Βήμα 2: Επεξεργασία κώδικα Verilog
Όταν αγοράζετε το FPGA DueProLogic, θα πρέπει να λάβετε ένα DVD. Αφού ανοίξετε το "Projects_HDL", θα πρέπει να δείτε το αρχικό αρχείο κώδικα HDL. Αφού ρυθμίσετε τον προγραμματιστή καρφιτσών, προσθέστε τον επισημασμένο κώδικα όπως φαίνεται στην ενότητα 2Α, 2Β, 2Γ και 2Δ.
2Α: Για να ενεργοποιήσετε τα κουμπιά, πρέπει να χρησιμοποιήσετε αυτόν τον κωδικό
// Διακόπτες κουμπιού ώθησης
καλώδιο εισόδου UBA,
καλώδιο εισόδου UBB
Για να επικοινωνήσετε με το Raspberry Pi, πρέπει να τα προσθέσετε.
reg sel_send; // ενεργοποιήστε το Raspberry pi
reg rece? // ελήφθη από βατόμουρο πι
2Β: Για να εκχωρήσετε τιμές στις θύρες, θα πρέπει να επεξεργαστείτε τον κώδικα ανάλογα
εκχώρηση XIO_1 [3] = start_stop_cntrl;
εκχώρηση XIO_2 [2] = παραλαβή; // έξοδος HIGH ή LOW στο κύκλωμα LED
εκχώρηση XIO_2 [3] = ~ UBA; // κουμπί
εκχώρηση XIO_2 [4] = UBB; // κουμπί
εκχώρηση XIO_2 [5] = sel_send; // Το FPGA στέλνει σήμα στο raspberry pi
εκχώρηση sel_read = XIO_5 [1]; // Το FPGA λαμβάνει σήμα από το raspberry pi
εκχώρηση c_enable = XIO_5 [2]; // XIO_5 - UB57 - D17
εκχώρηση LEDExt = XIO_5 [5];
2C: Εάν πατηθούν ταυτόχρονα δύο κουμπιά, το FPGA στέλνει έξοδο HIGH στο Raspberry Pi.
πάντα @(sel_send ή UBB ή UBA) // αποστολή σε RPi
να αρχίσει
εάν (UBB == 1'b0 && UBA == 1'b0)
sel_send = 1'b1;
αλλού
sel_send = 1'b0;
τέλος
2D: Το FPGA διαβάζει σήμα από το Raspberry Pi με συχνότητα ρολογιού 66MHz. Η θύρα XIO_2 [2] συνδέεται με το "rece".
πάντα @(sel_read) // διαβάστε pi
να αρχίσει
εάν (sel_read == 1'b1)
Rece = 1'b0;
αλλού
Rece = 1'b1;
τέλος
Βήμα 3: Μεταφόρτωση κώδικα Verilog
Στη συνέχεια, ανεβάστε το μεταγλωττισμένο αρχείο pof στο FPGA. Εάν δεν ανιχνεύεται αυτόματα κανένα υλικό, κάντε κλικ στην επιλογή "Ρύθμιση υλικού" για να το διορθώσετε με μη αυτόματο τρόπο
Βήμα 4: Ανεβάστε το Raspberry Pi Code
Οι επισημασμένες γραμμές επιτρέπουν στο FPGA να επικοινωνεί με το Raspberry Pi.
Ο πλήρης κώδικας Raspberry Pi για αυτό το έργο,
A = GPIO.input (pin) #read FPGAprint (A);
εάν (A == 1):
camera.rotation = 0
GPIO.output (18, GPIO. LOW) #αποστολή στο FPGA
εάν (A == 0):
camera.rotation = 180
GPIO.output (18, GPIO. HIGH) #αποστολή στο FPGA
Βήμα 5: Ας το δοκιμάσουμε
Ανοίξτε το πρόγραμμα περιήγησής σας και πληκτρολογήστε τη διεύθυνση IP σας π.χ. 192.168.xx.xxx:8000.
Μετά από όλα, το σύστημα πρέπει να λειτουργήσει!