开源改变世界!!

MPCNC板上的PWM问题 #294

推推 grbl 2年前 (2023-01-29) 117次浏览
关闭
ericspooner 打开了这个问题 2019 年 11 月 16 日 · 14条评论
关闭

MPCNC板上的PWM问题#294

ericspooner 打开了这个问题 2019 年 11 月 16 日 · 14条评论

注释

MPCNC板上的PWM问题 #294

你好,

我最近买了一块 MPCNC 板,就在我看到关于该板的帖子https://github.com/bdring/4_Axis_SPI_CNC之前。我正在使用该板来控制我建造的二极管激光器和机器。机器与 Uno/CNC Sheild 配合使用效果很好,尽管我遇到了速度问题,因为当 PWM 用于打开激光时,我只能从 atmega 获得大约 1550 毫米/米。我一直在尝试获得一台能够在使用 PWM 时速度达到 6000 mm/m 的机器,而 ESP32 看起来很有前途。上面带有 TMC 驱动程序的另一块板会很棒,因为我想为我的项目添加无传感器归位。电线越少越好。

也就是说,激光器不在 ebay 上,并且具有 3Pin 电源/PWM 连接。PWM 为 5v,我使用 cnc 屏蔽上的 Z+ 引脚。这完全符合预期。电压从 0-5v 上升,具体取决于您输入到 grbl 的 0-255。现在我还是新手,正在学习,但这似乎是 TTL 和 PWM 的结合行为。我没有示波器,所以无法检查引脚输出的占空比,但是当我对 MPCNC 板上的 ESP32 执行相同操作时,我基本上可以打开/关闭。M3S1 给我 100% 的功率,这与 M3S255 M5 将其关闭相同,S0 不将其关闭。我错过了一步吗?我真的很期待为 TMC 驱动程序内置 SPI 的 4 轴板。当您出售它们以帮助支持时,我很可能会得到一个玩。

谢谢!

MPCNC板上的PWM问题 #294
所有者

PWM 问题可能是几件事。

我的第一个猜测是你有它或有USE_SPINDLE_RELAY模式。这会将默认的最大 RPM 更改为 1。这意味着所有 1 或更大的“S”值都已满。这是因为,如果您尝试对继电器进行 PWM,您会很快断开它。

查看您使用的 cpu 映射并确保#define USE_SPINDLE_RELAY 已被注释掉。还要检查您的 30 美元设置。我建议 $30=1000。

MPCNC板上的PWM问题 #294
作者
埃里克斯普纳 评论了 2019 年 11 月 17 日  

非常感谢您的回复。
$30=255.000 是我目前的配置。

在下面

#ifdef CPU_MAP_MPCNC  // all versions...select below

我有

// Note: if you use PWM rather than relay, you could map GPIO_NUM_2 to mist or flood 
	//#define USE_SPINDLE_RELAY

调整这些设置中的任何一个都能使我类似于 arduino 上的 CNC 屏蔽吗?

	#define SPINDLE_PWM_CHANNEL 0
	// PWM Generator is based on 80,000,000 Hz counter
	// Therefor the freq determines the resolution
	// 80,000,000 / freq = max resolution
	// For 5000 that is 80,000,000 / 5000 = 16000 
	// round down to nearest bit count for SPINDLE_PWM_MAX_VALUE = 13bits (8192)
	#define SPINDLE_PWM_BASE_FREQ 5000 // Hz
	#define SPINDLE_PWM_BIT_PRECISION 8   // be sure to match this with SPINDLE_PWM_MAX_VALUE
	#define SPINDLE_PWM_OFF_VALUE     0
	#define SPINDLE_PWM_MAX_VALUE     255 // (2^SPINDLE_PWM_BIT_PRECISION)
	
	#ifndef SPINDLE_PWM_MIN_VALUE
			#define SPINDLE_PWM_MIN_VALUE   1   // Must be greater than zero.
	#endif

我也找到了这篇文章。/问题是否需要或应该使用像这个亚马逊链接这样的东西?有趣的是,当我把我的万用表放在它上面时,它在 PWM 引脚上,M3S0 给出与 M3S255 相同的 ~1 伏特。在我开始测试/播放以了解更多信息之前,我想让它工作,我所做的唯一修改是将 config.h 中的 CPU MAP 更改为 CPU_MAP_MPCNC,因为那是板。我立即注意到我一直在获得 5v,并且在您的一个屏幕截图中,Intlk 被跳线,之后我只在运行 m3 命令后获得电压,并且 m5 正确关闭它。

再次感谢您提供如此棒的项目!!

MPCNC板上的PWM问题 #294
所有者

你的价值是 30 美元吗?

发送 $$ 以获取所有 $ 设置并将它们发布在这里。

MPCNC板上的PWM问题 #294
作者
埃里克斯普纳 评论了 2019 年 11 月 18 日  

不,我根本没有固定到 255,那只是我在 Uno 上的默认设置。我正在使用 lightburn 作为软件,因此也很容易在那里更改该设置。驱动程序是 DRV8825。编辑:不确定它是否重要,但这是我购买的 ESP32 开发板的亚马逊链接。如果有不同的我应该得到我也愿意。

$$
$0=3
$1=250
$2=0
$3=0
$4=0
$5=1
$6=0
$10=1
$11=0.010
$12=0.002
$13=0
$20=0
$21=0
$22=0
$23=3
$24=200.000
$25=2000.000
$26=250
$27=1.000
$30=255.000
$31=0.000
$32=1
$100=160.000
$101=160.000
$102=160.000
$110=6000.000
$111=6000.000
$112=3000.000
$120=2000.000
$121=2000.000
$122=1000.000
$130=375.000
$131=375.000
$132=300.000
MPCNC板上的PWM问题 #294
所有者

