注释
acaballero6270 评论 on 1 Feb
我将 338 美元设置为 7。还是一样。 |
acaballero6270 评论 on 2 Feb
是的,我愿意。但是,我对调试并不熟悉。我可以试一试。 |
好的,很好。您应该使用调试版本进行调试,因为优化可能会通过重新排列代码来弄乱代码。 在btt_skr_2.0.c中,在第 518 行设置断点,应该多次命中。然后在第 255 行尝试一个。 您也可以尝试切换到 btt_skr_1.1.c 板支持代码,但这需要更改映射文件,因为 SPI 和 UART 引脚的定义不同。 |
我在两条线上都做了断点。它确实击中了他们。我尝试了 btt_skr_1.1.c 但我一直得到相同的结果。 |
acaballero6270 评论 2月2日
这是 Bigtreetech TMC2209-V1.2 驱动板。它有 Trinamic TMC2209 芯片。 |
acaballero6270 评论 2月2日
他们带有一个已经焊接到引脚 4 的跳线。这是 uC 上 UART 的 RX 引脚所在的位置。奇怪的是只有一个引脚(X电机的PE0)。虽然 2209 的数据表显示 2 个引脚,一个 RX 和一个 TX 通过一个电阻连接在一起,然后 RX 信号直接连接到 uC 引脚。 |
acaballero6270 评论 2月3日
因为只有一根线。它必须需要半双工通信。 |
acaballero6270 评论 2月4日
试过 338 美元=1。没有什么变化。事实上,当我这样做时,我收到消息“无法与步进驱动程序通信!”。我还注意到,如果我重置板,338 美元又回到 7。 |
我已经使用btt_skr_2.0.c代码验证了与 F446 和单个 TMC2209 的驱动程序通信,所以我认为代码是好的。F429 似乎与 F407 足够相似,因此这应该不是问题。 有点奇怪,338 美元的设置在重置时恢复为 7,如果你改变另一个设置,比如 0 = 5,它也会恢复吗? 可以注意到,在初始化 TMC 驱动程序之前,我必须向 LPC176x 驱动程序添加延迟(TMC2130 为 100 毫秒),想知道这是否也可能是一个问题,因为电机电源是由 MCU 开启的。如果是这样,一个 |
acaballero6270 评论 2月6日
奇怪的事情正在发生。我以前从未注意到这一点。每当我更改任何设置时,它们都会在重置后恢复。我重新加载了固件,然后使用 LaserGrbl 导入我之前保存的所有设置,设置更改得很好,即使在重置后仍然存在。如果我尝试通过导入或手动更改再次更改它们,它们会在重置后恢复。 |
这适用于所有设置吗?正如我上面所问的,也是 0 美元?
即使实际上调用了代码,您也必须找出为什么 UART 引脚上没有信号。如果您在此处设置断点,您可以单步执行发送的每个位并测量输出,即使使用电压表也是如此。如果没有任何东西到达驱动程序,则代码有问题(奇怪,因为它对我有效,但为了记录,我更改了 X 引脚,因为我测试的 MCU 上没有 E 端口)或引脚映射不是正确的。 代码的一个潜在问题是空的 while 循环,它们应该至少执行一条 NOP 指令——一些 ARM 处理器似乎不介意其他处理器这样做。 |
acaballero6270 评论 2月6日
好的。通过您指示的断点,我注意到它正在与您怀疑的 Z 轴对话。我相信我无法更改设置的原因是因为 Lasergrbl 导入。重新加载固件后,我可以正常更改设置。然后我设置 $338=1,现在我在重置时在 X 轴上看到一个信号。但是,我不应该也看到 $338=7 的信号吗? |
我编译了另一个版本的 Marlin。它完美无缺。与司机沟通。来回有信号。查看驱动器上的信号,它似乎是 9600 波特。而 GrblHal 发送的信号看起来至少快两倍。我能看到的只是一个信号,但没有任何回复。波特率是否在代码中的某处指定?不幸的是,我无法在动态模式下控制激光。 |
这是数据表中指定范围的下限: 可以使用从 9600 波特到 500k 波特甚至更高的波特率(使用外部时钟时)。无需配置波特率,因为 TMC2209 会自动适应主机的波特率。
这解释了错误消息。当我使用我的 F446 设置进行测试时,我发现代码可以正常工作,并且对于在我上面链接到的问题中评论的用户来说,我觉得很奇怪。
波特率在这里设置。 |
acaballero6270 评论 2月10日
我尝试了新版本,但它也不与驱动程序通信。我查看了 btt_skr_2.0.c 并且 TRINAMIC_ENABLE == 2209 的部分大部分都消失了。所以我没有再尝试了。 |
两个版本的 UART 代码已合并到tmc_uart.c 中,TRINAMIC_ENABLE == 2209 用于设置用于保护代码的新符号 TMC_UART_ENABLE。这样可以更轻松地添加新的驱动程序变体,而无需编辑当前只有两个版本的低级数据交换代码,即 SPI 和 UART。
我觉得有点奇怪@WellDone2094现在似乎能够与驱动程序进行通信,而您却不能,是因为他拥有 F407 变体以及 F407 和 F427 处理器对 UART 计时器的计时不同吗?仅供参考,我用于每 10 微秒测试一次输出的 F446。 |
acaballero6270 评论 2月11日
正确的。我只能与 X 驱动程序通信。即 SWSBAUDRATE 设置为 25000。这使得最小脉冲为 40 微秒。这仅适用于 $338=1。 |
使用默认波特率的 $331=1 是否会从驱动程序产生任何响应?
到带有您要使用的端口和引脚的映射文件。产生的脉冲应该在来自驱动器的数据脉冲的中心。在第 288 行设置断点以在读取驱动程序的第一个回复后停止。在此断点处,您还可以检查 |
acaballero6270 评论 2月11日
好的。在我提出您的建议之前,我再次下载了整个更新的模块和子模块。现在情况不同了。使用所有默认值。我仍然收到无法与驱动程序通信错误。338 美元 = 3 M122 给我: 使用 $338=7 我得到无法通信错误。所以,我认为它只能与 2 个驱动程序通信。 |
acaballero6270 评论 2月12日
在我设置 $338=4 的那一刻,我在 Z 上看到一个短信号,我得到了无法与驱动程序通信错误。M122 给出相同的错误,但在任何驱动程序上都没有信号。 |
acaballero6270 评论 2月12日
使用 M122 II 获得相同的短信号(约 448 微秒,100K 波特率)。司机没有回应。此外,它似乎挂断了没有 OK 响应。 |
acaballero6270 评论 2月12日
acaballero6270 评论 2月12日
通电 |
acaballero6270 评论 2月12日
这种看似奇怪的电压电平通常发生在设置为开漏的输出中。没有上拉或下拉。在发射信号之后,它会在短时间内保持这种状态。我已经交换了驱动程序 |
acaballero6270 评论 2月12日
而你的怀疑是正确的!我再次更改了驱动程序,现在一切正常!!!即使它是开箱即用的新驱动程序,也是坏驱动程序。 |
acaballero6270 评论 2月12日
我相信这解决了我的司机沟通问题。非常感谢你所做的一切。 |
acaballero6270 评论 2月12日
感谢您一直以来的支持。我相信 GrblHal 会成功的。 |
acaballero6270 评论 on 1 Feb
我使用 TRINAMIC_ENABLE 2209 在我的 bigtreetech SKR2 板上启用了 trinamic 驱动程序。当我获得更多设置(如 140 美元 150 美元)时,它似乎可以工作。但是,当我尝试 M122 时,我收到消息:“无法与步进驱动器通信!”。我只想设置微步。如果我读到 150 美元,我得到 16。但是,电机的运动就像它有 8 个微步一样。尝试将 $150 设置为另一个值不起作用。我一直得到 16。如 SKR2 用户指南中所述,我在 UART 信号上只有一个跳线。如果我将示波器连接到驱动程序 (UART) 上的引脚 4,我看不到任何信号。我必须定义其他符号吗?