Inhaltsverzeichnis:
- Schritt 1: Übersicht über den I2C-Bus
- Schritt 2: RTL-Design in VHDL
- Schritt 3: Simulation und Test
- Schritt 4: Wichtige Hinweise
- Schritt 5: Angehängte Dateien
Video: Design des I2C-Masters in VHDL - Gunook
2024 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2024-01-30 07:18
In diesem anweisbaren wird das Entwerfen eines einfachen I2C-Masters in VHDL besprochen.
HINWEIS: Klicken Sie auf jedes Bild, um das vollständige Bild anzuzeigen
Schritt 1: Übersicht über den I2C-Bus
• Steht für Inter Integrated Circuit.
•Synchron, Halbduplex.
•Zweidrahtschnittstelle - SDA und SCL.
•SDA – Serielle Datenleitung gesteuert von Master und Slave
•SCL – Vom Master generierte serielle Uhr
•Multi-Master, Multi-Slave-Protokoll.
•Zwei Modi - 100 kbit/s und 400 kbit/s: langsam und schnell.
Schritt 2: RTL-Design in VHDL
Design-Spezifikationen unseres I2C-Masters
- 8-Bit-Datenrahmen.
- Nur unidirektionale SCL-Steuerung.
- 7-Bit-Slave-Adresse.
- Unterstützt sowohl den langsamen als auch den schnellen Modus.
- Single-Master, Multi-Slave.
- Entspricht den ursprünglichen I2C-Spezifikationen von Philips.
Es wird reiner RTL-Code verwendet. Somit ist die IP problemlos über alle FPGAs portierbar. Das kompakte FSM-basierte Design mit intern generiertem Takt sorgt für optimale Fläche und Leistung.
Schritt 3: Simulation und Test
Test Umgebung
- Funktionssimulation und -test mit I2C-Slave-IP von Drittanbietern.
- Synthetisiert mit dem Xilinx Vivado-Werkzeugsatz.
- Implementiert und getestet auf Artix-7 FPGA-Board.
- Timing-verifiziertes Design für 100 MHz.
- Getestete Wellenformen auf DSO/CRO.
- Erfolgreich getestete Kommunikation mit Arduino UNO als I2C Slave.
Schritt 4: Wichtige Hinweise
- Konfigurieren Sie beim Testen des Masters mit I2C-Slave-IP den Slave-Code gemäß Ihren Anforderungen. Möglicherweise möchten Sie die Standardtaktfrequenz und die Slave-Adresse ändern. Die Taktfrequenz sollte auch im Mastercode konfiguriert werden.
- Vergessen Sie beim On-Board-Test nicht die Pull-up-Widerstände, da die SDA-Leitung ein gemeinsamer Drain-Ausgang ist !!! Suchen Sie bei Google nach empfohlenen Pullup-Widerständen für verschiedene i2c-Geschwindigkeiten. Ich habe 2,2K für 100 kHz verwendet.
- Wenn Sie den Prüfstand nicht verwenden und den Master unabhängig simulieren, simulieren Sie das SDA-Signal sorgfältig, da es sich um ein bidirektionales Signal (inout) handelt. Es hat zwei Treiber, Master- und Slave-Seite. Sie sollten wissen, wann Sie „erzwingen“und wann „zwingen“sollten.
- SCL ist eine unidirektionale Leitung. Kein Hochziehen erforderlich.
- Bitte gehen Sie die IP-Dokumentation gründlich durch.
Schritt 5: Angehängte Dateien
- Alle RTL-Codes von I2C Master.
- Prüfstand, auch I2C-Slave-Codes zum Testen.
- IP-Dokumentation.
Bei Fragen können Sie mich gerne kontaktieren:
Mitu Raja
Folgen Sie mir:
Bei Fragen wenden Sie sich an: [email protected]
Empfohlen:
Entwicklung des Drivemall-Boards: 5 Schritte
Entwicklung des Drivemall Boards: In diesem Tutorial sehen wir die grundlegenden Schritte zum Erstellen eines benutzerdefinierten Arduino-Boards. Die verwendete Software ist KiCad für das Boarddesign und die Arduino IDE für das Erstellen und Laden der Firmware für das Board
Videospiel-Tutorial-Design: 6 Schritte
Videospiel-Tutorial-Design: Ich bin ein Hobby-Spieleentwickler, mit meinen Hauptinteressen im Spieledesign und der Programmierung. Um meine Fähigkeiten zu üben und aufzufrischen, mache ich ab und zu einfache Spiele, die ich mit meinen Freunden und Geschwistern teile. Früher würde ich dem Pla die Regeln erklären
So verwandeln Sie Ihr Design in eine professionelle Leiterplatte - Mein Ansatz: 9 Schritte
So verwandeln Sie Ihr Design in eine professionelle Leiterplatte | Mein Ansatz: In diesem Beitrag werde ich meinen Ansatz zum Bau einer professionellen Leiterplatte in sehr wenigen detaillierten Schritten teilen. Ich habe auch ein Video desselben eingebettet, Sie können es sich ansehen oder den Beitrag für die detaillierte Erklärung weiterlesen. Beginnen wir also mit der
Fehlerbehebung bei einem PCB-Design?: 8 Schritte (mit Bildern)
Wie behebe ich ein PCB-Design?: Jedes Mal, wenn ich eine PCB entwerfe, möchte ich meine Grenzen ein wenig überschreiten und etwas ausprobieren, was ich noch nie zuvor ausprobiert habe. Dieses Mal wollte ich die Möglichkeit hinzufügen, dieses Board ohne externen Programmierer zu programmieren. Ich habe einige billige USB-zu-UART-Konverter namens CH gefunden
â-’.::*, Awesome Design (Microsoft Paint), *::.â-’: 4 Schritte
â-’.::*,Awesome Design (Microsoft Paint),*::.â-’: Ich zeige Ihnen, wie Sie mit Microsoft Paint oder einfach nur mit Bleistift und Papier ein tolles Design erstellen! ! PS Bitte bewerten und abstimmen für den Buchwettbewerb. Tausend Dank