开源改变世界

移动 PIN 分配和兼容性? #77

推推 grbl 2年前 (2023-01-21) 188次浏览

关闭
chamnit 打开了这个问题 2012 年 3 月 11 日 · 10 条评论
关闭

移动 PIN 分配和兼容性?#77

chamnit 打开了这个问题 2012 年 3 月 11 日 · 10 条评论

注释

移动 PIN 分配和兼容性? #77
成员

我想看看是否有人需要以任何特定方式重新分配 PIN 以更好地适应硬件/屏蔽。,因为他们中的很多人使用更高数量的数字引脚用于 SD 卡或第 4 轴。据我所知,大多数人需要将 Arduino 的前 9 个数字引脚设置在同一个位置 (0-8),用于串行通信、步进脉冲、方向和启用。现在,较高的引脚 (9-13) 已分配给主轴和限制/归位。

关于将引脚移至模拟端的另一个问题线程已经进行了一些讨论。即主轴和限位销,并将限位销减少到一个销,而不是每个轴一个。我们还将为那些希望拥有用于进给保持、循环开始(又名恢复)和中止的物理按钮的人们添加运行时命令的引脚输出。

例如,这是一个建议的引脚布局。

D0: RX Serial (Same)
D1: TX Serial (Same)
D2: X Step (Same)
D3: Y Step (Same)
D4: Z Step (Same)
D5: X Dir (Same)
D6: Y Dir (Same)
D7: Z Dir (Same)
D8: Stepper Enable (Same)
D9: A Step (New. Reserved for 4th axis)
D10: A Dir (New. Reserved for 4th axis)
D11: (Reserved for users/shields?)
D12: (Reserved for users/shields?)
D13: (Reserved for users/shields?)

A0: Cycle Start (New)
A1: Feed Hold (New)
A2: Abort (New)
A3: Limit/Homing (Condensed to One Pin)
A4: Spindle Enable (Moved)
A5: Spindle Dir (Moved)

这是另一个添加慢跑引脚的建议:

D0: RX Serial (Same)
D1: TX Serial (Same)
D2: X Step (Same)
D3: Y Step (Same)
D4: Z Step (Same)
D5: X Dir (Same)
D6: Y Dir (Same)
D7: Z Dir (Same)
D8: Stepper Enable (Same)
D9: A Step (New. Reserved for 4th axis)
D10: A Dir (New. Reserved for 4th axis)
D11: Limit/Homing (Condensed to one pin)
D12: Spindle Enable (Same)
D13: Spindle Dir (Same)

A0: Cycle Start (New)
A1: Feed Hold (New)
A2: Abort (New)
A3: Jogging Toggle?
A4: Jogging Dir?
A5: (Misc user command?)
移动 PIN 分配和兼容性? #77

我们没有任何资源可以在模拟引脚上使用 TWI 接口来扩展 I/O 吗?

移动 PIN 分配和兼容性? #77
成员作者

我没有玩过 Arduino 的 TWI/I2C 接口,也不熟悉它们的工作原理。引脚是否可以重新分配。不管怎样,这就是我提出这个问题的原因。可能有很多我不知道的不同硬件和外部接口。那么 TWI 接口是否只需要 A4 和 A5 引脚?这些是不是需要留着以后扩展用?

移动 PIN 分配和兼容性? #77
成员作者

现在我想起来了,TWI 接口是否是我们可以连接外部 SD 卡而无需将其集成到 grbl 中的好方法?我知道 FAT 库太大了,基本上会占用 grbl 的内存空间。

移动 PIN 分配和兼容性? #77

是的,TWI 专门使用这些引脚。它是硬件 TWI,不是软件。

与 Uno 相比,SD 卡访问更可能是 Arduino Mega 的任务。
或者我们确实需要某种带有额外控制器的屏蔽来访问 SD 卡并通过 I/O 扩展将其数据流式传输到 Arduino。

