Contact me: hankecnc@gmail.com

移植到 ARM(Arduino Due、MK64F、PSOC 4200/M) #1030

推推 grbl 3年前 (2022-10-31) 380次浏览 0个评论
关闭
rspievakc 打开了这个问题 2016 年 6 月 29 日 · 17 条评论
关闭

移植到 ARM(Arduino Due、MK64F、PSOC 4200/M)#1030

rspievakc 打开了这个问题 on 29 Jun 2016 · 17 条评论

注释

移植到 ARM(Arduino Due、MK64F、PSOC 4200/M) #1030

斯皮耶瓦克 评论 2016 年 6 月 29 日  

我正在将代码移植到 ARM 微控制器和 GCC 工具链。我的问题是,是否有任何项目已经这样做了?在这种情况下,我可以为它做出贡献,而不是从头开始。
我已经调整了最新的源代码并准备好了硬件抽象。我还创建了一个设置,它使用 Segger System View + JLink 来跟踪执行点并验证逻辑 + 时序是否都正确。硬件抽象使用内联语句来避免调用分支。
我还在使用 NXP 的 FRDM-64F 和 Cypress PSOC 4200 和 PSOC 4200M 对其进行测试。
我的下一个问题是我应该创建一个新的 GitHub 存储库还是应该在 GRBL 树中共享代码?
感谢您的帮助。

移植到 ARM(Arduino Due、MK64F、PSOC 4200/M) #1030

我目前也在移植到 ARM、德州仪器 Tiva C (TM4C123GH6PM)。我的 HAL 实现基于函数指针。我会将代码更改为库,因为我的目的是将其集成到我制作的CO2 激光控制器的另一个项目中。我并不着急,因为我的控制器已经支持 Mach3 – GRBL 端口将在今年年底完成?

我知道 GRBL 核心团队也在研究 HAL – 但我不知道他们的方法是什么,也许是因为 8 位处理器仍需支持这一事实而受到限制?

移植到 ARM(Arduino Due、MK64F、PSOC 4200/M) #1030

您为 tivaC 制作不同端口的原因是什么?
Il 02/lug/2016 23:05 “Terje Io” notifications@github.com ha scritto:

我目前也在移植到 ARM、德州仪器 Tiva C
(TM4C123GH6PM)。我的 HAL 实现基于函数指针。我
会将代码更改为库,因为我的目的是将其集成到
CO2 激光控制器的另一个项目中
http://www.buildlog.net/forum/viewtopic.php?f=16&t=2625&p=24072#p24072
我有制成。我并不着急,因为我的
控制器已经支持 Mach3 – GRBL 端口将在今年年底完成?

我知道 GRBL 核心团队也在研究 HAL – 但我不
知道他们的方法是什么,也许是因为 8 位
处理器仍需支持这一事实而受到限制?


您收到此消息是因为您订阅了此线程。
直接回复此邮件,在 GitHub
#1030(评论)
上查看,或 将帖子静音
https://github.com/notifications/unsubscribe/AJEOltHQWj4jdqV1_ox0gSkJV8qBP5p6ks5qRtKwgaJpZM4JAXOb

移植到 ARM(Arduino Due、MK64F、PSOC 4200/M) #1030

@cri-s不确定您所说的“不同”是什么意思,无论如何,我的主要原因是我的激光控制器是基于 Tiva C 的,并且该端口是针对此的。另一个原因是我想做一些硬件/固件设计只是为了好玩(和学习)——即使我可以花更少的钱购买现有的控制器。

移植到 ARM(Arduino Due、MK64F、PSOC 4200/M) #1030

@terjeio: 没有多少“团队”Grbl,因为很长一段时间以来都是我自己。v1.0 发布后不久将放弃对 8 位的支持。我将继续投入我所有的时间来继续开发 ARM 版本,这是对 Grbl 基础代码的完全重写。Grbl 本身是专门为 8 位 AVR 设计的,并且有很多“令人讨厌”的代码,这些代码是为了最大限度地提高性能和减少编译的闪存大小而编写的。主要是后者。ARM 版本没有这样的限制,并且有许多算法改进将使其在基本层面上变得更好。我不会透露它们是什么,但它们会很棒。

移植到 ARM(Arduino Due、MK64F、PSOC 4200/M) #1030

有没有办法在 ARM 的移植工作上进行协作?
Em 2 de jul de 2016 19:37,“Sonny Jeon” notifications@github.com escreveu:

关闭#1030 #1030


您收到此消息是因为您编写了该主题。
直接回复此邮件,在 GitHub
#1030(评论)
上查看,或将 帖子静音
https://github.com/notifications/unsubscribe/AEa6D0-w29DE1eN7mpdlxCXy1RBqAyMZks5qRugMgaJpZM4JAXOb

移植到 ARM(Arduino Due、MK64F、PSOC 4200/M) #1030

@rspievakc: 不,目前不是,但我会定期关注人们将 Grbl 移植到不同的 ARM 芯片。了解其他人如何解决问题总是有帮助的。

移植到 ARM(Arduino Due、MK64F、PSOC 4200/M) #1030

@rspievakc:lasaurGrbl 是一个始终针对 tivaC123 的端口,
即使该板和 CPU
是由 Ti 以不同的名称出售的。我想2 年前@mschorer
将 grbl 移植到 tivaC123G,https: //github.com/mschorer/grbl,具有
简单干净的抽象接口。

2016-07-03 0:35 GMT,Sonny Jeon notifications@github.com

@rspievakc: 不,目前不是,但我会定期关注人们将
Grbl 移植到不同的 ARM 芯片。了解其他人如何
解决问题总是有帮助的。


你收到这个是因为你被提到了。
直接回复此邮件或在 GitHub 上查看:
#1030(评论)

移植到 ARM(Arduino Due、MK64F、PSOC 4200/M) #1030

@cri-s:非常感谢指向现有 Tiva 端口的指针 – 我会调查它。我一眼就能看出 HAL 是基于 #define 的——我使用的是一个包含指向函数的指针的结构,这意味着 HAL 将与不同实现的主 Grbl 代码库完全分离——从而更容易移植和维护(国际海事组织)。

移植到 ARM(Arduino Due、MK64F、PSOC 4200/M) #1030

很高兴看到“端口”没有被忽视.. :-)

我的目标是:

  • 不增加原始 328 代码大小
  • 创建尽可能薄的抽象层
  • 在 tiva 上尽快开始
  • 可能使@chamnit包括这样一个抽象层,所以我不必
    自己维护它;-)

到目前为止,我已经为 tiva 做了一个 boosterpack/shield,增加了
对 spi、正交编码器的基本支持……这将驱动我的下一个自制
cnc。
可悲的是,我最近没有找到很多时间来解决这个问题.. :-(
Am 03.07.2016 17:25 schrieb “Terje Io” notifications@github.com

@cri-s https://github.com/cri-s:非常感谢指向
现有 Tiva 端口的指针 – 我会调查它。我一眼就能看出
HAL 是基于 #define 的——我使用的是一个包含指向
函数的指针的结构,这意味着 HAL 将与
不同实现的主 Grbl 代码库完全分离——从而更容易
移植和维护(国际海事组织)。


你收到这个是因为你被提及了。
直接回复此邮件,在 GitHub
#1030 (comment)
上查看,或 将帖子静音
https://github.com/notifications/unsubscribe/ACW6b-tSjWjezOsy61o_vWdeJz_6H664ks5qR9RvgaJpZM4JAXOb

移植到 ARM(Arduino Due、MK64F、PSOC 4200/M) #1030

搜福又失败了!但是这一次,稍微有点扭曲……在我的工作进展顺利之后很久,这个线程就出现了(并且引起了我的注意)。
所以我在过去的三个多星期里基本上都在做它看起来的样子@mschorer正在做……类似的目标。由于缺少具有足够引脚的 atmega,我一直在移植到 PIC32,但目的是将硬件级接口与主要 grbl 功能分开,以便重新移植到另一个架构应该像编写适当的宏一样简单(引脚-stuff)和功能(定时器设置、ISR 等)。
同样,由于缺少 atmega,我在整个过程中一直在用原始版本编译检查所有更改,经过数百次更改后,atmega328p 仍然编译为与原始版本(.8j,如我记得)。
我已经在 makefile(等)中添加了一些 mods 以考虑多种架构,#包括特定于架构的头文件,并在适当的情况下将特定于架构的 C 文件添加到 SRC 等。否则,基本上,我已经done 看起来与 TivaC 端口非常相似。
尚未准备好将其公开,但愿意与有兴趣与原版进行比较的开发人员分享。
到目前为止,所缺少的只是对 eeprom 的支持……那一点是非常特定于架构的,因此仍在考虑如何/是否要去做。
由于缺少带有步进/目录输入的步进驱动器,我还计划直接在 grbl 中实际实现微步进,作为一种选择。虽然,由于我的芯片的 5pwm 输出仅限于两个轴,但没有理由不能在其他架构上扩展到更多。我认为它更像是对原始 grbl step/dir 代码的扩展,而不是对其步进算法的重写;基本上只是用函数调用(如果启用)替换 step/dir pin-toggles,而不是他们当前调用的 GPIO_write() 样式宏。

移植到 ARM(Arduino Due、MK64F、PSOC 4200/M) #1030

这是我将 GRBL 1.0d 移植到 STM32F103C8T6 的尝试。https://www.youtube.com/watch?v=ehgXMa2spWM&feature=youtu.be。我只有3020 CNC,没有测试限位开关。我将很快购买限位开关安装在我的 CNC 控制器上以测试该功能。未实现主轴或冷却液功能。它使用微型 USB(串行端口模拟)。EEPROM 实现使用 1K 的闪存来存储数据。我使用
CooCox IDE。它还没有准备好公开,但我可以发送给任何有兴趣的人。我发现这个模块实际上有 128KB 闪存而不是数据表中发布的 64KB 闪存。

移植到 ARM(Arduino Due、MK64F、PSOC 4200/M) #1030

 评论 2016 年 7 月 11 日  

“usbcnc” 怎么联系你?

移植到 ARM(Arduino Due、MK64F、PSOC 4200/M) #1030

给你。还有一个 WINdows 模拟项目(有助于调试代码)。您可能需要修改文件夹。STM32 项目文件在 STM32GRBL 下。grbl 文件位于 grbl-masterwin 下。(是的,Windows 模拟文件在其中)。要为 STM32 启用 EEPROM 仿真,您需要在 grbl.h 中取消注释 NOEEPROMSUPPORT。如果你只是在你的机器上运行它或调试代码,真的没有必要,因为它最终可能会扼杀闪存的寿命。但是这个功能有效。我所做的是使用刷新函数来写入闪存,而不是使用 STM 的 EEPROM 库。那一个至少需要 2K 闪存,并且可以轻松模拟 GRBL 的 EEPROM。对 Windows 也进行了相同的仿真。(检查 eeprom.c)。

要运行 Windows 模拟,如果您没有任何串行端口,则它接受键盘。如果你有两个串口并互相连接TX-RX,你用一个串口的参数启动win-grbl(比如grbl COM3),你可以在另一个串口上运行gcode-sender,它可以工作,你可以把任何地方的断点来调试代码。

我首先移植到 Windows,因为 Windows 不喜欢某些 C 风格(在中间声明变量),所以我改变了很多)。
grbl-masterwin.zip

移植到 ARM(Arduino Due、MK64F、PSOC 4200/M) #1030

@ericwazhung: 惊人的!感谢分享!

移植到 ARM(Arduino Due、MK64F、PSOC 4200/M) #1030

这是我对 HAL 抽象的方法。代码未经物理机测试且不完整,仅用于分享想法。

步进驱动器 ISR 在 80MHz Tiva C 处理器上的执行时间约为 7uS…

grbl-TivaC.zip

移植到 ARM(Arduino Due、MK64F、PSOC 4200/M) #1030

终于学会了如何使用 github 推送更改。
这是我的 STM32F108C8T6 端口和 Windows 模拟。https://github.com/usbcnc/grbl-Mega
Windows 版本完全模拟。STM32F108C8T6 端口在台式机 CNC3020 上测试。Mach 3 无需移除并行端口板。只需将一个小型转换板连接到控制箱,系统就可以以极低的成本运行。

移植到 ARM(Arduino Due、MK64F、PSOC 4200/M) #1030
 
添加标题文本添加粗体文本,<Ctrl+b>添加斜体文本,<Ctrl+i>
添加引号,<Ctrl+Shift+.>添加代码,<Ctrl+e>添加链接,<Ctrl+k>
添加项目符号列表,<Ctrl+Shift+8>添加编号列表,<Ctrl+Shift+7>添加任务列表,<Ctrl+Shift+l>
直接提及用户或团队引用问题、拉取请求或讨论

添加已保存的回复

喜欢 (0)

您必须 登录 才能发表评论!