MESA VS. PARALELNÍ PORT

Pro pochopení této stránky je nutné znát, popřípadě donastudovat si:

  • princip řízení driveru pomocí STEP a DIR
  • elektronické zapojení driveru STEP a DIR
  • konfigurace GPIO
  • ochrana výstupů
  • konfigurace LCNC pomocí HALu

Hlavní myšlenkou LCNC při použití Mesa karet je rozdělení práce mezi procesor a FPGA hradlové pole tak, aby každá část hardwaru dělala to, co umí nejlépe. Z hlediska elektronického zapojení je jedno, zda používáme Mesu 7i96, nebo paralelní port, nebo Arduino+GRBL. Prostě fyzický STEP+DIR zapojíme na STEP+DIR driveru. Tady se nic nemění. Pokud nepoužíváme Mesu 7i96, je nutné zvážit nějakou ochranu výstupů.

Paralelní port STEP a DIR

Pokud použijeme LCNC s paralelním portem, tak nám konfigurátor v HALu vytvoří něco takového:

net Xstep => parport.0.pin-03-out

net Xdir => parport.0.pin-02-out

net Ystep => parport.0.pin-05-out

net Ydir => parport.0.pin-04-out

net Zstep => parport.0.pin-07-out

net Zdir => parport.0.pin-06-out

On toho vytvoří samozřejmně daleko více, ale toto je důležité pro pochopení toho, co se snažím vysvětlit. Jde o to, že LCNC vytvoří vytvoří virtuální signály, které se propojí přímo na výstupy paralelního portu.


Mesa 7i96 STEP a DIR

Pokud použijeme LCNC s Mesou 7i96, tak nám konfigurátor v HALu vytvoří něco takového:

#*******************
# AXIS X JOINT 0
#*******************
setp pid.x.Pgain [JOINT_0]P
setp pid.x.Igain [JOINT_0]I
setp pid.x.Dgain [JOINT_0]D
setp pid.x.bias [JOINT_0]BIAS
setp pid.x.FF0 [JOINT_0]FF0
setp pid.x.FF1 [JOINT_0]FF1
setp pid.x.FF2 [JOINT_0]FF2
setp pid.x.deadband [JOINT_0]DEADBAND
setp pid.x.maxoutput [JOINT_0]MAX_OUTPUT
setp pid.x.error-previous-target true
# This setting is to limit bogus stepgen
# velocity corrections caused by position
# feedback sample time jitter.
setp pid.x.maxerror 0.012700

net x-index-enable <=> pid.x.index-enable
net x-enable => pid.x.enable
net x-pos-cmd => pid.x.command
net x-pos-fb => pid.x.feedback
net x-output <= pid.x.output

# Step Gen signals/setup
setp hm2_7i96.0.stepgen.00.dirsetup [JOINT_0]DIRSETUP
setp hm2_7i96.0.stepgen.00.dirhold [JOINT_0]DIRHOLD
setp hm2_7i96.0.stepgen.00.steplen [JOINT_0]STEPLEN
setp hm2_7i96.0.stepgen.00.stepspace [JOINT_0]STEPSPACE
setp hm2_7i96.0.stepgen.00.position-scale [JOINT_0]STEP_SCALE
setp hm2_7i96.0.stepgen.00.step_type 0
setp hm2_7i96.0.stepgen.00.control-type 1
setp hm2_7i96.0.stepgen.00.maxaccel [JOINT_0]STEPGEN_MAXACCEL
setp hm2_7i96.0.stepgen.00.maxvel [JOINT_0]STEPGEN_MAXVEL
setp hm2_7i96.0.stepgen.00.direction.invert_output true

# ---closedloop stepper signals---
net x-pos-cmd <= joint.0.motor-pos-cmd
net x-vel-cmd <= joint.0.vel-cmd
net x-output <= hm2_7i96.0.stepgen.00.velocity-cmd
net x-pos-fb <= hm2_7i96.0.stepgen.00.position-fb
net x-pos-fb => joint.0.motor-pos-fb
net x-enable <= joint.0.amp-enable-out
net x-enable => hm2_7i96.0.stepgen.00.enable

Zde najednou vidíme, že tu není nic, co by alespoň připomínalo STEP a DIR. Je to z toho důvodu, že do Mesy jsou posílány jen částečně zpracované informace, které pak FPGA hradlové pole zpracovává na výsledný výstup STEP DIR.

Pokud je Mesa 7i96 náš první hardware pro LCNC, tak tento článek je pro uživatele jen pro informaci. Pokud plánujete přejít z paralelního portu, tak to pro Vás taky nebude žádná hrůza, protože pro první výkop HALu stejně použijete konfigurátor.


Mesa 7i96 výstupy

Pokud chceme na kartě používat výstupy, tak jsou dvě možnosti. Ta první  možnost je použít GPIO piny na konektoru P1. Nezapomňte je elektronicky ochránit. Nejdřív nastavíme, že pin je výstup:

setp hm2_7i96.0.gpio.036.is_output true

a poté jej již můžeme používat:

net Mist-on => hm2_7i96.0.gpio.036.out


Druhá možnost je použití již ochráněných výstupů. Musí se to udělat takto:

net spindle-enable => hm2_7i96.0.ssr.00.out-01

Proč tomu tak je, je popsáno ZDE:

zz912 | Všechna práva vyhrazena 2021
Vytvořeno službou Webnode
Vytvořte si webové stránky zdarma! Tento web je vytvořený pomocí Webnode. Vytvořte si vlastní stránky zdarma ještě dnes! Vytvořit stránky