开源改变世界

步进反转——步进脉冲泄漏 #302

推推 grbl 3年前 (2023-01-29) 121次浏览
关闭
jasonhillier 打开了这个问题 2019 年 12 月 8 日 · 2 条评论
关闭

步进反转——步进脉冲泄漏#302

jasonhillier 打开了这个问题 2019 年 12 月 8 日 · 2 条评论

注释

步进反转——步进脉冲泄漏 #302
杰森希利尔 评论了 2019 年 12 月 8 日  

您使用的是什么版本的固件?

commit b88d83f66e587ff65349630f6206f4d6e59b50b6
Merge: 11c8edc 137f9c2
Author: bdring <barton.dring@gmail.com>
Date:   Tue Nov 5 08:59:51 2019 -0600

    Merge pull request #283 from bdring/Devt

问题是否可重复?
是的。一次只移动一个轴时可以看到。

什么情况下会出现bug?
当 step invert mask ($2=1) 设置为 true 时,在任何轴上

步进反转——步进脉冲泄漏 #302

在上述情况下,您可以看到当通道 0 步进时,它会渗透到反向步进轴(通道 2)

如果我在硬件中将步进引脚反转为空闲状态,则不会流出($2=0)

步进反转——步进脉冲泄漏 #302

步进反转——步进脉冲泄漏 #302 jasonhillier 添加了 漏洞 有些东西不工作标签 2019 年 12 月 8 日
步进反转——步进脉冲泄漏 #302
作者
杰森希利尔 评论了 2019 年 12 月 8 日  

我还写了一个简单的草图,一个引脚或另一个引脚(来自高电平)的脉冲,并且没有渗漏。所以我确定这是一个软件错误,而不是硬件问题。在多个 esp32-s 上进行了测试以确保。

我有一种预感,它可能与 esp32 多线程有关。但我还没有时间去研究它。

步进反转——步进脉冲泄漏 #302
terjeio 评论了 2019 年 12 月 8 日  

对我来说,这看起来像是一个步骤反转问题。一种可能的解决方法是在 config.h 中启用 USE_RMT_STEPS。

编辑:尝试st.step_outbits在 st_wake_up()(第 677 行)中设置为 0,并out st.step_outbits ^= step_port_invert_mask; // Apply step port invert mask在 onStepperDriverTimer()(第 418 行)中注释,因为步进反转也在 set_stepper_pins_on() 中执行。IMO 这样做两次会导致问题。请注意,我尚未测试此更改,因此我可能是错的。