Contact me: hankecnc@gmail.com

使用引脚 12 #474

推推 grbl 3年前 (2023-01-30) 235次浏览
关闭
atlaste 打开了这个问题 2020 年 7 月 12 日 · 19条评论
关闭

使用引脚 12#474

atlaste 打开了这个问题 2020 年 7 月 12 日 · 19条评论

注释

使用引脚 12 #474
合作者

在尝试让我的 grbl 构建与自定义构建设置一起工作时,我一直在启动和串行方面遇到问题。看来问题是使用了 pin 12。

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

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

使用引脚 12 #474 最后 添加了 漏洞 有些东西不工作标签 2020 年 7 月 12 日
使用引脚 12 #474
所有者

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

一般用pin 12作为输出就可以了。请勿在启动期间驱动它。

使用引脚 12 #474
合作者
米奇布拉德利 评论了 2020 年 7 月 12 日  

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

如果您试图通过双向电平转换器运行它以驱动外部驱动器的光耦合器,预计会出现问题。这种电平转换器通常旨在连接到两侧的高阻抗输入。如果您需要驱动光耦合器,则需要一个具有高阻抗输入(不会对 GPIO12 造成问题)的单向电平转换器,以及一个与您馈送到外部设备的电流和电压额定的输出。

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

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

使用引脚 12 #474

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

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

@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, on 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
合作者作者

@MitchBradley非常感谢您的详细解释,非常感谢。
的董事会@bdring看起来不错。一旦我可以在某个地方订购它,我就会……目前我的数控系统因为你描述的阻抗问题而没有真正工作。

不过我很感兴趣……在数据表中说 llc 可以驱动最大 0.22A 的电流。每个引脚,驱动器通常需要 10mA(最大 16mA)。我本来希望留下足够的空间?

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

无论如何,我渴望得到 bart 的董事会并妥善解决这个问题……我缺乏电气系统一直拖累我的 cnc 项目太久了,以至于没有乐趣……

使用引脚 12 #474
合作者
米奇布拉德利 评论了 2020 年 7 月 14 日  

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

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

@MitchBradley再次感谢您提供详细信息。期待从巴特订购电路板,但与此同时(进行了一些背景沟通,据我所知可能需要一个多月的时间才能到达这里)我想要一些也能正常工作的东西,这样我就可以开始了软件。毕竟,我认为对我来说最好的行动方案是铣削一个简单的 PCB,该 PCB 具有开始这一切所需的所有组件。

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

根据您和 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
合作者作者

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