开源改变世界

用作主轴启用信号时的 I2SO 错误 #287

推推 grbl 3年前 (2023-02-05) 301次浏览
关闭
抢劫 打开了这个问题 2022 年 2 月 10 日 · 5 条评论
关闭

用作主轴启用信号时的 I2SO 错误#287

抢劫 打开了这个问题 2022 年 2 月 10 日 · 5 条评论

评论

用作主轴启用信号时的 I2SO 错误 #287
抢劫 评论了 2022 年 2 月 10 日  

你好 !
当使用 I2SO 输出启用主轴时,其他 I2SO 输出随机闪烁,它会导致过多的不当步进脉冲和不稳定的轴运动。我用TMC2209做驱动,用UART来控制。

为了解决这个问题,我在 PWMSpindle.cpp 文件中注释了下面的行(第 70 行),并且我不再遇到这个问题。

void IRAM_ATTR PWM::setSpeedfromISR(uint32_t dev_speed) {
    // set_enable(gc_state.modal.spindle != SpindleState::Disable);
    set_output(dev_speed);
}

我使用的是固件 3.3.2,我可以在主轴配置上重复将启用引脚从 I2SO 更改为 gpio 引脚的问题。也许,要解决这个问题,只要在信号变化时调用 set_enable 就可以解决。

似乎刷新率,当用作主轴的输出时,太高了,没有给 74HC595 时间来正常运行。

这是我的配置:

板:Roby CNC
名称:Roby CNC Multibot V2

arc_tolerance_mm: 0.002
junction_deviation_mm: 0.010
verbose_errors: false
report_inches: false
enable_parking_override_control: false
use_line_numbers: false

步进:
引擎:I2S_STREAM
idle_ms:250
pulse_us:4
dir_delay_us:1
disable_delay_us:0

轴:
shared_stepper_disable_pin:NO_PIN

x:
steps_per_mm: 400.0
max_rate_mm_per_min: 1200.0
acceleration_mm_per_sec2: 100.0
max_travel_mm: 350.0
soft_limits: true
homing:
cycle: 2
positive_direction: true
mpos_mm: 1
feed_mm_per_min: 100.0
seek_mm_per_min: 200.0
settle_ms:
1.0 seek_scaler
0.1.0 seek_scaler0

motor0:
  limit_neg_pin: gpio.36
  limit_pos_pin: gpio.39
  hard_limits: true
  pulloff_mm: 1.000
  tmc_2209:
    uart:
      rxd_pin: gpio.18
      txd_pin: gpio.19
      baud: 115200
      mode: 8N1
    addr: 0
    r_sense_ohms: 0.110
    run_amps: 1.200
    hold_amps: 0.100
    microsteps: 16
    stallguard: 30
    stallguard_debug: false
    toff_disable: 0
    toff_stealthchop: 5
    toff_coolstep: 3
    run_mode: StealthChop
    homing_mode: StealthChop
    use_enable: true
    disable_pin: I2SO.0
    direction_pin: I2SO.1
    step_pin: I2SO.2

y:
steps_per_mm: 400.0
max_rate_mm_per_min: 1200.0
acceleration_mm_per_sec2: 100.0
max_travel_mm: 450.0
soft_limits: true
homing:
cycle: 2
positive_direction: true
mpos_mm: 1
feed_mm_per_min: 100.0
seek_mm_per_min: 200.0
settle_ms:
501.seek_scaler:
101.seek_scaler: 1

motor0:
  limit_neg_pin: gpio.34
  limit_pos_pin: gpio.35
  hard_limits: true
  pulloff_mm: 1.000
  tmc_2209:
    addr: 1
    r_sense_ohms: 0.110
    run_amps: 1.200
    hold_amps: 0.100
    microsteps: 16
    stallguard: 30
    stallguard_debug: false
    toff_disable: 0
    toff_stealthchop: 5
    toff_coolstep: 3
    run_mode: StealthChop
    homing_mode: StealthChop
    use_enable: true
    disable_pin: I2SO.4
    direction_pin: I2SO.5
    step_pin: I2SO.6
