Compare commits

..

2 Commits

Author SHA1 Message Date
83fc751305 podlaczone i test 2026-07-10 11:59:03 +02:00
53846c68a0 obecna konfiguracvja lpt 2026-07-10 11:58:41 +02:00
5 changed files with 557 additions and 0 deletions

84
mayo-mill-probebasic.hal Normal file
View File

@@ -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

245
mayo-mill.stepconf Normal file
View File

@@ -0,0 +1,245 @@
<?xml version="1.0" ?>
<stepconf>
<property type="int" name="ahomepos" value="0"/>
<property type="int" name="ahomesw" value="0"/>
<property type="float" name="ahomevel" value="0.05"/>
<property type="int" name="alatchdir" value="0"/>
<property type="int" name="aleadscrew" value="360"/>
<property type="int" name="amaxacc" value="1200"/>
<property type="int" name="amaxlim" value="9999"/>
<property type="int" name="amaxvel" value="360"/>
<property type="int" name="amicrostep" value="2"/>
<property type="int" name="aminlim" value="-9999"/>
<property type="int" name="apulleyden" value="1"/>
<property type="int" name="apulleynum" value="1"/>
<property type="int" name="ascale" value="0"/>
<property type="int" name="asteprev" value="200"/>
<property type="int" name="axes" value="0"/>
<property type="eval" name="axislist" value="[]"/>
<property type="bool" name="classicladder" value="False"/>
<property type="bool" name="createshortcut" value="True"/>
<property type="bool" name="createsymlink" value="True"/>
<property type="int" name="customhal" value="1"/>
<property type="float" name="digitsin" value="15.0"/>
<property type="float" name="digitsout" value="15.0"/>
<property type="float" name="dirhold" value="20000.0"/>
<property type="float" name="dirsetup" value="20000.0"/>
<property type="string" name="drivertype" value="other"/>
<property type="float" name="floatsin" value="10.0"/>
<property type="float" name="floatsout" value="10.0"/>
<property type="bool" name="halui" value="False"/>
<property type="eval" name="halui_list" value="[]"/>
<property type="string" name="ioaddr" value="0"/>
<property type="string" name="ioaddr2" value="0"/>
<property type="string" name="ioaddr3" value="2"/>
<property type="bool" name="ladderconnect" value="True"/>
<property type="int" name="ladderhaltype" value="0"/>
<property type="string" name="laddername" value="custom.clp"/>
<property type="float" name="latency" value="50000.0"/>
<property type="eval" name="lparport" value="['0']"/>
<property type="string" name="machinename" value="mayo-mill"/>
<property type="bool" name="manualtoolchange" value="True"/>
<property type="eval" name="md5sums" value="[]"/>
<property type="bool" name="modbus" value="False"/>
<property type="int" name="number_pports" value="1"/>
<property type="int" name="ohmiccontact" value="0"/>
<property type="int" name="period" value="25000"/>
<property type="string" name="pin1" value="spindle-on"/>
<property type="string" name="pin10" value="home-x"/>
<property type="bool" name="pin10inv" value="False"/>
<property type="string" name="pin11" value="home-y"/>
<property type="bool" name="pin11inv" value="False"/>
<property type="string" name="pin12" value="home-z"/>
<property type="bool" name="pin12inv" value="False"/>
<property type="string" name="pin13" value="estop-ext"/>
<property type="bool" name="pin13inv" value="True"/>
<property type="string" name="pin14" value="unused-output"/>
<property type="bool" name="pin14inv" value="False"/>
<property type="string" name="pin15" value="probe-in"/>
<property type="bool" name="pin15inv" value="False"/>
<property type="string" name="pin16" value="unused-output"/>
<property type="bool" name="pin16inv" value="False"/>
<property type="string" name="pin17" value="unused-output"/>
<property type="bool" name="pin17inv" value="False"/>
<property type="bool" name="pin1inv" value="True"/>
<property type="string" name="pin2" value="xdir"/>
<property type="bool" name="pin2inv" value="False"/>
<property type="string" name="pin3" value="xstep"/>
<property type="bool" name="pin3inv" value="False"/>
<property type="string" name="pin4" value="ydir"/>
<property type="bool" name="pin4inv" value="False"/>
<property type="string" name="pin5" value="ystep"/>
<property type="bool" name="pin5inv" value="False"/>
<property type="string" name="pin6" value="zdir"/>
<property type="bool" name="pin6inv" value="False"/>
<property type="string" name="pin7" value="zstep"/>
<property type="bool" name="pin7inv" value="False"/>
<property type="string" name="pin8" value="unused-output"/>
<property type="bool" name="pin8inv" value="False"/>
<property type="string" name="pin9" value="unused-output"/>
<property type="bool" name="pin9inv" value="False"/>
<property type="int" name="pp2_direction" value="0"/>
<property type="string" name="pp2_pin1" value="unused-output"/>
<property type="string" name="pp2_pin10_in" value="unused-input"/>
<property type="int" name="pp2_pin10_in_inv" value="0"/>
<property type="string" name="pp2_pin11_in" value="unused-input"/>
<property type="int" name="pp2_pin11_in_inv" value="0"/>
<property type="string" name="pp2_pin12_in" value="unused-input"/>
<property type="int" name="pp2_pin12_in_inv" value="0"/>
<property type="string" name="pp2_pin13_in" value="unused-input"/>
<property type="int" name="pp2_pin13_in_inv" value="0"/>
<property type="string" name="pp2_pin14" value="unused-output"/>
<property type="int" name="pp2_pin14inv" value="0"/>
<property type="string" name="pp2_pin15_in" value="unused-input"/>
<property type="int" name="pp2_pin15_in_inv" value="0"/>
<property type="string" name="pp2_pin16" value="unused-output"/>
<property type="int" name="pp2_pin16inv" value="0"/>
<property type="string" name="pp2_pin17" value="unused-output"/>
<property type="int" name="pp2_pin17inv" value="0"/>
<property type="int" name="pp2_pin1inv" value="0"/>
<property type="string" name="pp2_pin2" value="unused-output"/>
<property type="string" name="pp2_pin2_in" value="unused-input"/>
<property type="int" name="pp2_pin2_in_inv" value="0"/>
<property type="int" name="pp2_pin2inv" value="0"/>
<property type="string" name="pp2_pin3" value="unused-output"/>
<property type="string" name="pp2_pin3_in" value="unused-input"/>
<property type="int" name="pp2_pin3_in_inv" value="0"/>
<property type="int" name="pp2_pin3inv" value="0"/>
<property type="string" name="pp2_pin4" value="unused-output"/>
<property type="string" name="pp2_pin4_in" value="unused-input"/>
<property type="int" name="pp2_pin4_in_inv" value="0"/>
<property type="int" name="pp2_pin4inv" value="0"/>
<property type="string" name="pp2_pin5" value="unused-output"/>
<property type="string" name="pp2_pin5_in" value="unused-input"/>
<property type="int" name="pp2_pin5_in_inv" value="0"/>
<property type="int" name="pp2_pin5inv" value="0"/>
<property type="string" name="pp2_pin6" value="unused-output"/>
<property type="string" name="pp2_pin6_in" value="unused-input"/>
<property type="int" name="pp2_pin6_in_inv" value="0"/>
<property type="int" name="pp2_pin6inv" value="0"/>
<property type="string" name="pp2_pin7" value="unused-output"/>
<property type="string" name="pp2_pin7_in" value="unused-input"/>
<property type="int" name="pp2_pin7_in_inv" value="0"/>
<property type="int" name="pp2_pin7inv" value="0"/>
<property type="string" name="pp2_pin8" value="unused-output"/>
<property type="string" name="pp2_pin8_in" value="unused-input"/>
<property type="int" name="pp2_pin8_in_inv" value="0"/>
<property type="int" name="pp2_pin8inv" value="0"/>
<property type="string" name="pp2_pin9" value="unused-output"/>
<property type="string" name="pp2_pin9_in" value="unused-input"/>
<property type="int" name="pp2_pin9_in_inv" value="0"/>
<property type="int" name="pp2_pin9inv" value="0"/>
<property type="int" name="pp3_direction" value="0"/>
<property type="bool" name="pyvcp" value="False"/>
<property type="bool" name="pyvcpconnect" value="True"/>
<property type="int" name="pyvcphaltype" value="0"/>
<property type="string" name="pyvcpname" value="custom.xml"/>
<property type="eval" name="qtplasmac_bcodes" value="['ohmic-test', 'probe-test 10', 'single-cut', 'cut-type', 'torch-pulse 0.5', 'framing', 'user-manual', '', '', '', '', '', '', '', '', '', '', '', '', '']"/>
<property type="eval" name="qtplasmac_bnames" value="['OHMIC\\TEST', 'PROBE\\TEST', 'SINGLE\\CUT', 'NORMAL\\CUT', 'TORCH\\PULSE', 'FRAMING', 'USER\\MANUAL', '', '', '', '', '', '', '', '', '', '', '', '', '']"/>
<property type="int" name="qtplasmacdro" value="0"/>
<property type="int" name="qtplasmacerror" value="0"/>
<property type="int" name="qtplasmacestop" value="0"/>
<property type="int" name="qtplasmacmode" value="0"/>
<property type="int" name="qtplasmacpause" value="0"/>
<property type="string" name="qtplasmacpmx" value=""/>
<property type="int" name="qtplasmacscreen" value="0"/>
<property type="int" name="qtplasmacstart" value="0"/>
<property type="int" name="qtplasmacstop" value="0"/>
<property type="float" name="s32in" value="10.0"/>
<property type="float" name="s32out" value="10.0"/>
<property type="bool" name="select_axis" value="False"/>
<property type="bool" name="select_gmoccapy" value="False"/>
<property type="bool" name="select_qtdragon" value="True"/>
<property type="bool" name="select_qtplasmac" value="False"/>
<property type="bool" name="sim_hardware" value="False"/>
<property type="int" name="spindlecarrier" value="100"/>
<property type="int" name="spindlecpr" value="100"/>
<property type="float" name="spindlefiltergain" value="0.01"/>
<property type="float" name="spindlenearscale" value="1.5"/>
<property type="float" name="spindlepwm1" value="0.2"/>
<property type="float" name="spindlepwm2" value="0.8"/>
<property type="int" name="spindlespeed1" value="100"/>
<property type="int" name="spindlespeed2" value="800"/>
<property type="float" name="stepspace" value="5000.0"/>
<property type="float" name="steptime" value="5000.0"/>
<property type="eval" name="tandemjoints" value="[]"/>
<property type="int" name="tempexists" value="0"/>
<property type="int" name="thcadenc" value="0"/>
<property type="int" name="uhomepos" value="0"/>
<property type="int" name="uhomesw" value="0"/>
<property type="float" name="uhomevel" value="1.5"/>
<property type="int" name="ulatchdir" value="0"/>
<property type="int" name="uleadscrew" value="5"/>
<property type="int" name="umaxacc" value="750"/>
<property type="int" name="umaxlim" value="200"/>
<property type="int" name="umaxvel" value="25"/>
<property type="int" name="umicrostep" value="2"/>
<property type="int" name="uminlim" value="0"/>
<property type="int" name="units" value="1"/>
<property type="int" name="upulleyden" value="1"/>
<property type="int" name="upulleynum" value="1"/>
<property type="int" name="uscale" value="0"/>
<property type="bool" name="usespindleatspeed" value="False"/>
<property type="int" name="usteprev" value="200"/>
<property type="int" name="vhomepos" value="0"/>
<property type="int" name="vhomesw" value="0"/>
<property type="float" name="vhomevel" value="1.5"/>
<property type="int" name="vlatchdir" value="0"/>
<property type="int" name="vleadscrew" value="5"/>
<property type="int" name="vmaxacc" value="750"/>
<property type="int" name="vmaxlim" value="200"/>
<property type="int" name="vmaxvel" value="25"/>
<property type="int" name="vmicrostep" value="2"/>
<property type="int" name="vminlim" value="0"/>
<property type="string" name="voltsfjumper" value="64"/>
<property type="float" name="voltsfullf" value="999.0"/>
<property type="string" name="voltsmodel" value="10"/>
<property type="int" name="voltsrdiv" value="20"/>
<property type="float" name="voltszerof" value="100.0"/>
<property type="int" name="vpulleyden" value="1"/>
<property type="int" name="vpulleynum" value="1"/>
<property type="int" name="vscale" value="0"/>
<property type="int" name="vsteprev" value="200"/>
<property type="float" name="xhomepos" value="0.0"/>
<property type="float" name="xhomesw" value="0.0"/>
<property type="float" name="xhomevel" value="-20.0"/>
<property type="int" name="xlatchdir" value="0"/>
<property type="float" name="xleadscrew" value="5.0"/>
<property type="float" name="xmaxacc" value="500.0"/>
<property type="float" name="xmaxlim" value="780.0"/>
<property type="float" name="xmaxvel" value="50.0"/>
<property type="float" name="xmicrostep" value="2.0"/>
<property type="float" name="xminlim" value="0.0"/>
<property type="float" name="xpulleyden" value="1.0"/>
<property type="float" name="xpulleynum" value="1.0"/>
<property type="float" name="xscale" value="80.0"/>
<property type="float" name="xsteprev" value="200.0"/>
<property type="float" name="yhomepos" value="0.0"/>
<property type="float" name="yhomesw" value="0.0"/>
<property type="float" name="yhomevel" value="-20.0"/>
<property type="int" name="ylatchdir" value="0"/>
<property type="float" name="yleadscrew" value="5.0"/>
<property type="float" name="ymaxacc" value="500.0"/>
<property type="float" name="ymaxlim" value="485.0"/>
<property type="float" name="ymaxvel" value="50.0"/>
<property type="float" name="ymicrostep" value="2.0"/>
<property type="float" name="yminlim" value="0.0"/>
<property type="float" name="ypulleyden" value="1.0"/>
<property type="float" name="ypulleynum" value="1.0"/>
<property type="float" name="yscale" value="80.0"/>
<property type="float" name="ysteprev" value="200.0"/>
<property type="float" name="zhomepos" value="0.0"/>
<property type="float" name="zhomesw" value="0.0"/>
<property type="float" name="zhomevel" value="10.0"/>
<property type="int" name="zlatchdir" value="0"/>
<property type="float" name="zleadscrew" value="5.0"/>
<property type="float" name="zmaxacc" value="500.0"/>
<property type="float" name="zmaxlim" value="0.0"/>
<property type="float" name="zmaxvel" value="25.0"/>
<property type="float" name="zmicrostep" value="2.0"/>
<property type="float" name="zminlim" value="-100.0"/>
<property type="float" name="zpulleyden" value="1.0"/>
<property type="float" name="zpulleynum" value="1.0"/>
<property type="float" name="zscale" value="80.0"/>
<property type="float" name="zsteprev" value="200.0"/>
</stepconf>

