Πίνακας περιεχομένων:
- Βήμα 1: Επισκόπηση διαύλου I2C
- Βήμα 2: Σχεδιασμός RTL σε VHDL
- Βήμα 3: Προσομοίωση και δοκιμή
- Βήμα 4: Σημαντικές σημειώσεις
- Βήμα 5: Επισυνάπτονται αρχεία
Βίντεο: Σχεδιασμός I2C Master σε VHDL: 5 βήματα
2024 Συγγραφέας: John Day | [email protected]. Τελευταία τροποποίηση: 2024-01-30 08:34
Σε αυτό το διδακτικό, συζητείται ο σχεδιασμός ενός απλού κυρίου I2C σε VHDL.
ΣΗΜΕΙΩΣΗ: κάντε κλικ σε κάθε εικόνα για να δείτε ολόκληρη την εικόνα
Βήμα 1: Επισκόπηση διαύλου I2C
• Στέκεται για Inter Integrated Circuit.
• Σύγχρονη, Half duplex.
• Διεπαφή δύο καλωδίων - SDA και SCL.
• SDA - Γραμμή σειριακών δεδομένων που ελέγχεται από Master και Slave
• SCL - Serial Clock που δημιουργήθηκε από τον Master
• Multi-master, Multi-slave πρωτόκολλο.
• Δύο λειτουργίες - 100 kbits/sec και 400 kbits/sec: αργή και γρήγορη.
Βήμα 2: Σχεδιασμός RTL σε VHDL
Προδιαγραφές σχεδίασης του I2C Master μας
- Πλαίσιο δεδομένων 8-bit.
- Μονοκατευθυντικός έλεγχος SCL μόνο.
- 7-bit διεύθυνση slave.
- Υποστηρίζει τόσο αργές όσο και γρήγορες λειτουργίες.
- Ενιαίος Δάσκαλος, Πολυ-δούλος.
- Συμμορφώνεται με τις αυθεντικές προδιαγραφές I2C της Philips.
Χρησιμοποιείται καθαρός κωδικός RTL. Έτσι, η IP είναι εύκολα φορητή σε όλα τα FPGA. Συμπαγής σχεδιασμός βασισμένος στο FSM με χρήση εσωτερικού ρολογιού εξασφαλίζει βέλτιστη περιοχή και απόδοση.
Βήμα 3: Προσομοίωση και δοκιμή
Περιβάλλον δοκιμής
- Λειτουργική προσομοίωση και δοκιμή χρησιμοποιώντας IP τρίτων I2C Slave.
- Συντέθηκε χρησιμοποιώντας το σετ εργαλείων Xilinx Vivado.
- Εφαρμόστηκε και δοκιμάστηκε στον πίνακα Artix-7 FPGA.
- Επαληθευμένος χρόνος σχεδιασμός για 100 MHz.
- Δοκιμασμένες κυματομορφές σε DSO/CRO.
- Επιτυχής δοκιμή επικοινωνίας με το Arduino UNO ως I2C Slave.
Βήμα 4: Σημαντικές σημειώσεις
- Ενώ δοκιμάζετε το Master χρησιμοποιώντας I2C Slave IP, διαμορφώστε τον κωδικό slave σύμφωνα με τις απαιτήσεις σας. Μπορεί να θέλετε να αλλάξετε την προεπιλεγμένη συχνότητα ρολογιού και τη διεύθυνση slave. Η συχνότητα ρολογιού πρέπει επίσης να ρυθμιστεί στον κύριο κωδικό.
- Κατά τη δοκιμή επί του σκάφους, μην ξεχνάτε τις αντιστάσεις έλξης καθώς η γραμμή SDA είναι κοινή έξοδος αποστράγγισης !!! Ελέγξτε τη Google για προτεινόμενη αντίσταση έλξης για διαφορετικές ταχύτητες i2c. Χρησιμοποίησα 2,2K για 100 kHz.
- Εάν δεν χρησιμοποιείτε δοκιμαστικό πάγκο και προσομοιώνετε το Master ανεξάρτητα, προσομοιώστε προσεκτικά το σήμα SDA, καθώς είναι σήμα αμφίδρομης (εισόδου). Διαθέτει δύο οδηγούς, κύρια πλευρά και δευτερεύουσα πλευρά. Θα πρέπει να γνωρίζετε πότε να «αναγκάζετε» και πότε να «αναγκάζετε».
- Το SCL είναι μονόδρομος. Δεν χρειάζεται pull-up.
- Παρακαλώ περάστε προσεκτικά από την τεκμηρίωση IP.
Βήμα 5: Επισυνάπτονται αρχεία
- Όλοι οι κωδικοί RTL του I2C Master.
- Δοκιμαστικός πάγκος, κωδικοί σκλάβων I2C επίσης, για δοκιμή.
- Τεκμηρίωση IP.
Για οποιαδήποτε απορία, μη διστάσετε να επικοινωνήσετε μαζί μου:
Μίτου Ρατζ
ακολουθήστε με:
Για ερωτήματα, επικοινωνήστε με: [email protected]
Συνιστάται:
Σχεδιασμός ενός απλού τεσσάρων κατευθύνσεων συσχετιστικού ελεγκτή μνήμης cache σε VHDL: 4 βήματα
Σχεδιασμός ενός απλού τεσσάρων κατευθυντήριων συστημάτων ελεγκτή μνήμης προσωρινής μνήμης σε VHDL: Στο προηγούμενο διδάσκοντά μου, είδαμε πώς να σχεδιάσουμε έναν απλό ελεγκτή προσωρινής μνήμης απευθείας αντιστοιχισμένου. Αυτή τη φορά, προχωράμε ένα βήμα μπροστά. Θα σχεδιάσουμε ένα απλό τετράπλευρο σύνολο συσχετιστικού ελεγκτή προσωρινής μνήμης. Πλεονέκτημα; Λιγότερο ποσοστό χαμένων, αλλά με κόστος για
Σχεδιασμός προγραμματιζόμενου ελεγκτή διακοπών σε VHDL: 4 βήματα
Σχεδιασμός προγραμματιζόμενου ελεγκτή διακοπών στο VHDL: Είμαι συγκλονισμένος από το είδος των απαντήσεων που λαμβάνω σε αυτό το ιστολόγιο. Ευχαριστώ παιδιά που επισκεφτήκατε το ιστολόγιό μου και μου δώσατε κίνητρο να μοιραστώ τις γνώσεις μου μαζί σας. Αυτή τη φορά, θα παρουσιάσω τον σχεδιασμό μιας άλλης ενδιαφέρουσας ενότητας που βλέπουμε σε όλα τα SOC - Interrupt C
Σχεδιασμός ενός απλού ελεγκτή προσωρινής μνήμης σε VHDL: 4 βήματα
Σχεδιασμός ενός απλού ελεγκτή προσωρινής μνήμης σε VHDL: Γράφω αυτό με οδηγίες, γιατί μου φάνηκε λίγο δύσκολο να βρω κάποιον κώδικα αναφοράς VHDL για να μάθω και να αρχίσω να σχεδιάζω έναν ελεγκτή προσωρινής μνήμης. Έτσι σχεδίασα ένα χειριστήριο cache μόνος μου από την αρχή και το δοκίμασα με επιτυχία στο FPGA. Έχω π
Σχεδιασμός ενός απλού ελεγκτή VGA σε VHDL και Verilog: 5 βήματα
Σχεδιασμός ενός απλού ελεγκτή VGA σε VHDL και Verilog: Σε αυτό το διδακτικό, θα σχεδιάσουμε έναν απλό ελεγκτή VGA σε RTL. Το VGA Controller είναι το ψηφιακό κύκλωμα που έχει σχεδιαστεί για να οδηγεί οθόνες VGA. Διαβάζεται από το Frame Buffer (VGA Memory) που αντιπροσωπεύει το πλαίσιο που θα εμφανιστεί και παράγει αναγκαία
Σχεδιασμός του SPI Master σε VHDL: 6 βήματα
Σχεδιασμός του SPI Master σε VHDL: Σε αυτό το διδακτικό, θα σχεδιάσουμε ένα SPI Bus Master από την αρχή σε VHDL