diff --git a/mayo-mill-probebasic.hal b/mayo-mill-probebasic.hal new file mode 100644 index 0000000..226d626 --- /dev/null +++ b/mayo-mill-probebasic.hal @@ -0,0 +1,84 @@ +# Generated by stepconf 1.1 at Thu May 29 11:48:34 2025 +# If you make changes to this file, they will be +# overwritten when you run stepconf again +loadrt [KINS]KINEMATICS +loadrt [EMCMOT]EMCMOT base_period_nsec=[EMCMOT]BASE_PERIOD servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[KINS]JOINTS num_dio=6 num_aio=3 +loadrt hal_parport cfg="0 out" +setp parport.0.reset-time 5000 +loadrt stepgen step_type=0,0,0 + +addf parport.0.read base-thread +addf stepgen.make-pulses base-thread +addf parport.0.write base-thread +addf parport.0.reset base-thread + +addf stepgen.capture-position servo-thread +addf motion-command-handler servo-thread +addf motion-controller servo-thread +addf stepgen.update-freq servo-thread + +net probe-in => motion.probe-input + +setp parport.0.pin-01-out-invert 1 +net spindle-on => parport.0.pin-01-out +net xdir => parport.0.pin-02-out +net xstep => parport.0.pin-03-out +setp parport.0.pin-03-out-reset 1 +net ydir => parport.0.pin-04-out +net ystep => parport.0.pin-05-out +setp parport.0.pin-05-out-reset 1 +net zdir => parport.0.pin-06-out +net zstep => parport.0.pin-07-out +setp parport.0.pin-07-out-reset 1 +net home-x <= parport.0.pin-10-in +net home-y <= parport.0.pin-11-in +net home-z <= parport.0.pin-12-in +net estop-ext <= parport.0.pin-13-in-not +net probe-in <= parport.0.pin-15-in + +setp stepgen.0.position-scale [JOINT_0]SCALE +setp stepgen.0.steplen 1 +setp stepgen.0.stepspace 0 +setp stepgen.0.dirhold 70000 +setp stepgen.0.dirsetup 70000 +setp stepgen.0.maxaccel [JOINT_0]STEPGEN_MAXACCEL +net xpos-cmd joint.0.motor-pos-cmd => stepgen.0.position-cmd +net xpos-fb stepgen.0.position-fb => joint.0.motor-pos-fb +net xstep <= stepgen.0.step +net xdir <= stepgen.0.dir +net xenable joint.0.amp-enable-out => stepgen.0.enable +net home-x => joint.0.home-sw-in + +setp stepgen.1.position-scale [JOINT_1]SCALE +setp stepgen.1.steplen 1 +setp stepgen.1.stepspace 0 +setp stepgen.1.dirhold 70000 +setp stepgen.1.dirsetup 70000 +setp stepgen.1.maxaccel [JOINT_1]STEPGEN_MAXACCEL +net ypos-cmd joint.1.motor-pos-cmd => stepgen.1.position-cmd +net ypos-fb stepgen.1.position-fb => joint.1.motor-pos-fb +net ystep <= stepgen.1.step +net ydir <= stepgen.1.dir +net yenable joint.1.amp-enable-out => stepgen.1.enable +net home-y => joint.1.home-sw-in + +setp stepgen.2.position-scale [JOINT_2]SCALE +setp stepgen.2.steplen 1 +setp stepgen.2.stepspace 0 +setp stepgen.2.dirhold 70000 +setp stepgen.2.dirsetup 70000 +setp stepgen.2.maxaccel [JOINT_2]STEPGEN_MAXACCEL +net zpos-cmd joint.2.motor-pos-cmd => stepgen.2.position-cmd +net zpos-fb stepgen.2.position-fb => joint.2.motor-pos-fb +net zstep <= stepgen.2.step +net zdir <= stepgen.2.dir +net zenable joint.2.amp-enable-out => stepgen.2.enable +net home-z => joint.2.home-sw-in + +net estop-out <= iocontrol.0.user-enable-out +net estop-ext => iocontrol.0.emc-enable-in + +net tool-change-request <= iocontrol.0.tool-change +net tool-change-confirmed => iocontrol.0.tool-changed +net tool-number <= iocontrol.0.tool-prep-number +net tool-prepare-loopback iocontrol.0.tool-prepare => iocontrol.0.tool-prepared \ No newline at end of file diff --git a/mayo-mill.stepconf b/mayo-mill.stepconf new file mode 100644 index 0000000..ce16a7d --- /dev/null +++ b/mayo-mill.stepconf @@ -0,0 +1,245 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/opis_polaczen_lpt.md b/opis_polaczen_lpt.md new file mode 100644 index 0000000..e6a7a50 --- /dev/null +++ b/opis_polaczen_lpt.md @@ -0,0 +1,74 @@ +# 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`.