评论
接下来几天我会调查一下。也许这是溢出变量等的问题。 但是你确定你的设置是正确的吗?您的最高进给率(Y 轴)为 10000,因此应忽略上述所有值。 制造商 |
解决了!,在 stepper.c 中,计算加速度的级别 (AMASS_LEVEL) 的值为 24000000HZ,我已将其更改为变量 F_CPU 的值 (96000000UL),现在可以完美运行,没有噪音,也没有阻塞加速。这是更改后的代码: #define MAX_AMASS_LEVEL 3 #if MAX_AMASS_LEVEL <= 0 #ifdef MAX_STEP_RATE_HZ |
奇怪的。我将它设置为 24000000,因为步进计时器以 24 MHz 运行。 您能否也将util.h中的TICKS_PER_MICROSECOND更改为 96,因为这将是您当前配置的正确值,看看它是否有效?24 将是 24 MHz 计时器的正确值。我忘记在时钟树更改后更改它,因此对于 20 MHz 定时器它仍然设置为 20。 再次感谢您的测试。不幸的是,我没有一台机器来测试如此高的进给率。 制造商 |
好的,我发现了错误。我忘记为溢出事件启用寄存器预加载,这导致定时器在某些情况下计数到其最大寄存器值而不是设置值。 制造商 |
又是你好!,
我又在测试你的端口(这几天很忙),
解决了加工速度慢的问题后,我在用激光cnc做测试,当超过F:10000的速度时加速和减速时出现阻塞和丢失步骤,我使用 X 光栅作为雕刻技术,而且与 arduino 相比,噪音增加了很多。
我的设置是:
$0=15(步进脉冲时间)
$1=20(步进空闲延迟)
$2=0(步进脉冲反转)
$3=0(步进方向反转)
$4=0(反转步进使能引脚)
$5=0(反转限制引脚)
$6 =0(反转探针)
$10=1(状态报告选项)
$11=0.010(连接偏差)
$12=0.002(电弧公差)
$13=0(以英寸为单位报告)
$20=0(启用软限制)
$21=0(硬限制)限制启用)
$22=0(归位循环启用)
$23=0(归位方向反转)
$24=10000.000(归位定位进给率)
$25=10000.000(归位搜索搜索率)
$26=250(归位开关去抖动延迟)
$27=1.000(归位开关拉断距离)
$30=1000(最大主轴速度)
$31=0(最小主轴速度)
$32=1(激光模式启用)
$100=20.000(X 轴行程分辨率)
$101=20.000(Y 轴行程分辨率)
$102=1203.000(Z -轴行程分辨率)
$110=8000.000(X 轴最大速率)
$111=10000.000(Y 轴最大速率)
$112=1200.000(Z 轴最大速率)
$120=700.000(X 轴加速度)
$121=6000.000(Y-轴加速度)
$122=80.000(Z 轴加速度)
$130=70.000(X 轴最大行程)
$131=300.000(Y 轴最大行程)
$132=200.000(Z 轴最大行程)
使用 gt2 皮带和 16 齿皮带轮,驱动器设置为 1/4
Arduino 在相同配置下完美运行(但无法快速处理大数据负载)。
我一直在 Arduino 和 STM32 NUCLEO 之间交替比较,差异很明显,arduino 光栅运动平滑、安静和精确,而使用 STM32 Nucleo 时噪音增加很多,只有在加速和减速时总是在同一点(只是在开始/结束之前)他突然刹车然后继续。
我已经修改了 config.h,用 ACCELERATION_TICKS_PER_SECOND 和其他参数做了几次测试但没有成功,我检查了配置并将其与我的 arduino(默认为 grbl)的配置相匹配,但我也没有任何运气。
这些问题仅在超过 F:10000 的速度时发生,既不会降低加速度,问题也会消失。我认为这是频率(因为噪音)或加速算法的问题。
我希望你能帮助我,谢谢!