评论
|
我明天会调查的。如果存在问题,则可能是设置或固件问题。 在任一模式下,硬件的使用方式相同。 |
|
我在我的机器上测试了 I2SO_Stream 和 I2SO_Static。就运动和分辨率而言,它们的行为相同。 你可以发布你使用的配置文件吗?只发布有效的。我会自己更改I2S类型。 |
|
当然,这是我的 config.yaml。目前在我的工作台上,电机安装在 x 轴上。所有配置的驱动程序都安装在板子上并初始化ok。
|
|
什么是控制板? |
|
我将花费一些时间来使用您的所有设置进行真正的测试。 观察:对于所有其他设置,加速度看起来有点快。使用 1mm/rev 时,您对电机的要求很高。 我能够将两者都放在逻辑分析仪上,它们看起来都适合生成阶跃。信号上有大约 4us 的抖动,但在 50mm/min 的进给速率下可以忽略不计。 |
|
您做了哪些工作来确保 I2S 总线上的信号完整性?我猜你还没有用示波器观察波形。您没有提供控制器的照片,因此我们无法衡量您的设计和布线实践的质量。 |
|
这与我见过的任何东西都不一样。即使 I2S 在测试中出现问题,也从未出现过长步进脉冲。 起初我以为可能是固件问题,但我认为现在更有可能是硬件问题。 |
|
如果时钟信号的信号质量差,振铃或边沿定时差异可能会导致各种错误触发。静态模式在时钟和数据之间可能具有不同的时序关系,这可能会隐藏此类问题。 |
|
谢谢您的意见。假设问题与硬件有关,我很好,并且会进一步检查。我没有采取任何复杂的措施来确保完整性。位时钟和数据线长约 50 毫米,宽约 0.254 毫米。Word 和 BCK 在每个芯片上都有一个过孔。BCK 有 10k 下拉。两种模式的时钟周期有什么不同吗? |
|
对于快速边沿信号,接地返回路径需要在整个走线长度内物理上靠近信号路径。否则,信号/返回对的阻抗会沿路径变化,可能变化很大,从而导致可能导致错误触发的反射,有时在不同的移位寄存器芯片上会有所不同。 I2S STREAM 使用硬件自动生成边缘。I2S_STATIC 使用软件实现许多功能,这些功能是在 STREAM 模式下通过硬件引擎完成的。 Bart 和我付出了很多努力来设计和验证 Bart 销售的电路板的布局和信号完整性,并利用了数十年的 EE 经验。互联网上的许多爱好者电子教程使数字设计看起来比实际上更容易,尤其是在涉及快速边沿时。 |
|
谢谢。将在我正在开发的下一个版本中考虑到这一点。 |
|
这可能有帮助,也可能没有帮助:我有一个 DLC32,I2S_STATIC 工作 100% 可靠,而 I2S_STREAM 没有:它每毫米使用更少的步数(少 30%),向前移动 4 步,然后向后移动一次会产生一个地位的差异。所以 I2S_STREAM 是不可靠的。 |
|
我注意到了这个问题,通读了它,并认为我应该补充一些数据点。我的 6-pack v1p5 在使用流时表现出类似的问题,但在静态时工作正常。我根本没有修改电路板。
如果我可以提供任何其他数据,请告诉我。 |
|
@truglodite当使用 I2S_STREAM 并将电机移动到例如 100mm、200mm、300mm 和 400mm,然后移回 0mm 时,您会得到偏移量吗?就我而言,它保持在大约。10 毫米。使用 I2S_STATIC 时,它 100% 准确并返回到原始 0mm 位置/ |
|
在我的案例中,我不能说它一直在抵消 Xmm,但它绝对没有遵循预期的时间/位置计划。这发生在今年二月,当我从 GRBL_ESP32 切换到 fluidnc 时,翻译器将我的配置从静态更改为流。当时我有一个激光蚀刻工作,由于主轴在不正确的位置发射,导致出现模糊的双像。最后,结果可能与您使用正常的非光栅移动的结果相同。我不想研究这个问题,所以我从那以后就使用了静态。静态效果完美地用于在路由器上切割和刻录激光光栅图像。 已经有一段时间了,但我依稀记得在 github 上的一个问题中提到过这个……但似乎找不到它。我同意你的看法,这不是硬件问题……或者如果是,那么甚至 Bart 的主板也会受到影响。再一次,在我的情况下,也许只是主轴命令没有同步,但它在其他方面是否正确跟踪位置?不管怎样,这对我来说似乎有点粗略。 让我知道是否有任何进一步的测试可能对这里有所帮助。如果需要,我确实有望远镜。 |
|
I2S_STREAM 不适用于激光器,因为在调制激光功率的时间和步进到达电机的时间之间存在排队延迟。这很难修复,因此我们不太可能很快更改它。 |
我想我找到了您的翻译 – 是第 1078 期吗?有点难找,因为你没有在标题中替换你的名字。我们要求人们这样做是有原因的。为我们节省时间的任何事情都是我们可以花更多的时间来实际修复错误和添加功能。 无论如何,从那个问题开始,我在 .h 文件中看到了这个:
所以我不认为翻译者把 I2S_Stream 弄错了,因为 I2S_STATIC 在 .h 文件中被注释掉了。 |
|
因陈旧而关闭。没有更多可做或可说的了。 |




你好,
在 v3.3.0(以及之前的版本)上,我在 TMC5160 驱动器上的电机使用 I2S_STATIC 引擎运行良好。我将配置设置为 32 微步,每毫米 6400 步,每分钟 50 毫米。当我慢跑 1 毫米时,电机正好按预期转动 1 圈,一切正常。
当我只将步进引擎更改为 I2S_stream 时,慢跑 1mm 会产生 2.5 多转。我首先假设我的控制器板坏了,但我认为它与软件更相关。这个问题是已知的吗?是否有一般性建议,在什么情况下使用 I2S_STATIC,何时使用 I2S_STREAM?
问候
基督教