Contact me: hankecnc@gmail.com

20MHz与16MHz假设 #69

推推 grbl 3年前 (2023-01-25) 327次浏览

 关闭

20MHz与16MHz假设#69

民俗学 打开此问题 on Feb 17, 2012 ·13条评论

评论

20MHz与16MHz假设 #69

我们打算运行我们的Atmega644硬件在20Mhz,以挤出最大的性能,马林V1的任何部分假设一个16Mhz的时钟?例如,速度查找表(顺便说一下,这些是如何生成的)没有显示任何文档,它们是否以任何方式依赖于时钟?

问候

20MHz与16MHz假设 #69
贡献者

所有与时间相关的东西都是用16MHz时钟完成的。使用20MHz时钟时,速度稍高。我会看看我是否可以对此进行更正。这也是其他时间相关的东西,如停留时间的情况。温度采样等。

速度查找表是通过脚本和手动编辑生成的。

20MHz与16MHz假设 #69
作者

感谢Erik,不确定Arduino构建是否支持F_CPU,但这是AVR通过Makefile传递CPU频率的方式。

20MHz与16MHz假设 #69
贡献者

如果你能解决这个问题就太好了!在我的GEN 7上使用马林的那一刻,我切换到16 MHz,因为我担心在20 MHz下运行它可能会有一些副作用

20MHz与16MHz假设 #69
贡献者

您需要为此修复stepper.cpp。F_CPU是在Arduino环境中定义的,因此您可以使用它。

或者,你的饲料率将是20%以上,你可能只是生活。

20MHz与16MHz假设 #69

planner.cpp中乘数8.388608背后的故事是什么?

planner.cpp:块->加速度_速率=(长)((浮点)块->加速度_st * 8.388608);

这看起来很像旧的8.388608 MHz时钟频率上使用的一些旧的ATmega的。

20MHz与16MHz假设 #69
贡献者

这是一个神奇的常数。

2^24 /200万

2000000是计时器频率。对于20MHz版本,这一点应有所更改

魔术常数应为2^24 /(2000000 / 8)
用于计算步进时间。

20MHz与16MHz假设 #69

速度查找表是通过脚本和手动编辑生成的。

我在哪里可以找到剧本? 此外,这些表中是否存在除时钟以外的任何依赖项?

谢谢

20MHz与16MHz假设 #69
贡献者

生成查找表的程序源代码可在此处下载。

http://dl.dropbox.com/u/10560922/make_lt.c

不能保证它在其他设置下工作正常。

20MHz与16MHz假设 #69
贡献者

我只是提交了一个拉取请求(https://github.com/ErikZalm/Marlin/pull/106),请求一些补丁,以使更改F_CPU变得更容易。

20MHz与16MHz假设 #69

bgamari,我还没有看到你的拉请求的变化,所以我道歉,如果你抓住这个特定的项目:加速度被预先缩放,使得步进器中断在计算速率=初始_速率+加速度 *(时间_滴答>>24)时使用中断定时器时间_滴答到秒的正确转换。 该预调整与24沿着>>假设步进器中断所用的基频。 请注意,这不是底层CPU的时钟速度。 然而,如果您试图阐明对定时器频率所做的一些假设,那么您可能也想阐明这一点。

20MHz与16MHz假设 #69

我已经将我的Melzi升级到20MHz(包括Arduino引导加载程序和板添加),我看到步进控制的问题。当命令轴移动时,轴在距离目的地约5mm处停止,在接下来的4mm中非常缓慢地前进,然后在最后一个mm中非常快速地移动到目的地,有时会跳过。我能够通过调整魔术数字来修复它,就像ErikZalm上面的一些评论已经提到的那样。具体来说,一般修复方法是(请参见https://github.com/ambrop72/Marlin/commit/3b97c1b24b1f1b8052bf6bd939cdcc55c3a27a4e):

数据块加>速度速率=(长)((浮点)数据块加>速度st *(16777216.0 /(F_CPU / 8.0));

20MHz与16MHz假设 #69

#305 可能是这个问题的结果,如果它仍然是这个问题仍然是一个问题,在马林这些天。

fran6p 推送提交 至fran6p/马林鱼 引用了 本期 on Dec 27, 2020

20MHz与16MHz假设 #69
吉图亚行动 机器人 评论的 on Apr 23, 2022

此问题已自动锁定,因为在关闭后没有任何近期活动。请为相关错误打开一个新问题。

20MHz与16MHz假设 #69 吉图亚行动 机器人 锁定和限制与协作者的对话 on Apr 23, 2022
喜欢 (0)