有没有人使用 Shield Buddy(代替 Arduino Mega2560)作为 RAMPS 1.4 主机板?

3D打印 坡道-1.4 arduino-mega-2650 硬件
2021-05-06 08:43:17

我读过几次1 Arduino Mega 可能难以执行 3D 打印机控制所需的任务,因为 AVR 芯片正在发挥其极限,这就是为什么一些制造商已经放弃了 ATmega2560,以进行定制(和集成)使用 ARM 处理器的控制器板。

刚刚在 Arduino SE 网站上看到了这个问题的最新答案,Arduino 的多线程,我想知道是否有人将Shield Buddy与标准 RAMPS 1.4 板结合使用?

盾牌伙伴

它与 Arduino Mega 引脚兼容(和 Arduino IDE 兼容 - 一旦安装了适当的附加组件),但它具有更快的三核处理器。显然只会使用一个核心,而其他两个则闲置,但即便如此,性能显然要好得多。

请参阅使用 ShieldBuddy TC275 将多核带入 Arduino 世界

如果有人有使用这个板子的经验,我想知道它是否成功?对于 Aurix TC275 处理器,我不明白为什么不应该这样做,尽管 Marlin 固件需要重新编译。会看到任何改善吗?值得支付 89 英镑的高价吗?


1其中一个地方是3D 打印:电子板

虽然他们为他们打算做的事情工作,但有一些限制。圆弧和圆的编程有点奇怪,将这些板用于笛卡尔 3D 打印机以外的东西——例如数控机床或激光切割机——有点不寻常。

1个回答

这并不像你建议的那么简单。

您不能只是为另一台设备重新编译 Marlin。你需要重写它的大部分。它可能与 Arduino IDE 兼容,但这并不意味着您可以在其上运行专为 AtMega2560 设计的固件。如果您设法让它编译,则所有时序(例如发送到步进电机的脉冲的时序)都将关闭。

作为一些例子,这里有一些来自 Marlin 的代码会被破坏,因为它们是直接用 AVR 程序集编写的:

#define DELAY_1_NOP  __asm__("nop\n\t")
#define DELAY_2_NOP  __asm__("nop\n\t" "nop\n\t")

[...]

// ensure 100ns delay - a bit extra is fine
asm("nop");//50ns on 20Mhz, 62.5ns on 16Mhz
asm("nop");//50ns on 20Mhz, 62.5ns on 16Mhz

[...]

#define MultiU24X32toH16(intRes, longIn1, longIn2) \
asm volatile ( \
             "clr r26 \n\t" \
             "mul %A1, %B2 \n\t" \
             "mov r27, r1 \n\t" \
             "mul %B1, %C2 \n\t" \
             "movw %A0, r0 \n\t" \
             "mul %C1, %C2 \n\t" \
             "add %B0, r0 \n\t" \
             "mul %C1, %B2 \n\t" \
             "add %A0, r0 \n\t" \
             "adc %B0, r1 \n\t" \