Files
mesa_7i92t_source/instrukcja_wlasny_firmware.md
2026-07-08 14:08:05 +02:00

4.3 KiB

Tworzenie Własnego Firmware dla Mesa 7i92TF (Efinix Trion T20)

Karta Mesa 7i92TF (wersja z żeńskim portem DB25 oraz złączem IDC26 2x13) jest oparta na układzie FPGA Efinix Trion T20F256. Oznacza to, że do edycji i kompilacji oprogramowania układowego wykorzystuje się środowisko Efinity IDE firmy Efinix, a sam kod opisany jest w języku VHDL (architektura HostMot2).

Poniżej znajduje się kompletny przewodnik krok po kroku, jak przygotować i skompilować własną konfigurację pinów.


Krok 1: Instalacja Efinity IDE

  1. Zarejestruj się na stronie producenta układu FPGA: Efinix Inc..
  2. Pobierz i zainstaluj oprogramowanie Efinity IDE (zalecana wersja to 2021.2 lub nowsza, zgodnie z konfiguracją projektu w pliku .xml).
  3. Pobierz plik licencji Efinix (jest wymagany do działania kompilatora).

Krok 2: Przygotowanie plików źródłowych

W Twoim katalogu ze źródłami (source/) znajduje się spakowany projekt dla tego układu:

  1. Rozpakuj plik 7i92t-hm2.zip (zawierający projekt dla układu T20F256) do nowego folderu roboczego, np.:
    unzip 7i92t-hm2.zip -d 7i92t_workspace
    
  2. Przejdź do nowo utworzonego folderu.

Krok 3: Stworzenie nowej konfiguracji pinów (VHDL)

Rozkład pinów dla złącz na karcie Mesa 7i92TF jest zdefiniowany w plikach o nazwie PIN_*.vhd.

  • P2 (DB25 Female): Piny wejścia/wyjścia od I/O 00 do I/O 16.
  • P1 (IDC26 2x13): Piny wejścia/wyjścia od I/O 17 do I/O 33.

Instrukcja tworzenia własnego pliku pinów:

  1. Skopiuj istniejący plik (np. popularny standard 5-osiowy PIN_5ABOBx2D_34.vhd) na nową nazwę:
    cp PIN_5ABOBx2D_34.vhd PIN_MOJA_KONFIGURACJA_34.vhd
    
  2. Otwórz plik PIN_MOJA_KONFIGURACJA_34.vhd w edytorze tekstu.
  3. Zmień nazwę pakietu (package) w nagłówku i stopce pliku:
    package PIN_MOJA_KONFIGURACJA_34 is
    ...
    end PIN_MOJA_KONFIGURACJA_34;
    
  4. Zdefiniuj moduły sprzętowe (ModuleID): W sekcji constant ModuleID określasz, ile maksymalnie sprzętowych modułów (StepGen, QCount, PWM) ma być aktywnych w strukturze FPGA.
  5. Przypisz piny do funkcji (PinDesc): W sekcji constant PinDesc przypisujesz fizycznym pinom I/O odpowiednie funkcje.
    • Przypisanie jako StepGen (krok): IOPortTag & x"00" & StepGenTag & StepGenStepPin
    • Przypisanie jako StepGen (kierunek): IOPortTag & x"00" & StepGenTag & StepGenDirPin
    • Przypisanie jako standardowe wejście/wyjście (GPIO): IOPortTag & x"00" & NullTag & NullPin
    • Uwaga: Druga kolumna bajtowa (np. x"00", x"01") określa numer instancji danego modułu (np. StepGen 0, StepGen 1...).

Krok 4: Podłączenie konfiguracji w projekcie

Musisz poinstruować plik główny (Top-level), aby użył Twojej nowej konfiguracji:

  1. Otwórz plik TopEthernet16HostMot2_efx.vhd.
  2. Odszukaj listę klauzul use work.PIN_....
  3. Zakomentuj obecnie aktywną linię (wstawiając -- na początku), np.:
    --use work.PIN_PBXMAXD_34.all;
    
  4. Dodaj i odkomentuj swoją konfigurację:
    use work.PIN_MOJA_KONFIGURACJA_34.all;
    

Krok 5: Kompilacja w Efinity IDE

  1. Uruchom program Efinity IDE.
  2. Otwórz projekt, wybierając plik seveni92t.xml z folderu roboczego.
  3. Dodaj swój nowy plik PIN_MOJA_KONFIGURACJA_34.vhd do listy plików projektu w zakładce Design (jeśli nie został automatycznie dodany).
  4. Kliknij przycisk Generate Bitstream (ikona odtwarzania/zielona strzałka).
  5. Środowisko przeprowadzi syntezę, placement i routing.
  6. Po pomyślnej kompilacji, gotowy plik wyjściowy .bin znajdziesz w podkatalogu outflow/ (np. seveni92t.bin).

Krok 6: Wgranie nowego firmware na kartę

Gdy masz już skompilowany plik .bin, wgraj go za pomocą programu mesaflash:

  1. Zapisz firmware do pamięci użytkownika:
    mesaflash --device 7i92t --addr 192.168.1.121 --write outflow/seveni92t.bin
    
  2. Zweryfikuj poprawność zapisu:
    mesaflash --device 7i92t --addr 192.168.1.121 --verify outflow/seveni92t.bin
    
  3. Załaduj nowy firmware (reset karty):
    mesaflash --device 7i92t --addr 192.168.1.121 --reload
    
    Po przeładowaniu karta zacznie działać z Twoją własną konfiguracją pinów.