motor1:
  limit_neg_pin: gpio.32
  limit_pos_pin: gpio.33
  hard_limits: true
  pulloff_mm: 1.000
  tmc_2209:
    addr: 2
    r_sense_ohms: 0.110
    run_amps: 1.200
    hold_amps: 0.100
    microsteps: 16
    stallguard: 30
    stallguard_debug: false
    toff_disable: 0
    toff_stealthchop: 5
    toff_coolstep: 3
    run_mode: StealthChop
    homing_mode: StealthChop
    use_enable: true
    disable_pin: I2SO.8
    direction_pin: I2SO.9
    step_pin: I2SO.10

z:
steps_per_mm: 400.0
max_rate_mm_per_min: 1000.0
acceleration_mm_per_sec2: 100.0
max_travel_mm: 60.0
soft_limits: true
homing:
cycle: 1
positive_direction: true
mpos_mm: 1
feed_mm_per_min: 100.0
seek_mm_per_min: 200.0
settle_ms:
501 feed_0.1:
0 seek_scaler 0

motor0:
  limit_neg_pin: gpio.25
  limit_pos_pin: gpio.26
  hard_limits: true
  pulloff_mm: 1.000
  tmc_2209:
    addr: 3
    r_sense_ohms: 0.110
    run_amps: 1.200
    hold_amps: 0.100
    microsteps: 16
    stallguard: 30
    stallguard_debug: false
    toff_disable: 0
    toff_stealthchop: 5
    toff_coolstep: 3
    run_mode: StealthChop
    homing_mode: StealthChop
    use_enable: true
    disable_pin: I2SO.12
    direction_pin: I2SO.13
    step_pin: I2SO.14

PWM:
pwm_hz: 5000
output_pin: gpio.23
enable_pin: I2SO.16
direction_pin: I2SO.17
disable_with_s0: false
s0_with_disable: true
spinup_ms: 0
spindown_ms: 0
tool_num: 0
speed_map: 0=0% 9000=100%

激光:
pwm_hz:5000
output_pin:gpio.15
enable_pin:I2SO.18
disable_with_s0:false
s0_with_disable:true
tool_num:10
speed_map:0=0.000% 255=100.000%

继电器:
output_pin:I2SO.19

冷却剂:
flood_pin:I2SO.20
mist_pin:I2SO.21 delay_ms
:0

i2so:
bck_pin: gpio.22
data_pin: gpio.21
ws_pin: gpio.17

探头:
引脚:gpio.27:low:pu
check_mode_start: true

问候,
罗伯西

用作主轴启用信号时的 I2SO 错误 #287 抢劫 添加了 漏洞 仅供开发者使用标签 2022 年 2 月 10 日
用作主轴启用信号时的 I2SO 错误 #287

我可以确认盗窃问题,使用 4 端口 5v 输出模块设置新的 Dring 6 Pack 外部 CNC 控制器板 我注意到当我移动轴时输出闪烁,如果我更改继电器:配置从使用 ISO 输出到 GPIO问题消失了。

我还没有尝试修改代码。

配置文件:

板:6 包
名称:6 包外部 XYYZAB
步进:
引擎:I2S_STREAM
idle_ms:100
pulse_us:4
dir_delay_us:1000
disable_delay_us:0

axes:
shared_stepper_disable_pin: gpio.25:low
x:
steps_per_mm: 568.7203
max_rate_mm_per_min: 5000.000
acceleration_mm_per_sec2: 5.000
max_travel_mm: 360.000
soft_limits: true
homing:
cycle: 2
positive_direction: false
mpos_mm:
-10.00 feed_mm_per_min: 100.000
seek_mm_per_min: 800.000
settle_ms: 750
seek_scaler: 1.100
feed_scaler:1.100

motor0:
  limit_neg_pin: NO_PIN
  limit_pos_pin: gpio.34:high
  limit_all_pin: NO_PIN
  hard_limits: false
  pulloff_mm: 1.000
  standard_stepper:
    step_pin: I2SO.2
    direction_pin: I2SO.1
    disable_pin: I2SO.0

