# Opis Połączeń Portu LPT dla Mayo-Mill

Niniejszy dokument przedstawia zestawienie połączeń fizycznych oraz sygnałów HAL zdefiniowanych w Twojej dotychczasowej konfiguracji na podstawie plików [mayo-mill.stepconf](file:///home/cnc/Documents/7i92t/configs/hostmot2/mayo-mill.stepconf) i [mayo-mill-probebasic.hal](file:///home/cnc/Documents/7i92t/configs/hostmot2/mayo-mill-probebasic.hal). 

W celu ułatwienia migracji do karty **Mesa 7i92T/TF**, w tabeli poniżej zamieszczono również przyporządkowanie tych samych pinów fizycznych do sygnałów sterownika **HostMot2 (Mesa)** przy użyciu standardowego firmware dla płyt 5-osiowych (`7i92t_5abob_encd` / `7i92t_5abobx2d`).

---

## 1. Zestawienie Sygnałów i Mapowanie na Mesa 7i92T/TF (Złącze DB25 / P2)

Poniższa tabela przedstawia przypisanie pinów złącza DB25 (portu równoległego LPT):

| Pin DB25 | Kierunek (LPT) | Sygnał HAL (`net`) | Opis Funkcji | Negacja (Invert) | Odpowiednik GPIO / Modułu na Mesa 7i92T (P2) | Pin HAL w sterowniku Mesa (`hm2_7i92`) |
| :---: | :---: | :--- | :--- | :---: | :--- | :--- |
| **1** | Wyjście | `spindle-on` | Włączenie wrzeciona (Spindle ON) | **Tak** | Mesa I/O 00 (PWM 0 / GPIO) | `hm2_7i92.0.gpio.000.out` (lub PWM) |
| **2** | Wyjście | `xdir` | Kierunek osi X (X Direction) | Nie | Mesa I/O 02 (StepGen 0 Step) | *Patrz uwaga poniżej* |
| **3** | Wyjście | `xstep` | Krok osi X (X Step) | Nie | Mesa I/O 04 (StepGen 0 Dir) | *Patrz uwaga poniżej* |
| **4** | Wyjście | `ydir` | Kierunek osi Y (Y Direction) | Nie | Mesa I/O 06 (StepGen 1 Step) | *Patrz uwaga poniżej* |
| **5** | Wyjście | `ystep` | Krok osi Y (Y Step) | Nie | Mesa I/O 08 (StepGen 1 Dir) | *Patrz uwaga poniżej* |
| **6** | Wyjście | `zdir` | Kierunek osi Z (Z Direction) | Nie | Mesa I/O 09 (StepGen 2 Step) | *Patrz uwaga poniżej* |
| **7** | Wyjście | `zstep` | Krok osi Z (Z Step) | Nie | Mesa I/O 10 (StepGen 2 Dir) | *Patrz uwaga poniżej* |
| **8** | Wyjście | — | Nieużywane | Nie | Mesa I/O 11 (StepGen 3 Step) | — |
| **9** | Wyjście | — | Nieużywane | Nie | Mesa I/O 12 (StepGen 3 Dir) | — |
| **10** | Wejście | `home-x` | Bazowanie / Krańcówka osi X | Nie | Mesa I/O 13 (GPIO) | `hm2_7i92.0.gpio.013.in` |
| **11** | Wejście | `home-y` | Bazowanie / Krańcówka osi Y | Nie | Mesa I/O 14 (QCount 0 A / GPIO) | `hm2_7i92.0.gpio.014.in` |
| **12** | Wejście | `home-z` | Bazowanie / Krańcówka osi Z | Nie | Mesa I/O 15 (QCount 0 B / GPIO) | `hm2_7i92.0.gpio.015.in` |
| **13** | Wejście | `estop-ext` | Zewnętrzny przycisk bezpieczeństwa (E-Stop) | **Tak** | Mesa I/O 16 (QCount 0 IDX / GPIO) | `hm2_7i92.0.gpio.016.in_not` |
| **14** | Wyjście | — | Nieużywane | Nie | Mesa I/O 01 (GPIO) | `hm2_7i92.0.gpio.001.out` |
| **15** | Wejście | `probe-in` | Czujnik wysokości narzędzia (Sonda/Probe) | Nie | Mesa I/O 03 (GPIO) | `hm2_7i92.0.gpio.003.in` |
| **16** | Wyjście | — | Nieużywane | Nie | Mesa I/O 05 (StepGen 4 Step / GPIO) | — |
| **17** | Wyjście | — | Nieużywane | Nie | Mesa I/O 07 (StepGen 4 Dir / GPIO) | — |

> [!WARNING]
> **Różnica w kolejności Step/Dir pomiędzy LPT a standardowym firmware Mesa:**
> * W pliku `.hal` dla LPT, pin **2** to `dir` a pin **3** to `step`.
> * W standardowym firmware Mesa dla płyt 5-osiowych (np. `7i92t_5abob_encd`), pin **2** to sprzętowy generator kroków `Step` (StepGen 0), a pin **3** to `Direction` (StepGen 0).
> * Podobnie dla osi Y (LPT: Pin 4 = Dir, Pin 5 = Step; Mesa: Pin 4 = StepGen 1 Step, Pin 5 = StepGen 1 Dir).
> * Podobnie dla osi Z (LPT: Pin 6 = Dir, Pin 7 = Step; Mesa: Pin 6 = StepGen 2 Step, Pin 7 = StepGen 2 Dir).
> 
> **Rozwiązanie:** Przy przejściu na kartę Mesa 7i92T przy użyciu standardowego firmware konieczna będzie zamiana miejscami przewodów sygnałowych Step i Dir dla poszczególnych osi na wejściach sterowników silników krokowych (lub wykonanie własnego firmware FPGA z zamienioną kolejnością wyprowadzeń).

---

## 2. Szczegóły Konfiguracji Sygnałów Wejściowych (Krańcówki i Probe)

Wszystkie wejścia (krańcówki i probe) są wejściami typu logicznego. W sterowniku LinuxCNC HAL odpowiadają im piny `.in` lub `.in_not` (gdy sygnał jest negowany w konfiguracji).

### Bazowanie osi (Home switches):
* **Oś X:** Sygnał `home-x` pobierany z fizycznego pinu **10** portu LPT (`parport.0.pin-10-in`).
  * W Mesa: pin HAL `hm2_7i92.0.gpio.013.in` połączony z `joint.0.home-sw-in`.
* **Oś Y:** Sygnał `home-y` pobierany z fizycznego pinu **11** portu LPT (`parport.0.pin-11-in`).
  * W Mesa: pin HAL `hm2_7i92.0.gpio.014.in` połączony z `joint.1.home-sw-in`.
* **Oś Z:** Sygnał `home-z` pobierany z fizycznego pinu **12** portu LPT (`parport.0.pin-12-in`).
  * W Mesa: pin HAL `hm2_7i92.0.gpio.015.in` połączony z `joint.2.home-sw-in`.

### Przycisk bezpieczeństwa (E-Stop):
* Sygnał `estop-ext` podłączony do pinu **13** portu LPT w trybie zanegowanym (`parport.0.pin-13-in-not`).
  * W Mesa: pin HAL `hm2_7i92.0.gpio.016.in_not` połączony z `iocontrol.0.emc-enable-in`.

### Czujnik wysokości (Probe-in):
* Sygnał `probe-in` podłączony do pinu **15** portu LPT (`parport.0.pin-15-in`).
  * W Mesa: pin HAL `hm2_7i92.0.gpio.003.in` połączony z `motion.probe-input`.

---

## 3. Parametry Czasowe Kroków (Step timings)

Zgodnie z plikiem [mayo-mill.stepconf](file:///home/cnc/Documents/7i92t/configs/hostmot2/mayo-mill.stepconf), Twoje sterowniki wymagają następujących czasów sygnału sterującego:
* **Czas trwania kroku (Steptime):** 5000 ns (5 µs)
* **Odstęp między krokami (Stepspace):** 5000 ns (5 µs)
* **Czas ustalenia kierunku (Dir Setup):** 20000 ns (20 µs)
* **Czas podtrzymania kierunku (Dir Hold):** 20000 ns (20 µs)

Przy konfiguracji generatorów Mesa StepGen w pliku `.hal`, wartości te podaje się w nanosekundach bezpośrednio do parametrów `stepgen.X.steplen`, `stepgen.X.stepspace`, `stepgen.X.dirsetup`, `stepgen.X.dirhold`.