126
mesa.log Normal file
View File

@@ -0,0 +1,126 @@
nc@mayo-mill:~$ mesaflash --readhmid --device 7i92t
Configuration Name: HOSTMOT2
General configuration information:
BoardName : MESA7I92
FPGA Size: 20 KGates
FPGA Pins: 256
Number of IO Ports: 2
Width of one I/O port: 17
Clock Low frequency: 100.0000 MHz
Clock High frequency: 180.0000 MHz
IDROM Type: 3
Instance Stride 0: 4
Instance Stride 1: 64
Register Stride 0: 256
Register Stride 1: 256
Modules in configuration:
Module: DPLL
There are 1 of DPLL in configuration
Version: 0
Registers: 7
BaseAddress: 7000
ClockFrequency: 100.000 MHz
Register Stride: 256 bytes
Instance Stride: 4 bytes
Module: WatchDog
There are 1 of WatchDog in configuration
Version: 0
Registers: 3
BaseAddress: 0C00
ClockFrequency: 100.000 MHz
Register Stride: 256 bytes
Instance Stride: 4 bytes
Module: IOPort
There are 2 of IOPort in configuration
Version: 0
Registers: 5
BaseAddress: 1000
ClockFrequency: 100.000 MHz
Register Stride: 256 bytes
Instance Stride: 4 bytes
Module: QCount
There are 2 of QCount in configuration
Version: 2
Registers: 5
BaseAddress: 3000
ClockFrequency: 100.000 MHz
Register Stride: 256 bytes
Instance Stride: 4 bytes
Module: StepGen
There are 10 of StepGen in configuration
Version: 2
Registers: 10
BaseAddress: 2000
ClockFrequency: 100.000 MHz
Register Stride: 256 bytes
Instance Stride: 4 bytes
Module: PWM
There are 2 of PWM in configuration
Version: 0
Registers: 5
BaseAddress: 4100
ClockFrequency: 180.000 MHz
Register Stride: 256 bytes
Instance Stride: 4 bytes
Module: LED
There are 1 of LED in configuration
Version: 0
Registers: 1
BaseAddress: 0200
ClockFrequency: 100.000 MHz
Register Stride: 256 bytes
Instance Stride: 4 bytes
Configuration pin-out:
IO Connections for P2
DB25 pin# I/O Pri. func Sec. func Chan Sec. Pin func Sec. Pin Dir
1 0 IOPort None
14 1 IOPort PWM 0 PWM (Out)
2 2 IOPort StepGen 0 Step/Table1 (Out)
15 3 IOPort None
3 4 IOPort StepGen 0 Dir/Table2 (Out)
16 5 IOPort StepGen 4 Step/Table1 (Out)
4 6 IOPort StepGen 1 Step/Table1 (Out)
17 7 IOPort None
5 8 IOPort StepGen 1 Dir/Table2 (Out)
6 9 IOPort StepGen 2 Step/Table1 (Out)
7 10 IOPort StepGen 2 Dir/Table2 (Out)
8 11 IOPort StepGen 3 Step/Table1 (Out)
9 12 IOPort StepGen 3 Dir/Table2 (Out)
10 13 IOPort QCount 0 Quad-A (In)
11 14 IOPort QCount 0 Quad-B (In)
12 15 IOPort QCount 0 Quad-IDX (In)
13 16 IOPort None
IO Connections for P1
DB25 pin# I/O Pri. func Sec. func Chan Sec. Pin func Sec. Pin Dir
1 17 IOPort None
14 18 IOPort PWM 1 PWM (Out)
2 19 IOPort StepGen 5 Step/Table1 (Out)
15 20 IOPort None
3 21 IOPort StepGen 5 Dir/Table2 (Out)
16 22 IOPort StepGen 9 Step/Table1 (Out)
4 23 IOPort StepGen 6 Step/Table1 (Out)
17 24 IOPort None
5 25 IOPort StepGen 6 Dir/Table2 (Out)
6 26 IOPort StepGen 7 Step/Table1 (Out)
7 27 IOPort StepGen 7 Dir/Table2 (Out)
8 28 IOPort StepGen 8 Step/Table1 (Out)
9 29 IOPort StepGen 8 Dir/Table2 (Out)
10 30 IOPort QCount 1 Quad-A (In)
11 31 IOPort QCount 1 Quad-B (In)
12 32 IOPort QCount 1 Quad-IDX (In)
13 33 IOPort None

