注释
为什么要添加硬件来完成代码已经用几行代码完成的事情? |
为什么不只使用简单的逻辑电平转换器。这就是它们的用途。 |
带有适当上拉/下拉电阻的简单 mosfet(电平转换器)。将
|
小心常见的单 mosfet 电平转换器,例如 Sparkfun 或 Adafruit 的电平转换器。 |
同意。并非所有的 mosfets 都是平等的,因此请指定工作的部分。
|
我应该澄清一下——TXB0104 可能有点矫枉过正,因为它是双向的,这也是边缘加速发挥作用的部分原因。 |
问题不在于 mosfet 规格,而在于上拉电阻的使用。您需要推挽式输出以获得快速上升和下降时间。否则,您很可能会错过步进脉冲。 |
如果您使用的是带光隔离输入或光隔离分线板的步进驱动器,您可能只需要更换限流电阻以适应较低的驱动电压(检查 GPIO 是否可以处理 LED 驱动电流)。 |
“为什么要添加硬件来完成代码已经用几行代码完成的事情?” 因为有时硬件可以做得更好。设置时间的 1us 延迟很尴尬,如果你想要 1us,尤其是在更快的 cpu 上,你必须引入一个等待循环。这是燃烧周期,当它们可以做其他事情时什么都不做。 “(检查 GPIO 是否可以处理 LED 驱动电流)。” 使用 74HCT14 的另一个好理由。但是如果你要添加一个缓冲区,一些额外的门可以增加功能。如果您使用 3 输入或非门 (74HCT27),并且 3 个输入连接到每个 STEP_X、Y、Z 输出,并且其输出连接到 R1,则 STEP_CLK 输出是不必要的。这些芯片每个仅需 10 美分,并且可以从多家制造商处轻松获得。 |
“如果你使用 MOSFET 电平转换器,你将需要用 74HCT14 来缓冲它们,” 为什么?我接触过在 Arduino Due 上使用 TinyG2 的人,他们报告说廉价的逻辑电平转换器单独工作就可以很好地连接到外部步进驱动器。 难道不是另一种选择是使用高速光耦合器来执行电平转换吗? |
步进驱动器可以处理哪些速度信号? 前几天我看了 A4988 驱动程序,我认为它们最高可以达到
|
74HCT14 实际上是一个 6 通道 MOSFET 电平转换器(反相),适用于 3.3v 至 5v,还提供高输入阻抗/低输出阻抗,并且不需要偏置组件。它是通用的,只需几美分,并且有多种包装可供选择。查看数据表,特别是 74HCT 版本。它还提供滞后作用,有助于防止振荡并提高抗噪性。 |
我的 CNC 使用更大的步进驱动器,其中大部分的规格大约为 200-400 KHz 最大步进率。不确定较小的驱动程序。 |
不需要“STEP_CLK”输出的电平转换器/缓冲器的改进版本。我使用一个 NPN 晶体管和 4 个电阻作为 3 输入或非门。 |
如果 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,并且步进脉冲上的硬件延迟将提供合适的设置时间。然后,STEPPER 定时器中断会在 10us 后重置步进和 STEP_CLK 脉冲。这会稍微简化 STEPPER 定时器中断。这也意味着随着处理器速度的加快,用于步骤设置时间延迟的周期将减少。
该电路还将具有标题,以便用户可以在正常输出和反相输出之间进行选择,这意味着也可以删除反相掩码。