Inhaltsverzeichnis:

Design des I2C-Masters in VHDL - Gunook
Design des I2C-Masters in VHDL - Gunook

Video: Design des I2C-Masters in VHDL - Gunook

Video: Design des I2C-Masters in VHDL - Gunook
Video: M12 - 9 - I2C Master Controller Design - HDL 2024, Juli
Anonim
Design des I2C-Masters in VHDL
Design des I2C-Masters in VHDL

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: