开源改变世界

在 BTT SKR PRO 1.2 上测试 #60

推推 grbl 3年前 (2023-02-08) 419次浏览
关闭
gambrose 打开了这个问题 2022 年 2 月 3 日 · 22条评论
关闭

在 BTT SKR PRO 1.2 上测试#60

gambrose 打开了这个问题 2022 年 2 月 3 日 · 22条评论

评论

在 BTT SKR PRO 1.2 上测试 #60
贡献者

我有一个 BIGTREETECH SKR PRO V1.2,我正在尝试让 grbl 运行。

我尝试使用 platform.io 上的说明进行构建。所有配置的环境都为一个环境构建btt_skr_pro_1_1。哪个烦人的是我需要的。

从 master checked--recurse-submodules构建我得到以下构建错误

$ pio run --environment btt_skr_pro_1_1
Processing btt_skr_pro_1_1 (board: genericSTM32F407VGT6; platform: ststm32; framework: stm32cube)
---------------------------------------------------------------------------------------------------------------------
Verbose mode can be enabled via `-v, --verbose` option
CONFIGURATION: https://docs.platformio.org/page/boards/ststm32/genericSTM32F407VGT6.html
PLATFORM: ST STM32 (15.2.0) > STM32F407VG (128k RAM. 1024k Flash)
HARDWARE: STM32F407VGT6 168MHz, 128KB RAM, 1MB Flash
DEBUG: Current (stlink) External (jlink, stlink)
PACKAGES:
 - framework-stm32cubef4 1.26.2
 - tool-ldscripts-ststm32 0.2.0
 - toolchain-gccarmnoneeabi 1.70201.0 (7.2.1)
LDF: Library Dependency Finder -> https://bit.ly/configure-pio-ldf
LDF Modes: Finder ~ off, Compatibility ~ soft
Found 80 compatible libraries
Scanning dependencies...
Dependency Graph
|-- <bluetooth>
|-- <grbl>
|-- <keypad>
|-- <laser>
|-- <motors>
|-- <odometer>
|-- <spindle>
|-- <Core>
|-- <Class>
|-- <App>
|-- <Target>
|-- <eeprom>
Building in release mode
Compiling .pio/build/btt_skr_pro_1_1/FrameworkHALDriver/Src/stm32f4xx_hal.o
Compiling .pio/build/btt_skr_pro_1_1/FrameworkHALDriver/Src/stm32f4xx_hal_adc.o
Compiling .pio/build/btt_skr_pro_1_1/FrameworkHALDriver/Src/stm32f4xx_hal_adc_ex.o
Compiling .pio/build/btt_skr_pro_1_1/FrameworkHALDriver/Src/stm32f4xx_hal_can.o
... removed from brevity ... 
Compiling .pio/build/btt_skr_pro_1_1/lib715/grbl/wall_plotter.o
Compiling .pio/build/btt_skr_pro_1_1/lib7fe/keypad/keypad.o
Compiling .pio/build/btt_skr_pro_1_1/lib256/laser/coolant.o
Compiling .pio/build/btt_skr_pro_1_1/lib256/laser/ppi.o
Compiling .pio/build/btt_skr_pro_1_1/liba00/motors/trinamic.o
In file included from Inc/driver.h:119:0,
                 from keypad/keypad.c:26:
Inc/btt_skr_pro_v1_1_map.h:25:2: error: #error "This board has STM32F407 processor with a 8MHz crystal, select a corresponding build!"
 #error "This board has STM32F407 processor with a 8MHz crystal, select a corresponding build!"
  ^~~~~
*** [.pio/build/btt_skr_pro_1_1/lib7fe/keypad/keypad.o] Error 1
In file included from Inc/driver.h:119:0,
                 from laser/ppi.c:24:
Inc/btt_skr_pro_v1_1_map.h:25:2: error: #error "This board has STM32F407 processor with a 8MHz crystal, select a corresponding build!"
 #error "This board has STM32F407 processor with a 8MHz crystal, select a corresponding build!"
  ^~~~~
*** [.pio/build/btt_skr_pro_1_1/lib256/laser/ppi.o] Error 1
In file included from Inc/driver.h:119:0,
                 from laser/coolant.c:24:
Inc/btt_skr_pro_v1_1_map.h:25:2: error: #error "This board has STM32F407 processor with a 8MHz crystal, select a corresponding build!"
 #error "This board has STM32F407 processor with a 8MHz crystal, select a corresponding build!"
  ^~~~~
*** [.pio/build/btt_skr_pro_1_1/lib256/laser/coolant.o] Error 1
In file included from Inc/driver.h:119:0,
                 from motors/trinamic.c:25:
Inc/btt_skr_pro_v1_1_map.h:25:2: error: #error "This board has STM32F407 processor with a 8MHz crystal, select a corresponding build!"
 #error "This board has STM32F407 processor with a 8MHz crystal, select a corresponding build!"
  ^~~~~
*** [.pio/build/btt_skr_pro_1_1/liba00/motors/trinamic.o] Error 1
============================================ [FAILED] Took 20.85 seconds ============================================

Environment      Status    Duration
---------------  --------  ------------
btt_skr_pro_1_1  FAILED    00:00:20.853
======================================= 1 failed, 0 succeeded in 00:00:20.853 =======================================

更改-D HSE_VALUE=25000000-D HSE_VALUE=8000000确实可以构建它。
8000000 接缝更符合 8MHz 晶体注释。

我已将 firmware.bin 复制到 SD 卡并刷写电路板,但它没有作为 USB 串行端口出现在 Windows 中。

你能建议接下来要尝试的步骤吗?

在 BTT SKR PRO 1.2 上测试 #60
贡献者作者

好的,所以我取得了更多进展。

根据#46
的一些评论, 我也更改board_build.ldscript = STM32F407VGTX_FLASH.ldboard_build.ldscript = STM32F407VGTX_BL32K_FLASH.ld
并替换-D VECT_TAB_OFFSET=0x8000-D HAS_BOOTLOADER

我也设置了 -D USB_SERIAL_CDC=1

这使我成功地通过 USB 串口连接到电路板。

在 BTT SKR PRO 1.2 上测试 #60
贡献者作者

btt_skr_pro_v1_1_map.hRESET_PIN 定义为 GPIOG4 ,并将其注释为 E0 限制。
这不是 E0 限制引脚。即GPIOE15
G4在EXP1插座中。

进给保持和循环启动引脚也没有映射到 e1 和 e2 限制的评论。

@terjeio您会接受 PR 来修复这些映射以匹配评论吗?即 E0、E1 和 E2 引脚。

在 BTT SKR PRO 1.2 上测试 #60
贡献者

你会接受 PR 来修复这些映射吗

是的,请。我依靠社区对许多看板的反馈,因为我无法自己验证地图——而且我不会购买它们仅用于验证。

在 BTT SKR PRO 1.2 上测试 #60
贡献者作者

我一直在测试更新映射。将复位和循环启动引脚更新为 E0 和 E2 限制引脚是一种享受。

但是将进给保持引脚更新为 GPIOE10(E1 限制)给我一个编译错误。

Src/driver.c:109:2: error: #error Interrupt enabled input pins must have unique pin numbers!
 #error Interrupt enabled input pins must have unique pin numbers!
  ^~~~~
*** [.pio/build/btt_skr_pro_1_1/src/driver.o] Error 1

该错误没有提供任何关于使用同一引脚的线索,因此我对如何解决这个问题有点不知所措。

btt_skr_pro_v1_1_map.h如果 N_ABC_MOTORS 大于 0,则映射此引脚,但在btt_skr_2_tmc2130构建配置中并非如此。我通过尝试在删除此部分的情况下进行构建来检查这是否导致了此问题。

所以我的问题是:

  1. 如何解决管脚冲突?
  2. 如果 N_ABC_MOTORS > 0 将与它相冲突,映射重置、进给保持和循环开始到 E0、1、2 限位开关是否正确。
  3. 作为 CNC 新手,是否有关于复位、进给保持和循环启动销实际用途/用途的任何好的参考资料。
在 BTT SKR PRO 1.2 上测试 #60
贡献者

该错误没有提供任何关于使用同一引脚的线索,因此我对如何解决这个问题有点不知所措。

您必须检查映射文件才能找到,搜索 10 – 它是一个不同的引脚,映射到一个中断中断启用引脚功能。

如何解决管脚冲突?

通过不将具有相同引脚编号的两个引脚映射到需要启用中断的引脚功能。这是 STM32 架构的限制。一个选项是不断轮询冲突的引脚——但我不喜欢那个选项。

如果 N_ABC_MOTORS > 0 将与它相冲突,映射重置、进给保持和循环开始到 E0、1、2 限位开关是否正确。

如果这是关于将任何给定的引脚映射到两个函数,那么不,那不是正确的做法。

作为 CNC 新手,是否有关于复位、进给保持和循环启动销实际用途/用途的任何好的参考资料。

进给保持和循环开始

与冷启动或 MCU 重置相比,重置以更轻松的方式重置控制器。运动、主轴和冷却液在复位时停止 – 一些数据可能会保持完整,例如位置和归位状态,具体取决于断言复位时发生的情况。grblHAL 有一个比传统 grbl 保留更多数据的“软”版本。这称为停止,复位输入可以“接线”为内部复位信号或停止信号。

在 BTT SKR PRO 1.2 上测试 #60
贡献者作者

如果我对你的理解正确的话,你是说无论端口如何,引脚都必须是唯一的。

所以对于 SKR PRO 板,它在 PB10 上有 X 限位开关,在 PE10 上有 E1 限位开关。这不受支持,因此一个物理引脚需要保持未使用状态。

在 BTT SKR PRO 1.2 上测试 #60
贡献者

如果我对你的理解正确的话,你是说无论端口如何,引脚都必须是唯一的。

是的,这取决于 MCU 的制造方式(EXTI 控制器)。

所以对于 SKR PRO 板,它在 PB10 上有 X 限位开关,在 PE10 上有 E1 限位开关。这不受支持,因此一个物理引脚需要保持未使用状态。

只有一个可以启用中断,因此用于硬限位检测,归位是可以的。不过可以添加代码来轮询输入。我称其为设计错误,LPC176x 3D 打印机板更糟糕——可能是因为 Marlin 不支持硬限制?

在 BTT SKR PRO 1.2 上测试 #60
贡献者作者

我创建了#61,它将控制信号映射到 EXP2 端口中的引脚。

这些不像限位引脚那样容易跳接到地面,因此可能需要反转控制信号才能运行。

在 BTT SKR PRO 1.2 上测试 #60

您使用的是SD卡固件上传方式吗?我正在使用 STlink。能够编译和刷新 grbl-Hal,但在计算机上未检测到串行。我错过了一步吗?

在 BTT SKR PRO 1.2 上测试 #60
贡献者作者

是的,我用SD卡上传固件。

除了为 SD 上传获取正确的固件偏移量之外,我还必须定义USB_SERIAL_CDC使 serial over USB 工作。

在 BTT SKR PRO 1.2 上测试 #60

啊,我明白了。我假设使用 stlink 时偏移量不同?我想弄清楚我的问题是否与串行通信或闪烁过程有关。我已经在测试中包含了 USB_SERIAL_CDC 参数。

在 BTT SKR PRO 1.2 上测试 #60
贡献者

啊,我明白了。我假设使用 stlink 时偏移量不同?

是的,当您使用 ST-link 进行闪存时,您将覆盖引导加载程序并且没有偏移量。

我想弄清楚我的问题是否与串行通信或闪烁过程有关。

如果您使用错误的偏移量进行闪烁,则代码将不会运行。你是用STM32CubeIDE编译的吗?如果是这样,您必须从构建工具(锤子图标)中选择正确的构建 – “Release F407 8Mhz”(或相应的调试构建)。

在 BTT SKR PRO 1.2 上测试 #60

我实际上使用 platformio 通过 stlink 来刷新板。一切编译和上传成功。

是否有某些功能需要使用 STM32CubeIDE?

在 BTT SKR PRO 1.2 上测试 #60

再一次问好。我已经切换回 SD 卡上传方法,但仍然无法通过 USB 进行通信。它编译并且我已经验证是否firmware.bin已正确上传。我已按照您的步骤进入 T,但仍然遇到问题。我还在 STM32CubeIDE 上编译了它并得到了相同的结果……这让我相信我错过了一步。这是在我的 .ini 文件中设置环境的方式:

[env:btt_skr_pro_1_1]
board = genericSTM32F407VGT6
board_build.ldscript = STM32F407VGTX_BL32K_FLASH.ld
build_flags = ${common.build_flags}
  # See Inc/my_machine.h for options
  -D BOARD_BTT_SKR_PRO_1_2=
  # 8MHz crystal
  -D HSE_VALUE=8000000
  -D HAS_BOOTLOADER
  -D USB_SERIAL_CDC=1
lib_deps = ${common.lib_deps}
  eeprom
lib_extra_dirs = ${common.lib_extra_dirs}

@gambrose,我已经检查了您的叉子,没有发现与我们的设置有任何差异。还有什么我想念的吗?

在 BTT SKR PRO 1.2 上测试 #60
贡献者作者

@CobraPi
由于您之前一直在使用臭味刷电路板,因此您可能已经擦除标准引导加载程序。

在 BTT SKR PRO 1.2 上测试 #60

@gambrose我在网上找到了原始的引导加载程序,并用 STLink 对其进行了刷新。我已经通过 SD 卡将 Klipper 固件闪存到电路板,没有出现任何问题,从而验证了这一点。您是否对驱动程序文件或映射文件进行了任何其他更改?

在 BTT SKR PRO 1.2 上测试 #60
贡献者作者

@CobraPi恐怕没有,你看起来拥有我所做的所有更改。

在 BTT SKR PRO 1.2 上测试 #60

@gambrose好的,我会继续排除故障。与 Arduino 相比,您连接到串行接口的方式有什么不同吗?

你如何连接到电路板?

在 BTT SKR PRO 1.2 上测试 #60
贡献者

与 Arduino 相比,您连接到串行接口的方式有什么不同吗?

不,该板应该像 Arduino 板一样显示为 com 端口。

你在 Windows 上吗?如果是这样,当您连接电路板时可用的 com 端口是否有所不同(在设备管理器中检查)?如果没有,则要么添加一些代码(例如此代码)以查看电路板是否存在,要么使用 Eclipse/ST-Link 进行调试。

在 BTT SKR PRO 1.2 上测试 #60

我错过了 USB 跳线……真是个愚蠢的错误。我真的很享受扩展功能!也能够让它与 ST-link 一起工作。谢谢你们的帮助。

在 BTT SKR PRO 1.2 上测试 #60

将固件上传到电路板后出现奇怪的错误。我正在使用 platformio 和 SD 卡上传方法。我也试过使用 ST 链接,但得到了同样的错误。奇怪的是它之前是有效的。这是我得到的错误:

GrblHAL 1.1f ['$' or '$HELP' for help]
ALARM:16
[MSG:Fatal: Incompatible driver (4)]

这个错误的根源是什么?这可能是由硬件问题引起的吗?

在 BTT SKR PRO 1.2 上测试 #60
贡献者

这个错误的根源是什么?

我最好的猜测是您已经更新到更高版本而没有引入子模块