评论
我也有同样的问题!使用我的逻辑分析器,我看到 Marlin 射出非常小的峰值来控制驱动器。也许他们太少了?? |
@yellobello到底发生了什么?没有运动、振动、跳步? 我在所有轴上都使用 DRV8825(或 DRV8824),它按预期工作。 除了明显的微步外,驱动程序之间的区别在于时间。如果我没记错的话,DRV8824/5 需要比 A49xx 驱动器长 2 倍的脉冲。 马尔钦 |
当我加热我的热端并挤出一些细丝时,我得到的只是修整锅时步进器发出的一些声音,但没有一步(至少我没有注意到)在一个非常好的电位器设置下我可以看到一个尝试电机移动,但当我将锅再转动一度时,它又开始发出声音…… |
确保你在 configuration.h 中有一个减速速度设置 |
你好, 这里肯定有问题。我不知道它是马林鱼还是步进驱动器,但由于一切都在 repetier 上运行,我猜是马林鱼。更深入的猜测是,它与马林鱼脉冲步进器的方式有某种联系。(脉冲时间宽度?) 在稍微调整一下速度后,我终于让它们全部正常工作,但随后又出现了另一个问题,这非常奇怪。 有时,主要是在归位或执行 G29 之后,碰巧此时绝对不应移动的步进电机确实移动了,而这显然是针对另一个电机的步骤。 所以 DRV8825 被提升为插件替代品,对我来说显然不是。 正如我发现的那样,Marlin 没有正式的方法来改变脉冲宽度……但我喜欢尝试使用它来确保这不是问题所在。 |
来自 Pololu 的网站:
所以他们不是插入式替代品。您需要在将步进信号设置为无效的数字写入之前添加延迟。 我无法解释为什么错误的电机正在步进。 |
例子: for(unsigned char i=0; i<4;i++) {
if (e_steps[0] != 0) {
WRITE(E0_STEP_PIN, INVERT_E_STEP_PIN);
delayMicroseconds(2);
if (e_steps[0] < 0) {
WRITE(E0_DIR_PIN, INVERT_E0_DIR);
e_steps[0]++;
WRITE(E0_STEP_PIN, !INVERT_E_STEP_PIN);
}
else if (e_steps[0] > 0) {
WRITE(E0_DIR_PIN, !INVERT_E0_DIR);
e_steps[0]--;
WRITE(E0_STEP_PIN, !INVERT_E_STEP_PIN);
}
}
这只适用于挤出机 E0,所以我假设 WRITE(E0_STEP_PIN, INVERT_E_STEP_PIN);
给出一个高电平信号,同时 WRITE(E0_STEP_PIN, !INVERT_E_STEP_PIN);
给一个低,对吧? 我只需要这个 |
哦,我刚刚看到HIGH和LOW都需要更长,所以: for(unsigned char i=0; i if (e_steps[0] != 0) {
WRITE(E0_STEP_PIN, INVERT_E_STEP_PIN);
delayMicroseconds(2);
if (e_steps[0] WRITE(E0_DIR_PIN, INVERT_E0_DIR);
delayMicroseconds(2);
e_steps[0]++;
WRITE(E0_STEP_PIN, !INVERT_E_STEP_PIN);
delayMicroseconds(2);
}
else if (e_steps[0] > 0) {
WRITE(E0_DIR_PIN, !INVERT_E0_DIR);
e_steps[0]--;
WRITE(E0_STEP_PIN, !INVERT_E_STEP_PIN);
delayMicroseconds(2);
}
}
|
DIR 引脚需要服从设置时间,仅为 650ns。即必须在步进脉冲开始前 650ns 设置它。下降沿之后不需要延迟,因为每个脉冲之间都有所有步进周期。 请在您的代码片段周围加上三重反引号以使其可读。 |
我之前没有回应,因为我很确定这已经实施了。不幸的是我在代码中找不到它。 马丁 |
所以我想重新实施不会有什么大不了的:-) 谢谢!! |
大家好, |
确实,您在此线程中的位置有点错误。 有关于丢失变量的消息吗? Nothinman,你说你也用TI的芯片,你是不是也注意到了一些问题,或者你只是为了安全起见,按照数据表的建议添加了代码? |
嗨,我可以确认 DRV8825 和当前固件有问题,只是更换了新的 8825,X、Y、Z 确实设法移动了,但挤出机步进器根本没有移动。线圈电流设置与我的 4988 相同。DRV8825 发出的呜呜声(即使在低电流设置下)非常糟糕,我不确定这是步进脉冲问题还是 DRV8825 固有的,但它很重要。有关此问题的任何进一步更新吗? |
你的问题应该只影响挤出机电机是没有任何意义的,所以我认为你的问题应该在其他地方找到,并且可能与 E0 驱动器相关的速度或方向。 |
When I did the swap last night I changed nothing but the steps/mm to be correct with the 1/32 micostepping. Set the coil current the same, then tried to move the axis, all worked except the extruder, even with no filament it wouldn’t turn. Tried backing the speed down, speed up, current up, current down, changed direction, the extruder stepper would not step at all. These are the |
嗨,我在 reprap 论坛上发了这篇帖子,但是在发了几篇帖子之后似乎没有人找到这种奇怪行为的答案:
http://forums.reprap.org/read.php?13,358655,373531#msg-373531
问题是我无法让 DRV8825 驱动程序与我的 RAMPS 板一起工作,但仅适用于 EXTRUDER。
XYZ 在 DRV 上工作正常,但在 E0 上却不行。我什么都试过了,换驱动器,换步进电机,什么都没有。
唯一有帮助的是从 Marlin 切换到 Repetier,突然间它起作用了。
所以我假设它与马林鱼有关……也许是步宽?Marlin 哪里可以设置?
还有其他想法为什么它不起作用吗?