它连接了一个 MPCNC 控制器,当前的固件似乎工作正常。我还有几个问题和建议

  1. 你有什么版本的 MPCNC 控制器。查看电路板底部的修订版
  2. 测量时电路板是否连接到激光器?
  3. 在这些测量期间电路板是外部供电还是仅通过 USB 供电?
  4. 尝试发送=重置所有设置。
MPCNC板上的PWM问题 #294
作者
埃里克斯普纳 评论了 2019 年 11 月 18 日  

当然,

  1. 版本 1.2.1
  2. 当显示 ~5v 已连接时,显示 ~1v 未连接。尝试在电路板通电时/电路板启动后连接激光。
  3. 两个都。我有外部电源,我使用了 pronterface,也没有 USB,只尝试了网络界面。两次测试的结果相同。我在那里有外部电源,所以我可以确保驱动程序正常工作,而且他们工作得很好。
  4. 我会试一试!重置后,行为相同。只有更改的设置是 $32=1,所以我不会忘记 $100、101、102。

在没有连接激光器的情况下,M3S0 给出 ~0.65v,然后运行 ​​s1000 给出相同的 ~0.65v。连接激光后,M3S0 获得 ~5.1v,S1000 也保持该值。M5 正确关闭它。为了以防万一,我也会重建/刷新固件。

MPCNC板上的PWM问题 #294
所有者

看来激光可能正在拉低信号。控制器是 3.3V,所以它使用了一个 3.3V 到 5V 的转换器。这不能通过下拉来驱动某些东西,因为它使用了一个用于 5V 的上拉电阻。

激光模块TTL能否接受3.3V信号并达到全功率?我们也许能够重新路由信号。

您打算同时使用主轴和激光吗?如果是这样,主轴是由 Grbl 通过继电器还是 PWM 控制的?

MPCNC板上的PWM问题 #294
作者
埃里克斯普纳 评论了 2019 年 11 月 18 日  

不,该板仅用于激光,没有任何计划在该板上使用主轴。这是激光模块,它是 5500mw Ebay 链接它没有太多关于他们使用什么板的信息等。据我所知,3.3V 似乎无法使其达到全功率,曾尝试使用BigTree Tech SKR 1.3,但 PWM 引脚仅为 3.3v,无法使用它进行相同的切割。我愿意使用其他硬件来驱动,但老实说,我在这方面的知识确实缺乏使用诸如光隔离器上拉/下拉之类的东西来获得我们需要的东西。我仍然在这里学习,遗憾的是我在上面找不到太多东西(作为我的应用程序的示例),并且不想在我用它制作圣诞礼物时用魔法熏我的激光驱动板: ).

编辑:激光 12v 直接来自 20A 电源,而不是通过电路板。它们都共享相同的 20A 12V 电源。Uno 的设置相同。

MPCNC板上的PWM问题 #294
所有者

我认为光隔离器可以工作。它需要是推拉式的,这样它才能在 5V 侧驱动电流。大多数反转,因此最好“向后”驱动 LED,因此低输出高。

Grbl_ESP32 也可以反转 PWM 信号。

MPCNC板上的PWM问题 #294

MPCNC板上的PWM问题 #294

太感谢了。我将订购其中一些,并尝试进行设置。如果我有问题可以在这里发布吗?如果您不想要混乱,我可以继续尝试解决它 :)。又是一个很棒的项目,感谢您分享您的知识!

MPCNC板上的PWM问题 #294
所有者

这里很好,或者 Slack

MPCNC板上的PWM问题 #294

附带一提,我从我的激光模块的销售中发现:频率:<15khz,PWM/TTL:控制器为 0-5V,因此 3.3v 不会使其全功率。这对我们的图表有帮助吗?

MPCNC板上的PWM问题 #294

把零件放进去。我仍然是失败军的一员,有线,我现在仍然只有 0 或 4.81v,没有中间电压。

所以决定再次尝试正常,但是现在我什至无法重新上传固件,它不会在引脚上反转。我认为我的 ESP32 可能有问题。您不会碰巧知道您的 ESP32 开发板使用的是哪个开发板制造商的链接?我想这可能是我一直以来的问题是一块坏板。

谢谢!

MPCNC板上的PWM问题 #294
所有者

尝试将其从控制器 PCB 上移除。将此 CPU MAP 粘贴到 cpu_map.h 中。这是一张超级简单的地图,可将主轴指向某些板上的 LED。您也可以将 I/O 引脚更改为其他引脚。

#ifdef CPU_MAP_SPINDLE_TEST
	/*
	This is a simple cpu_map to test spindle function.
	
	Feel free to change the I/O pin, but GPIO_NUM_2 is often an
	LED on dev boards, so you can see it glow bright with high speeds
	and dim with low speeds
	
	send $rst=$ to reset all settings. RPM will be 0-1000
	
	*/
	#define CPU_MAP_NAME "Spindle Test Only"	
	
	#define SPINDLE_PWM_PIN    	GPIO_NUM_2
	#define SPINDLE_PWM_CHANNEL 0
	#define SPINDLE_PWM_BIT_PRECISION 8

	
	#define LIMIT_MASK 0  // no limit pins		
#endif

更改 config.h 以使用此 cpu 映射

#define CPU_MAP_SPINDLE_TEST