开源改变世界!!

使用引脚 12 #474

推推 grbl 2年前 (2022-10-20) 540次浏览 0个评论
关闭
atlaste 打开了这个问题 on 12 Jul 2020 · 19 条评论
关闭

使用引脚 12第474章

atlaste 打开了这个问题 on 12 Jul 2020 · 19 条评论

注释

使用引脚 12 #474
合作者

地图册 评论 on 12 Jul 2020

在尝试让我的 grbl 构建与自定义构建设置一起使用时,我一直遇到启动和串行问题。似乎问题是使用了 12 号引脚。

Esp32 似乎保留了这个引脚,如果你在启动时将它连接到电压电平转换器,这个东西将无法启动。

对此有硬件解决方案,但我想知道:如果有足够的引脚,为什么要首先使用它?

使用引脚 12 #474 atlaste 添加了 漏洞 有些东西不工作标签 on 12 Jul 2020
使用引脚 12 #474
所有者

婚戒 评论 on 12 Jul 2020

我们所知道的关于别针的一切都在这里

通常可以使用引脚 12 作为输出。不要在启动过程中驾驶它。

使用引脚 12 #474
合作者

米奇布拉德利 评论 on 12 Jul 2020  

ESP32 没有足够的引脚的情况很多。有几个“特殊”引脚,因此如果您避免使用所有引脚,您很快就会用完引脚。GPIO12 用作驱动高阻抗输入的输出非常安全,当它驱动 Pololu 模块上的步进引脚时就是这种情况。大多数使用 GPIO12 作为 X_STEP_PIN 的机器配置实际上都将它用于 Pololu 模块。

如果您尝试通过双向电平转换器运行它以驱动外部驱动器的光耦合器,则可能会出现问题。这种电平转换器通常旨在与两侧的高阻抗输入接口。如果您需要驱动光耦合器,您需要一个具有高阻抗输入的单向电平转换器(这不会对 GPIO12 造成问题),并且输出的额定电流和电压适用于您提供给外部设备的电流和电压。

使用引脚 12 #474
合作者作者

地图册 评论 on 12 Jul 2020

也许我的问题是我没有使用 pololu 驱动程序。我试图运行由 dm556t 驱动程序驱动的 xyz cnc,带有限制器(光耦合)、启动/停止/重置和 rs485 vfd。对于大部分(rs485,步进驱动器),我需要 5V 逻辑,因此需要逻辑电平转换器。

使用引脚 12 #474

您没有说您使用的是哪种电平转换器。它们并不完全相同。此外,光耦合外部驱动器与 IC 逻辑系列中使用的“5V 逻辑”不同。相反,它们是电流驱动的设备,可以在 5V 或其他电压下使用合适的降压电阻器。正如我所说,某些类型的电平转换器根本不适合。

使用引脚 12 #474
合作者作者

地图册 评论 2020 年 7 月 12 日

@MitchBradley抱歉,我是一名软件工程师,并且在硬件方面遇到了最困难的时间。我将详细解释我正在尝试做的事情。

我正在使用的 LLC 是:https ://www.sparkfun.com/products/12009 。