74
opis_polaczen_lpt.md Normal file
View File

@@ -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`.

28
test_inputs.hal Normal file
View File

@@ -0,0 +1,28 @@
# Testowy plik HAL do weryfikacji wejsc karty Mesa 7i92T/TF
# Uruchomienie: halrun -i -f test_inputs.hal
# 1. Utworzenie watku czasu rzeczywistego (servo-thread, 1ms)
loadrt threads name1=servo-thread period1=1000000
# 2. Zaladowanie sterownika Mesa z wylaczonymi enkoderami (num_encoders=0)
# Dzieki temu piny 10, 11, 12 beda dzialac jako zwykle GPIO
loadrt hostmot2
loadrt hm2_eth board_ip="192.168.1.121" config="num_encoders=0 num_stepgens=0"
# 3. Przypisanie funkcji odczytu i zapisu karty do watku
addf hm2_7i92.0.read servo-thread
addf hm2_7i92.0.write servo-thread
# 4. Utworzenie sygnalow testowych dla pieciu wejsc portu DB25 (P2)
net test-pin10 <= hm2_7i92.0.gpio.013.in
net test-pin11 <= hm2_7i92.0.gpio.014.in
net test-pin12 <= hm2_7i92.0.gpio.015.in
net test-pin13 <= hm2_7i92.0.gpio.016.in
net test-pin15 <= hm2_7i92.0.gpio.003.in
# 5. Uruchomienie watku
start
# Po uruchomieniu mozesz w konsoli halrun wpisac np.:
# show pin hm2_7i92.0.gpio
# watch pin hm2_7i92.0.gpio.013.in