注释
为什么要添加硬件来做一些代码已经用几行代码做的事情? |
为什么不只使用简单的逻辑电平转换器。这就是他们的目的。 |
带有适当上拉/下拉电阻的简单 mosfet(电平转换器)。将
|
电光 评论 on 11 Mar 2016
小心常见的单 MOSFET 电平转换器,例如 Sparkfun 或 Adafruit 的电平转换器。 |
同意。并非所有的 MOSFET 都是平等的,因此请指定工作的部分。
|
我应该澄清一下 – TXB0104 可能是矫枉过正,因为它是双向的,这也是边缘加速发挥作用的部分原因。 |
问题不是mosfet规格,而是上拉电阻的使用。您需要推挽式输出来获得快速上升和下降时间。否则你很可能错过了步进脉冲。 |
如果您使用带有光隔离输入的步进驱动器或光隔离分线板,您可能只需更换限流电阻以适应较低的驱动电压(尽管检查 GPIO 是否可以处理 LED 驱动电流)。 |
“为什么要添加硬件来完成代码已经用几行代码完成的事情?” 因为有时硬件可以做得更好。如果你想要 1us 的设置时间延迟是尴尬的,尤其是在更快的 cpu 上,你必须引入一个等待循环。这是燃烧循环,当它们可以做其他事情时什么都不做。 “(尽管检查 GPIO 是否可以处理 LED 驱动电流)。” 使用 74HCT14 的另一个好理由。但是如果你要添加一个缓冲区,一些额外的门可以添加功能。如果您使用 3 输入 NOR 门 (74HCT27) 且 3 输入连接到每个 STEP_X、Y、Z 输出,并且其输出连接到 R1,则不需要 STEP_CLK 输出。这些芯片每个只需 10 美分,并且可以从多家制造商处获得。 |
“如果您使用 MOSFET 电平转换器,您将需要使用 74HCT14 来缓冲它们,” 为什么?我与在 Arduino Due 上使用 TinyG2 的人有过接触,他们报告说,仅便宜的逻辑电平转换器就可以很好地连接到外部步进驱动器。 不是另一种选择是使用高速光耦合器来执行电平转换吗? |
步进驱动器可以处理哪些速度信号? 前几天我查看了 A4988 驱动程序,我认为它们的最大频率可以达到
|
74HCT14 实际上是一个用于 3.3v 至 5v 的 6 通道 MOSFET 电平转换器(反相),它还提供高输入阻抗/低输出阻抗,并且不需要偏置组件。它是通用的,成本实际上是几美分,并且有多种包装可供选择。查看数据表,特别是 74HCT 版本。它还提供迟滞,有助于防止振荡并提高抗噪能力。 |
我的 CNC 使用更大的步进驱动器,其中大多数的规格约为 200-400 KHz 的最大步进速率。不确定较小的驱动程序。 |
不需要“STEP_CLK”输出的电平转换器/缓冲器的改进版本。我使用 NPN 晶体管和 4 个电阻器作为 3 输入或非门。 |
莫菲 评论 on 11 Mar 2016
如果 GRBL 迁移到更新的 ARM 样式板,一些旧系统将需要将输出电平从 3.3v 提升到 5v。我包括一个可能的解决方案。
GRBL_3v3_to_5v.pdf
该电路将使用 3 个 14 针 IC,这些 IC 采用 PDIP 或非表面贴装封装,便于爱好者制造。缓冲器 IC 将进行电平转换以及为信号提供驱动。包含一个额外信号“STEP_CLK”,它为 STEP_X_OUT 等信号提供 1us 延迟。这将为在生成阶跃脉冲之前施加的 DIR_X_OUT 等信号提供合适的设置时间。
这个想法是 STEPPER 定时器中断将同时输出所有 step、dir 和 STEP_CLK,并且 step 脉冲上的硬件延迟将提供合适的设置时间。然后,STEPPER 定时器中断将在 10 微秒后重置步进和 STEP_CLK 脉冲。这将稍微简化 STEPPER 定时器中断。这也意味着随着处理器变得更快,将浪费更少的周期用于步骤设置时间延迟。
该电路还将具有接头,以便用户可以在正常输出和反相输出之间进行选择,这意味着也可以移除反相掩码。