我基本上要做的是将 ESP32 连接到 LLC(包括 3.3V+gnd),并将外部 5V 电源(带 10uF 电容)连接到 LLC(5V+gnd)。我可能应该注意到我有一个 36V 电源,并使用 LM2596 转换器将其转换为 5V(https://www.amazon.nl/gp/product/B07MY2NTFV/ref=ppx_yo_dt_b_asin_title_o00_s00?ie=UTF8&psc=1)。

至于 DM556T,数据表 ( https://www.omc-stepperonline.com/download/DM556T.pdf ) 显示“脉冲在上升沿有效;PUL-HIGH 时为 4-5V,PUL-LOW 时为 0-0.5V . 2.5μs 的最小脉冲宽度”——这是我使用 5V 的主要原因。过去,我使用过 TB6600,它似乎与 3.3V 逻辑有问题。

对于 RS485 接口,我使用的是 MAX485 模块https://www.itead.cc/max485-module.html。出于两个原因,这些也通过 LLC 运行。首先,RX 信号显然可以超过 3.3V,ESP32 数据表告诉我它不应该超过 3.6V。其次,我尝试在 3.3V 上使用 Arduino nano 运行它,但由于某种原因,它不适用于 VFD。一旦我添加了 LLC,问题似乎就消失了。

限制器有一个带有 4N35 光耦合器的单独 PCB 板:https : //a360.co/2Bhv1vV 并与这些终端停止器一起使用:https ://www.domoticland.com/en/buttons-and-switches/endstop-switch/2702 -3d-printers-mechanical-limit-switch-module-v12-end-stop-3d-printer-endstop-3809200633837.html。过去,我在电气干扰方面遇到了很多麻烦,并认为这应该可以解决这个问题。

我曾经为这个 CNC 使用 Arduino Due 运行 Marlin,但出于各种原因想回到 GRBL。然而,事实证明,使用 RS485 运行 VFD 具有挑战性,而 GRBL_ESP32 似乎是唯一或多或少支持该功能的端口。

正如我所说,我的职业是软件工程师,而不是硬件工程师……这意味着我可能会犯很多错误……

使用引脚 12 #474
合作者

米奇布拉德利 评论 2020 年 7 月 13 日  

那些 Sparkfun LLC 非常适合 ESP32 和 MAX485 之间的接口,但对于 ESP32 <-> 外部驱动器来说,如果它们都能正常工作,那么它们是边缘的。原因是 ESP32 和 MAX485 的输入都是“高阻抗”的,这意味着切换完全基于电压,几乎没有电流流入或流出输入引脚。几乎没有电流,我的意思是纳安甚至皮安范围内的电流。

相比之下,外部驱动器输入是低阻抗的,这意味着需要大量电流流动——通常在 1 到 10 毫安的范围内。该电流用于点亮红外 LED,发出的光开启光敏晶体管。涉及大量电流的事实是抗噪性的一部分 – 因为许多噪声源无法在外部布线中感应出那么多电流。另一个抗噪因素来自 LED 和光电晶体管之间的电气隔离 – 由于两侧没有公共线,驱动器侧产生的噪声不容易通过公共接地连接泄漏到计算机侧。

LLC 中的电路无法在 5V 侧提供足够的电流来可靠地驱动光耦合器。它旨在在低电流下切换电压,而不是切换电流。

要从 ESP32 输出很好地驱动光耦合器,您确实需要 74[A]HCT 系列中的缓冲芯片、ULN2803A 等驱动芯片、分立晶体管或逻辑门 MOSFET。Bart 的新电路板使用 74AHCT595 移位寄存器,该寄存器具有良好的驱动光耦合器特性 – 也可用于驱动 Pololu 模块上的高阻抗输入。

在限位开关方面,您在光耦合输入的正确轨道上,但可以采取其他步骤。当光耦合器切换状态时,边沿速率可能相当慢,这意味着信号需要很长时间(按照电子标准)才能从低电平转换到高电平。通过过滤您可能会添加以减少噪音,这会变得更糟。边沿速率慢的问题是信号在逻辑转换电压附近的时间足够长,以至于任何残余噪声都可能导致它切换,然后切换回来,等等。通常的解决方案是在 GPIO 输入中添加滞后 -所以低到高的开关阈值比高到低的阈值高十分之几伏。Arduinos 中使用的 AVR 芯片有迟滞,而 ESP32 GPIO 没有,因此 ESP32 对噪声更敏感。

使用引脚 12 #474

@atlaste当我使用从 3.3v 到 5v 的“polulo”转换器时,我遇到了同样的问题,问题是芯片是双向的,当您将引脚悬空时,它会将其视为逻辑引脚并将电流输入 esp23 哪个,在pin 12上有问题,grbl程序没有执行。所以我决定使用74ls245芯片,它工作正常,但我认为我需要使用HCT家族的芯片,因为这个家族的频率响应更好

使用引脚 12 #474

LS (Tpd ~ 10 ns) 比 HCT (Tpd ~ 20 ns) 快 2 倍。HCT 比 Pololu 步进驱动器所需的速度快 10 倍到 50 倍(A4988 Tsu ~ 200 ns,Tstep ~ 1 us)。HCT 比光耦合器快 500 倍(Tr ~ 10 us)。所以我想知道“因为频率响应更好”的事情。

更快并不总是更好。过快的转换速率会导致更多的噪声,因此许多电路有意减慢边缘。

使用引脚 12 #474
合作者作者

地图册 评论 2020 年 7 月 14 日

@MitchBradley非常感谢您的详细解释,非常感谢。
董事会@bdring看起来不错。一旦我可以在某个地方订购它,我就会……由于您描述的问题,我的 CNC 无法真正工作。

不过我很感兴趣……在数据表中,LLC 可以驱动最大 0.22A。每个引脚,驱动器需要 10mA 典型值(16mA 最大值)。我原以为会留下足够的空间?

至于限制器,如果我没看错的话,你基本上说我应该在输入引脚上添加一个施密特触发器,对吧?

无论如何,我渴望得到巴特的董事会并妥善解决这个问题……我缺乏电气系统已经把我的数控项目拖了太久,没有乐趣……

使用引脚 12 #474
合作者

米奇布拉德利 评论 2020 年 7 月 14 日  

FET 可以传输那么多电流——但电流必须来自某个地方。在低方向,电流进入 ESP32 引脚,因此您原则上可以连接到光耦合器的低端。在高方向上,电流来自 3.3V 的 ESP32 和一个 5V 电阻的组合,因此大电流下的高驱动只有 3.3V,而 5V 驱动是通过一个太大而无法提供的 10K 电阻足够的电流来驱动光耦合器。所以换句话说,电平转换器可能根本不存在。
施密特触发器将有助于限位开关的抗噪声能力。如果您没有问题,请不要打扰。
巴特的新董事会即将到来。他已经完成了两次设计,我对它进行了广泛的设计审查。目前我们对此非常满意。我想他现在任何一天都会去生产。

使用引脚 12 #474
合作者作者

地图册 评论 2020 年 7 月 14 日

@MitchBradley再次感谢您的详细信息。期待从 bart 订购电路板,但与此同时(有一些背景交流,据我了解,它可能需要一个多月才能到这里)我想要一些也能工作的东西,所以我可以开始软件。毕竟,我认为对我来说最好的做法是铣削一个简单的 PCB,它包含所有必要的组件来启动它。

我从来没有遇到过没有施密特触发器的光耦合器问题。当我不使用任何光耦合器时,我在误触发方面遇到了很多麻烦。

根据您和 bdring 的广泛评论,我添加了一个简单的示意图:https ://a360.co/32iIizA 。我完全避免使用 pin12。如果您能在我烧掉我的硬件之前快速查看一下是否发现任何问题,我会非常高兴… :-)

使用引脚 12 #474
合作者

米奇布拉德利 评论 2020 年 7 月 15 日  

7805 不会做你想做的事。

  1. 你不能用线性稳压器从 3V3 制造 5V。
  2. ESP32 模块上的 3V3 引脚不是拉电流的好地方,因为它通过一个微型的模块上线性稳压器。最好直接从主电源为次级稳压器供电。
  3. 任何在输入端和输出端之间具有公共接地的稳压器都不是“隔离的”

如果你真的想要一个用于光电器件的隔离次级,你需要一个“隔离直流到直流转换器”,从 5V 电源输入,5V 输出。

你已经选择不接受我关于施密特触发器的建议,所以我不再赘述。

探针可能会有噪音。恢复、中止、重置也会很吵,但如果它们的开关在同一个盒子里并且靠近 ESP32,它们可能仍然可以工作。

ULN2803A 非常适合驱动外部步进器。ULN2803A I5 输入缺少与 ESP32 的连接。

使用引脚 12 #474

哦,我看到你有两个不同的“VCC”网,一个是圆形的,一个是扁平的。这种命名冲突是非常糟糕的做法,类似于在一个程序中有两个同名但不同的标识符。它肯定会引起混乱 – 并且已经有。

使用引脚 12 #474
合作者作者

地图册 评论 2020 年 7 月 15 日  

@MitchBradley你是对的,我当时只是不知道如何解决这个问题。固定版本在这里:https ://a360.co/32iIizA 。最新版本是具有专有名称的 v28。

任何在输入端和输出端之间具有公共接地的稳压器都不是“隔离的”

这只是名称的混淆。我要解决这个问题;他们没有共同点。我主要是想用调节器来代替你们正在使用的B0505​​S。

你已经选择不接受我关于施密特触发器的建议,所以我不再赘述。

其实我对此还是有疑问的。我看过的示意图@bdring模块,但发现自己很难做到。不过,我这里确实有一些 74LS14 IC。我刚刚更新了最新的原理图以使用其中之一。希望我明白它是如何工作的……

我目前的主要问题是我这里的 pcb 板上的表面是有限的,我必须对其进行研磨。我可以稍微提高一下大小(但 Eagle 对此也很讨厌……应该转移到其他一些软件……)。如果可以避免的话,我真的不想进行 SMD 焊接;我更愿意把它留给专业人士(更不用说我的廉价cnc可能不够准确,无法加工smd)。无论如何,也许这只是另一次,首先是原理图……

使用引脚 12 #474
合作者作者

地图册 评论 2020 年 7 月 22 日

我将关闭这个问题。我无法要求更好的答案,并且拥有我可以要求的所有信息。多谢你们!

使用引脚 12 #474

上面发布的原理图的更新版本仍然存在问题。您不能使用线性稳压器从 5V 变为 5V,因为线性稳压器在输入侧需要比输出更高的电压。这种差异称为“压差”。具有 2V 压差的稳压器(例如 7805)需要输入 7V 才能将输出调节至 5V。此外,由 ULN2803 上的 O5 驱动的 Y 步进信号似乎在 I5 输入上接地,因此输出永远不会传导电流。

使用引脚 12 #474
合作者作者

地图册 评论 2020 年 7 月 23 日  

@MitchBradley我刚刚研磨并测试了电路板。它有效,所以现在我很高兴。最终我可能会订购其中一个模块化板和/或研磨其他一些,因为制作这些东西非常有趣:)

我真正缺少的一个功能是将每个限位开关连接到单独的输入的能力。这样,如果其中一个出现故障,grbl 可以告诉你。

我一直在思考如何实现这一点。我认为您基本上需要一些用于状态更改的引脚(一起异或)和一个 spi 总线,其中 endstop 被击中。

我很感兴趣你会怎么看这个?

使用引脚 12 #474

我会通过为新板创建扩展模块来完成单独的限位开关。它可能有一个 I2C 扩展芯片或一个 STM32F030 微处理器。

喜欢 (0)

您必须 登录 才能发表评论!