y:
steps_per_mm: 568.7203
max_rate_mm_per_min: 5000.000
acceleration_mm_per_sec2: 5.000
max_travel_mm: 270.000
soft_limits: true
homing:
cycle: 2
positive_direction: true
mpos_mm: 10.000
feed_mm_per_min: 100.000
seek_mm_per_min: 200.000
settle_ms: 750
seek_scaler: 1.100
feed_scaler: 1.100

motor0:
  limit_neg_pin: NO_PIN
  limit_pos_pin: gpio.35:high
  limit_all_pin: NO_PIN
  hard_limits: false
  pulloff_mm: 1.000
  standard_stepper:
    step_pin: I2SO.5
    direction_pin: I2SO.4
    disable_pin: I2SO.7
motor1:
  limit_neg_pin: NO_PIN
  limit_pos_pin: gpio.32:high
  limit_all_pin: NO_PIN
  hard_limits: false
  pulloff_mm: 1.000
  standard_stepper:
    step_pin: I2SO.10
    direction_pin: I2SO.9
    disable_pin: I2SO.8

z:
steps_per_mm: 568.7203
max_rate_mm_per_min: 5000.000
acceleration_mm_per_sec2: 5.000
max_travel_mm: 70.000
soft_limits: true
homing:
cycle: 1
positive_direction: true
mpos_mm: 35.000
feed_mm_per_min: 100.000
seek_mm_per_min: 800.000
settle_ms: 750
seek_scaler: 1.100
feed_scaler: 1.100

motor0:
  limit_neg_pin: NO_PIN
  limit_pos_pin: gpio.33:high
  limit_all_pin: NO_PIN
  hard_limits: false
  pulloff_mm: 1.000
  standard_stepper:
    step_pin: I2SO.13
    direction_pin: I2SO.12
    disable_pin: I2SO.15

i2so:
bck_pin: gpio.22
data_pin: gpio.21
ws_pin: gpio.17

spi:
miso_pin: gpio.19
mosi_pin: gpio.23
sck_pin: gpio.18

sdcard:
card_detect_pin: NO_PIN
cs_pin: gpio.5

冷却剂:
flood_pin:NO_PIN
mist_pin:NO_PIN delay_ms
:0

探针:
引脚:gpio.39
check_mode_start:真

user_outputs:
analog0_pin: NO_PIN
analog1_pin: NO_PIN
analog2_pin: NO_PIN
analog3_pin: NO_PIN
analog0_hz: 5000
analog1_hz: 5000
analog2_hz: 5000
analog3_hz: 5000
digital0_pin: gpio.14
digital1_pin: gpio.13
digital2_pin: I2SO.25
digital3_pin4: I2SO.

开始:
must_home:假

继电器:
direction_pin:NO_PIN
output_pin:GPIO.2 ##### 如果将其更改为 ISO.27、ISO.24 和 ISO.25 闪烁
enable_pin:NO_PIN
disable_with_s0:false
s0_with_disable:true
spinup_ms:0
spindown_ms:0
tool_num: 0
速度图:0=0.000% 0=100.000% 1=100.000%

继电器:
direction_pin:NO_PIN
output_pin:gpio.4 ##### 如果将其更改为 ISO.26、ISO.24 和 ISO.25 闪烁
enable_pin:NO_PIN
disable_with_s0:false
s0_with_disable:true
spinup_ms:0
spindown_ms:0
tool_num: 100
速度图:0=0.000% 0=100.000% 1=100.000%

谢谢,
埃里克。

用作主轴启用信号时的 I2SO 错误 #287

尝试 I2S_STATIC 模式,看看问题是否仍然出现在该模式下。

用作主轴启用信号时的 I2SO 错误 #287
埃里克-ERGS 评论了 2022 年 10 月 9 日 通过电子邮件
用作主轴启用信号时的 I2SO 错误 #287
作者

你好,埃里克和米奇。
很高兴听到这个问题有解决方案。明天我会试试看。

保持良好的工作,伙计们。

Greetings.
bdring 添加了引用此问题的提交 2022 年 10 月 10 日

用作主轴启用信号时的 I2SO 错误 #287
作者

嗨米奇,

版本 3.6.3 在我的设置上使用 I2S_STREAM 进行了测试,现在可以使用了。恭喜!

祝你有美好的一天,谢谢。