移动 PIN 分配和兼容性? #77
成员作者

很高兴知道。谢谢!同意使用 Mega 或类似的 SD 卡,但我想看看我们可以在功能方面将什么塞进 Uno。使用 TWI 可能是一种方法,但很难说库使用了多少内存,尽管它看起来并没有那么多。无论如何,这将是 v0.9 或 v1.0 功能,但我认为保留这两个引脚以备将来使用是个好主意。

所以这是一个更新的提议布局:

D0: RX Serial (Same)
D1: TX Serial (Same)
D2: X Step (Same)
D3: Y Step (Same)
D4: Z Step (Same)
D5: X Dir (Same)
D6: Y Dir (Same)
D7: Z Dir (Same)
D8: Stepper Enable (Same)
D9: X-Limit (or 4th-axis Step)
D10: Y-Limit (or 4th axis Dir)
D11: Z-Limit (or Limits. All limits condensed to one pin)
D12: Spindle Enable (Same)
D13: Spindle Dir (Same)

A0: Cycle Start (New)
A1: Feed Hold (New)
A2: Grbl Reset/Abort (New)
A3: Misc Use: Jogging Toggle
A4: Misc Use: TWI/I2C, Jogging Direction, Etc.
A5: Misc Use: TWI/I2C, Jogging Axis Select, Etc.
移动 PIN 分配和兼容性? #77

桑尼,你对这个话题有什么进一步的想法吗?我认为 D9 和 D10 很可能是第 4 轴,并且限制/归位将结合在一起。另外,循环启动、进给保持和 Grbl 复位引脚是否会处于低电平状态?不确定其他的慢跑针是如何工作的,但大概它们也处于低电平状态?

移动 PIN 分配和兼容性? #77
成员作者

不,不是此刻。几个月前,我开始玩循环启动/保持/重置控件,但并没有走得太远。我想我因为信号的去抖动和如何处理它而分心了。不确定高/低有效。

就组合限位销而言,我认为这些销主要仅用于归位。硬限位可以通过将限位开关直接连接到 Arduino 复位引脚来完成,这将冻结步进器并完全重置 Grbl。如果归位例程更改为一次归位一个轴,那么一个针应该没问题。一旦归位程序全部解决,我仍在考虑安装软限制。

我没有想太多关于慢跑销如何工作,但我想切换会简单地启动和停止运动。+/- 的方向是高或低。轴选择可以是增量切换,每次按下都会在 x、y、z(和 a)轴之间循环。同样,去抖可能是一个需要解决的问题。

移动 PIN 分配和兼容性? #77

谢谢回复。是的,我想我们之前讨论过去抖动。必须在某处找到另一个计时器或以某种方式构建采样器/积分器。逻辑标准是低电平有效,所以我认为这是最有可能的输入。归巢是一种权衡。我一次做一个轴,因为它更简单。

移动 PIN 分配和兼容性? #77

曾经总是可以在硬件中去抖动。这是几个门。使用 i2c 端口扩展器进行额外的输入和输出将非常容易。使用 i2c 代码也非常简单。如果有人感兴趣,我可以进行硬件设计和示例 i2c 代码。它还将提供一种直接的方式来驱动外部设备,例如 LCD 面板等。我在想一对端口扩展器提供额外的 16 个端口和 8 个去抖动电路,你可以跳转到任何输入。

然而,请注意,3 轴上有 3 个用于限位开关的引脚。这是假设 AXIS_MIN 和 AXIS_MAX 的开关是“或”在一起的吗?有两个开关,AXIS_MAX 和 AXIS_MIN 让回家、校准等生活变得更轻松,不是吗?

移动 PIN 分配和兼容性? #77

不确定这是否仍然有效,但我很想看看/玩一个与此一起使用的端口扩展器的例子。尝试为我的 GRBL 设置添加一些额外功能:SD 卡、显示器、慢跑/快速拨盘、轴选择等。

喜欢 (0)