Spisu treści:

Projekt I2C Master w VHDL: 5 kroków
Projekt I2C Master w VHDL: 5 kroków

Wideo: Projekt I2C Master w VHDL: 5 kroków

Wideo: Projekt I2C Master w VHDL: 5 kroków
Wideo: M12 - 6 - I2C Master Controller Design - Basic Actions 2024, Lipiec
Anonim
Projekt I2C Master w VHDL
Projekt I2C Master w VHDL

W tej instrukcji omówiono projektowanie prostego mastera I2C w VHDL.

UWAGA: kliknij na każdy obraz, aby zobaczyć pełny obraz

Krok 1: Przegląd magistrali I2C

•Stojaki pod układ scalony Inter.

•Synchroniczny, półdupleks.

• Interfejs dwuprzewodowy - SDA i SCL.

•SDA – Szeregowa linia danych kontrolowana przez Master i Slave

•SCL – Zegar szeregowy generowany przez Master

• Protokół Multi-master, Multi-slave.

•Dwa tryby - 100 kbit/s i 400 kbit/s: wolny i szybki.

Krok 2: Projekt RTL w VHDL

Specyfikacja projektu naszego I2C Master

  • 8-bitowa ramka danych.
  • Tylko sterowanie jednokierunkowe SCL.
  • 7-bitowy adres slave.
  • Obsługuje zarówno wolne, jak i szybkie tryby.
  • Pojedynczy master, multi-slave.
  • Zgodny z oryginalną specyfikacją I2C firmy Philips.

Używany jest czysty kod RTL. Dzięki temu IP można łatwo przenosić we wszystkich układach FPGA. Kompaktowa konstrukcja oparta na FSM wykorzystująca wewnętrznie generowany zegar zapewnia optymalną powierzchnię i wydajność.

Krok 3: Symulacja i testowanie

Środowisko testowe

  • Symulacja funkcjonalna i testowanie przy użyciu I2C Slave IP innej firmy.
  • Zsyntetyzowany przy użyciu zestawu narzędzi Xilinx Vivado.
  • Zaimplementowany i przetestowany na płytce Artix-7 FPGA.
  • Zweryfikowany czasowo projekt dla 100 MHz.
  • Przetestowane przebiegi na DSO/CRO.
  • Pomyślnie przetestowano komunikację z Arduino UNO jako I2C Slave.

Krok 4: Ważne uwagi

  • Podczas testowania Master przy użyciu I2C Slave IP, skonfiguruj kod Slave zgodnie z własnymi wymaganiami. Możesz zmienić domyślną częstotliwość zegara i adres urządzenia podrzędnego. Częstotliwość zegara powinna być również skonfigurowana w kodzie Master.
  • Podczas testowania na pokładzie nie zapomnij o rezystorach podciągających, ponieważ linia SDA jest wspólnym wyjściem drenażu !!! Sprawdź w google zalecany rezystor podciągający dla różnych prędkości i2c. Użyłem 2.2K dla 100 kHz.
  • Jeśli nie używasz stanowiska testowego i nie symulujesz urządzenia Master, ostrożnie symuluj sygnał SDA, ponieważ jest to sygnał dwukierunkowy (wejście). Ma dwa sterowniki, stronę master i stronę slave. Powinieneś wiedzieć, kiedy „wymusić”, a kiedy „odmusić”.
  • SCL to linia jednokierunkowa. Nie ma potrzeby podciągania się.
  • Proszę dokładnie zapoznać się z dokumentacją IP.

Krok 5: Załączone pliki

  • Wszystkie kody RTL I2C Master.
  • Stanowisko testowe, kody I2C Slave również do testowania.
  • Dokumentacja IP.

W przypadku jakichkolwiek pytań zapraszam do kontaktu:

Mitu Raj

śledź mnie:

W przypadku pytań prosimy o kontakt: [email protected]

Zalecana: