开源改变世界

新硬件建议teensy3.1 #346

推推 grbl 2年前 (2023-01-21) 210次浏览
打开
bobalony1 打开了这个问题 2014 年 2 月 9 日 · 61条评论
打开

新硬件建议teensy3.1#346

bobalony1 打开了这个问题 2014 年 2 月 9 日 · 61条评论

注释

新硬件建议teensy3.1 #346

我知道迁移到新硬件的想法已经被广泛讨论过。主要是由于 20mhz 的限制。但也像 Due 缺少 eeprom 这样的问题一直阻碍着新硬件的发展。
我的建议类似于 Teensy 3.1(开发人员也在研究 ++ 模型以突破底部焊接安装垫,所以希望很快就会出现)

sparkfun
3.3v 电源
32 位 ARM Cortex-M4 72 MHz CPU(M4 = DSP 扩展)(可超频至 96mhz)
256K 闪存、64K RAM、2K EEPROM
21 高分辨率模拟输入(13 位可用, 16 位硬件)
34 个数字 I/O 引脚(数字输入 5V 容差)
12 个 PWM 输出
7 个用于间隔/延迟的定时器,与 PWM 分开
USB 具有专用 DMA 内存传输
3 个 UART(串行端口)
SPI、I2C、I2S、CAN 总线, IR 调制器
I2S(用于高质量音频接口)
实时时钟(带用户添加的 32.768 晶体和电池)
4 个通用 DMA 通道(与 USB 分开)
触摸传感器输入

它使用 arduino IDE 和所有库。如果我没记错的话,我看到有人正在制作 GRBL 草图。所以这可能是将两者放在一起的一个很好的简单方法。

价格明智它只有 20 美元

开发页面在这里
http://www.pjrc.com/teensy/teensy31.html

一个缺点是它不是开源的

说实话,我对硬件的了解还不够多,无法根据 GRBL 的需求正确评估它,但我想我已经把它放在这里给你们了。

新硬件建议teensy3.1 #346
贡献者

我已经开始将 GRBL 移植到 Arduino Due 和 Arduino IDE。

我很抱歉地说,但我现在要从头开始,不使用 arduino IDE。
我开始重写许多本机函数以尝试加快速度,最后我将不得不重写每个函数以使其可用。

不要误会我的意思,IDE 在某些情况下很棒,它会进行大量错误检查(无论您是否愿意)

我正在实施 CMSIS ( http://cmsis.arm.com ),所以它应该可以在大多数基于 arm 的板上使用。

代码完成后,我将不得不找到一种用户友好的上传方式。

新硬件建议teensy3.1 #346
成员

@bobalony1:我还没有使用过 Teensy 的乐趣,但它似乎非常有能力并且得到了很好的支持。我认为丢失的 EEPROM 问题不是问题。您可以购买大约 1-2 美元的 EEPROM 芯片,这些芯片可以连接到 Arduino Due 的某些引脚。或者可以有一个带有 GUI 的握手协议,要求在任何事情开始之前上传设置。

出于几乎相同的原因,Grbl 不使用 Arduino IDE 而是使用它自己的所有代码(除了 Atmel 的 EEPROM 源代码)@EliteEng正在为 ARM 做。IDE 源代码虽然很棒,但非常缓慢且效率低下。它提供了一个很好的起点,但不比那个 IMO 多多少。

@EliteEng: 我很好奇你的 ARM 端口是怎么回事。即使它还没有完成,你能创建一个 Github 存储库并打开你的代码供人们查看吗?通过推送了解事情的进展总是有价值的,所以如果人们遇到类似的问题,就会有记录的历史记录来比较事情。

新硬件建议teensy3.1 #346

我刚刚将 grbl 移植到 teensy 3.0 – 事实上,teensy 3.x 是非常棒的目标硬件,而且 K20 系列看起来非常可扩展。要移植的一件重要的事情是构建系统。我目前使用的是官方 Teensy 3.x 环境的主要精简版(链接描述文件、寄存器定义、初始化代码和 USB 堆栈),它可以正常工作,但在一个奇怪的许可下提供。

我只是开源了端口。一切都是超级阿尔法,我所做的任何更改都没有特别详细的记录。至少,这证明 Grbl 在 ARM 上运行得很好,并且所需的大部分修改要么微不足道,要么实际上简化了代码库。

新硬件建议teensy3.1 #346

一年前,我构建了带有 5″ TFT LCD 显示屏(800×480+触摸屏)和 SD 卡支持(SPI 模式)的 STM32F103 (CortexM3) 步进控制器。固件的 CNC 部分没有规划,加速不像 grbl 项目那样强大。
几天前我在网上发现 grbl。移植到 STM32 需要 2-3 小时(重新定义引出线和中断),现在我有了强大的 cnc 驱动程序,它不需要 PC 并且快速稳定。将来我需要控制主轴转速和添加操纵杆来控制 XY 平面。

新硬件建议teensy3.1 #346
成员

@bronek999: 棒极了!我很高兴这是一项简单的任务,因为我们一直在尝试编写代码以使其可移植。听起来我们有。您可以发布您的代码以供其他人查看和使用吗?我认为这对我们以后转向 ARM 时会非常有帮助。

新硬件建议teensy3.1 #346

我/我是新手

我怎样才能发布它?

Dňa 2014 年 2 月 27 日星期四 16:07:02 +0100 Sonny Jeon notifications@github.com
napísal:

@bronek999: 棒极了!我很高兴这是一项简单的任务,因为我们一直
在尝试编写代码以使其可移植。听起来>我们
有。您可以发布您的代码以供其他人查看和使用吗?我认为这
对我们以后转向 >ARM 会非常有帮助。

直接回复此电子邮件或在 GitHub 上查看。

小号pozdravom

Branislav Drengubiak
AMEGA sro
Liptovsky米库拉斯

新硬件建议teensy3.1 #346
成员

@bronek999:如果您有 Mac 或 Windows,请下载 Github 程序并设置您自己的存储库。它相当简单,Github 的帮助页面会引导您完成整个过程。你几乎已经完成一半了,因为你有一个 Github 帐户。

新硬件建议teensy3.1 #346

我通过 Modbus 命令(Start、Stop、Left、Right、SetRPM)实现了主轴转速控制,但我不知道如何解决紧急停止。我认为 bas 方式是带有减速和停止功能的中断控制引脚。并提出问题“中止还是继续?”。

我该怎么做?引脚更改中断有效(中断优先级低于 grbl planner 中断),gui 问题也有效:)

但我不知道如何确保(不失步)停止或暂停 grbl 计划

PS:我的代码是针对 Keil ARM 的,gui 是我的小部件(按钮、标签、触摸)代码和带有 ADS7843 的 SSD1963 LCD 驱动程序。SD卡连接SPI模式ChansFATfs。现在我在模拟操纵杆上工作。
它是快速的 MCU,所以我不使用定时器来增加信号。我正在使用最小 imupls 长度为 1.5uS 的驱动程序,因此我/我每一步都等待 3uS。

项目可在http://www.amega.sk/cnc/cnc.zip上找到

新硬件建议teensy3.1 #346

Atmel SAM4 是否等同于 Teensy 3.1 cpu?

新硬件建议teensy3.1 #346

@matthewSorensen您是否考虑过使用 Atmel Studio IDE?使用非常简单且非常高效。支持所有Atmel芯片,包括ARM

新硬件建议teensy3.1 #346

1 * http://www.st.com/web/catalog/tools/FM116/SC959/SS1532/LN1847/PF260320
3 * http://www.st.com/web/en/catalog/tools/PF260715

3 轴 3Amp 驱动器,100MHz Cortex M4 约 40 美元

您需要做的就是移动几个电阻器并堆叠电路板,不要弄乱电位计或跳线来设置微步进或电流,这一切都是通过 SPI 完成的

新硬件建议teensy3.1 #346

@langwadt,谢谢。这看起来很有用。

@bronek999感谢您分享代码。自上次以来有任何进展吗?!

我想知道如何将 GRBL 移植到 M4,这应该可以节省一些时间。STM32F4Discovery 有一个板载 QVGA 触摸屏,但它不是 ardiuno 引脚布局,因此需要一些原型、引脚适配器板现在,如果我可以将所有这些线程整合在一起,它应该会提供一个便宜、超级强大的 CNC 解决方案。

一旦 GRBL 在 M4 上,一个全新的可能性世界就会打开。

新硬件建议teensy3.1 #346

@bronek999指向包含源代码的 .zip 文件的链接已损坏。404 错误。
你可以重新发布或做@chamnit建议并在 GitHub 上创建一个 repo?

很棒的工作伙计们!

新硬件建议teensy3.1 #346

你好

0.8 版适用于我的开发板(STM32F103+5 英寸 LCD+SD 卡)。
我尝试了端口版本 0.9 但没有成功….它是 100% 重写的,
每行代码都在 0.8 和 0.9 之间

目前我正在移植 TinyG2。它是基于 Arduino Due(AT91SAM3S8E
32 位 MCU)的开发板。
我需要 XYZ + 一个旋转 A ….而 GRBL 仅支持 3 个轴…
它像 GRBL、S 曲线加速、Jirk、支持慢跑一样更快……
现在我可以从 SD 卡读取文件并处理这个文件。
我的计划是连接7″触摸屏,我在等LCD

在 18.03.2015 15:26,J-Dunn 写道:

@langwadt,谢谢。这看起来很有用。

@bronek999[1] 感谢分享代码。自上次以来有任何进展
吗?!

我想知道如何将 GRBL 移植到 M4,这应该可以节省一些时间。
STM32F4Discovery 有一个板载 QVGA 触摸屏,但它不是
ardiuno 引脚布局,因此
需要一些原型、引脚适配器板现在,如果我可以将所有这些线程整合在一起,它应该会提供一个
便宜、超级强大的 CNC 解决方案。

一旦 GRBL 在 M4 上,一个全新的可能性世界就会打开。

直接回复此电子邮件或在 GitHub [2] 上查看。

链接:

[1] https://github.com/bronek999
[2] #346(评论)

新硬件建议teensy3.1 #346

嘿,我们肯定在同一条路上。我正在考虑移植 TinyG2,但当我在这里看到这个线程时,我认为 GRBL 可能是获得一些硬件旋转的良好开端。

我有点担心 TinyG 代码的复杂性。我可以想象调试是一场噩梦。

移植 v0.9 是否存在重大问题,或者由于所有更改,它太像从头开始了?

Tiny 板没有足够的驱动电流来满足我的需要,所以我一直在四处寻找替代步进板。这就是为什么我很高兴看到@langwadt 提供的链接。这些 ST 板在价格上具有相当大的优势。

现在让在 STM32 M4 上运行的 TinyG2 代码连接到其中一些电路板将非常符合要求。

新硬件建议teensy3.1 #346

我认为您会发现 TinyG 代码非常易于使用。它组织得很好,评论也很好。请看一下。让我们在这里玩得开心。

新硬件建议teensy3.1 #346

我的问题是(现在仍然是)自适应多轴步进平滑 (AMASS)。
我不明白它是如何工作的:(…..我的问题是生成(计算)延迟周期计数。
加速不是加速而是一组随机脉冲。我发现 Keil ARM 编译器存在一些问题,所以我尝试了将其重写为 GNU C。

现在我发现它支持安全门开关(v0.9i)….其中一个我正在寻找……

TinyG2 是 arduino 风格的代码。我不喜欢它。我的方法是仅修改 main.cpp – 添加 FatFS 对 SD 卡的支持(现在可以使用)并添加具有触摸支持的 LCD…它需要最少的 TinyG2 代码更改(用于下一个版本支持)

新硬件建议teensy3.1 #346
成员

@bronek999:您可以通过 config.h 定义禁用 AMASS,stepper.c 代码中的 ifdef 应该告诉您可以删除什么。这应该有助于简化移植。至于描述 AMASS 是如何工作的,我一直想写一些关于它的东西,但它不仅仅是一个问题帖子。

新硬件建议teensy3.1 #346

“TinyG2 是 arduino 风格的代码。我不喜欢它。”这也是我的印象。这就是为什么我认为它看起来调试起来可能是一场噩梦的原因之一。

另一个原因是它看起来像一些漂亮的切肉刀编码,但一点也不容易阅读。抱歉,Aldan,这不是善意的表现。我确实花了很多时间通读它,发现它非常不透明,变量和函数的命名完全令人困惑,无法记住。(清除变量名不需要内存,每次读取都清除)。

再一次,不要给我留下我在破坏 TinyG 的印象,它实际上在技术上看起来非常令人印象深刻,但我的感觉是我会花更多的时间去理解它,达到我可以维护/调试它的水平,而不是我写的我自己的代码。

这种情况经常发生,而且是一种尴尬的权衡。

现在我确定如果我只是购买一块板子并使用它,它是一个非常好的产品。脱帽致敬!;)

新硬件建议teensy3.1 #346

chamnit 所做的吸引人之处在于,他似乎已经抛弃了糟糕的 Arduino 库,并编写了一些简洁明了的东西。

新硬件建议teensy3.1 #346

@J-Dunn– 感谢您的反馈 – 风格是个人问题。

澄清一点——代码中没有 Arduino 库(从来没有)。C++ 代码编写在硬件抽象层 (Motate) 之上,可在不牺牲性能的情况下实现高度的平台可移植性。

新硬件建议teensy3.1 #346

也许,这就是他们说“Arduino 风格的代码”时的意思 :-) 他们指的是 C++,对于来自一个你只看到 C 和 ASM 的世界的人来说,这有点可怕。

新硬件建议teensy3.1 #346

很公平。Motate 的基础是 C++——上层是相当直接的 C 代码

新硬件建议teensy3.1 #346

此外,在 S 曲线方面,我现在正在做同样的事情,但并不明显。现在,我知道我的 [数学-] 智力水平并不是特别高,但即便如此,为了获得可以读取移动命令和输出脉冲的适当的端到端管道——使用 S – 中间的曲线 – 远非微不足道。

新硬件建议teensy3.1 #346

的确。这是一口比较深的井。

新硬件建议teensy3.1 #346

我再次复制了所需的文件…
基于 GRBL v0.8 的 Keil 项目http://www.amega.sk/cnc/cnc.zip – 它是完整
的用于移植 GRBL v0.9 的测试项目http://www.amega.sk/cnc/stm32 -test.zip – 第一个 alpha… – 无法正常工作
它是 Eclipse 的 GNU C 项目。

我有问题 – uint32_t cycles = ceil( (TICKS_PER_MICROSECOND_1000000_60)*inv_rate );
文件 stepper.c 程序 void st_prep_buffer()。

新硬件建议teensy3.1 #346

此代码不可移植。
(TICKS_PER_MICROSECOND_1000000_60)
Limit 是 71Mhz,那么就超过了 32bit 范围。
Inv_rate 类似于 0.000400

最好这样做:
inv_rate_=TICKS_PER_MICROSECOND_1000;
uint32_t 周期=inv_rate*60000;
如果(inv_rate!=周期)周期++;// 天花板函数

因为之后不使用inv_rate,你可以这样做,只需添加
注释并可能使用
#if 0
uint32_t cycles = ceil( (TICKS_PER_MICROSECOND100000060) inv_rate );
#else // 可移植性解决方法,修改 inv_rate
inv_rate
 =TICKS_PER_MICROSECOND_1000;
uint32_t 周期=inv_rate_60000;
如果(inv_rate!=周期)周期++;// ceil 函数
#endif

#endif
进一步

2015-03-19 10:26 GMT+01:00,bronek999 notifications@github.com

I copied required file again…
Project for Keil based on GRBL v0.8 http://www.amega.sk/cnc/cnc.zip – it is full
working
Test project for porting GRBL v0.9 http://www.amega.sk/cnc/stm32-test.zip – very
first alpha… – not working correctly
It is GNU C project to eclipse.

喜欢 (0)