开源改变世界

Phase-Style 引脚设置而不是 Step/Dir #109

推推 grbl 3年前 (2023-01-21) 108次浏览

关闭
TunaTom 打开了这个问题 2012 年 7 月 8 日 · 5 条评论
关闭

Phase-Style 引脚设置而不是 Step/Dir#109

TunaTom 打开了这个问题 2012 年 7 月 8 日 · 5 条评论

注释

Phase-Style 引脚设置而不是 Step/Dir #109

我制作了一个简单的步进驱动器,如下所述:http: //arduino.cc/en/Reference/StepperBipolarCircuit

不幸的是,这种驱动器需要在半步相位(00、01、11、10)中为引脚通电,而不是 grbl 使用的步进/方向样式。

“它能有多难?” 我想到了一个新的代码路径并将其连接到 stepper.c 中,它将 out_bits 的 step/dir-bits 转换为我的驱动程序需要的相位样式位。我做的一切都是对的:作为一名 Java 开发人员,我首先用 Java 编写代码以确保它是正确的;我开发了所有测试驱动的东西,所以我可以证明它有效;我移植了测试以确保 C 代码与 Java 代码的功能相同。当然结果是预期的:没有任何效果 :P
似乎 grbl 的位魔术与我预期的不同。

我现在对如何进行有点不知所措,因为我似乎无法通过串行编写调试消息。我什至试图将整个逻辑延迟到足以让我看到 LED 闪烁的程度,但这并没有真正起作用——它仍然是快速的方式。

我想我现在可以使用的是关于如何查看 out_bits 的实际值的提示 – 无论是通过串行控制台还是通过 LED 或其他方式。

Phase-Style 引脚设置而不是 Step/Dir #109
成员

我认为这样的事情相对容易做到。您可以劫持 Timer2 溢出中断来执行每个半步阶段。目前,它在主 Timer1 中断启动后完成步进脉冲。您需要做的就是跟踪它在做什么,并在每一步后重置 Timer2。

查看步进器引脚中发生的情况的最佳方法是示波器(如果有的话)。如果不是,您可以尝试调整定时器预分频器,以便您可以看到它们在 LED 上做它们的事情。

Phase-Style 引脚设置而不是 Step/Dir #109
作者

谢谢,“时间预分频器”是线索:在阅读了一些关于如何实际配置中断之后,我能够让它运行,现在它可以正常工作(至少 LED 可以正常工作 :)

目前,我在 4 个地方的代码周围设置了 if-guards:将 out_bits 分配给 stepping_port 和 Timer2 代码是预期的以及我之前拥有的。
令我惊讶的是,我不得不阻止减速/加速代码和步进器反转掩码的应用。

如果有人对代码审查以及合并到主线感兴趣,我很乐意创建一个补丁。

Phase-Style 引脚设置而不是 Step/Dir #109
成员

是的,我也在紧要关头做过,当时我的电路很嘈杂,我的 Easydrivers 也有问题。它似乎在中等进给率下运行良好。至于你最初的问题,我使用逻辑分析仪调试高频位碰撞的东西。现在它们的价格相当合理。我的是 Saleae,我真的很喜欢它: http: //www.saleae.com/

Phase-Style 引脚设置而不是 Step/Dir #109
作者

我目前的设置实际上只不过是让我的脚弄湿 cnc-stuff 的入门书。稍后(阅读:几年后)我可能会变得更认真一点,甚至得到一个 logix 分析器,但不是现在
暂时,我很高兴摆弄定时器预分频器帮助我理解足以使我的代码跑步。

Phase-Style 引脚设置而不是 Step/Dir #109

TunaTom,你设法让它运行了吗?那你是怎么接线的?

喜欢 (0)