开源改变世界

未检测到电路板 #45

推推 grbl 3年前 (2023-02-08) 222次浏览
关闭
bthird 打开了这个问题 2021 年 11 月 22 日 · 21条评论
关闭

未检测到电路板#45

bthird 打开了这个问题 2021 年 11 月 22 日 · 21条评论

评论

未检测到电路板 #45

我在通过 SD 卡将固件上传到 BTT SKR2 板时遇到问题。当通过 SD 卡插入固件时,未检测到电路板。万一这是一块有问题的板子,我上传了 Marlin 2.0,它又可以工作了。

我所做的唯一更改是:

inc/my_machine.h 删除注释
#define BOARD_BTT_SKR_20 // 基于 F407 的 3D 打印机板

platfomio.ini 添加:

[env:btt_skr_2]
board = genericSTM32F407VGT6
board_build.ldscript = STM32F407VGTX_BL32K_FLASH.ld
build_flags = ${common.build_flags}
-D BOARD_BTT_SKR_20=
-D HSE_VALUE=8000000
-D USB_SERIAL_CDC=1
-D VECT_TAB_OFFSET= 0 ${common.build_flags} -D VECT_TAB_OFFSET=
0
eeprom
lib_extra_dirs = ${common.lib_extra_dirs}

我还尝试使用 board_build.ldscript = STM32F407VGTX_FLASH.ld 来构建不同的电路板

我对 grblhal 寄予厚望,我真的希望它能正常工作,因为 GRBL 在我的机器上非常棒。

执行任务:C:\Users\brian.platformio\penv\Scripts\platformio.exe run –environment btt_skr_2 <

警告!-d board_btt_skr_20忽略[env:btt_skr_2] 部分中的未知配置选项
警告!-d hse_value忽略[env:btt_skr_2] 部分中的未知配置选项
警告!-d usb_serial_cdc忽略[env:btt_skr_2] 部分中的未知配置选项
警告!-d vect_tab_offset忽略[env:btt_skr_2] 部分中的未知配置选项
处理 btt_skr_2(板:genericSTM32F407VGT6;平台:ststm32;框架:stm32cube)
———————— ———————————————- ———————————————- ———————————————- ————————– 可以通过-v, --verbose选项
配置启用详细模式:https://docs.platformio.org/page/boards/ststm32/genericSTM32F407VGT6.html
平台:ST STM32 (15.0.0) > STM32F407VG(128k RAM。1024k 闪存)
硬件:STM32F407VGT6 168MHz、128KB RAM、1MB 闪存
DEBUG:当前(stlink) 外部 (jlink, stlink) 包

  • 框架-stm32cubef4 1.26.2
  • 工具-ldscripts-ststm32 0.1.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
    找到 78 个兼容库
    扫描依赖…
    依赖关系图
    |–
    |–
    |–
    |–
    |–
    |–
    |–
    |–
    |–
    |–
    |–
    |–
    在发布模式下
    构建 编译 .pio\build\btt_skr_2\ FrameworkHALDriver\Src\stm32f4xx_hal.o
    编译.pio\build\btt_skr_2\FrameworkHALDriver\Src\stm32f4xx_hal_adc.o
    编译.pio\build\btt_skr_2\FrameworkHALDriver\Src\stm32f4xx_hal_adc_ex.o
    编译.pio\build\btt_skr_2\FrameworkHALDriver\Src\stm32f4xx_hal_can.o
    编译.pio\build\btt_skr_2\FrameworkHALDriver\Src\stm32f4xx_hal_cec.o
    编译.pio\build\btt_skr_2\FrameworkHALDriver\Src\stm32f4xop.o
    编译.cortex \btt_skr_2\FrameworkHALDriver\Src\stm32f4xx_hal_crc.o
    Compiling .pio\build\btt_skr_2\FrameworkHALDriver\Src\stm32f4xx_hal_cryp.o
    Compiling .pio\build\btt_skr_2\FrameworkHALDriver\Src\stm32f4xx_hal_cryp_ex.o
    Compiling .pio\build\btt_skr_2\FrameworkHALDriver\ src\stm32f4xx_hal_dac.o
    编译.pio\build\btt_skr_2\FrameworkHALDriver\Src\stm32f4xx_hal_dac_ex.o
    编译.pio\build\btt_skr_2\FrameworkHALDriver\Src\stm32f4xx_hal_dcmi.o
    编译.pio\build\btt_skr_2\FrameworkHALDriver\Src\stm32f4xx_hal_dcmi_ex.o
    编译.pio\build\btt_skr_2\FrameworkHALDriver\Src\stm32f4xx_hal_dfsdm.o
    编译.pio\build\btt_skr_2\FrameworkHALDriver\
    Srcp.x_halingdma.x_stm32f4x \btt_skr_2\FrameworkHALDriver\Src\stm32f4xx_hal_dma2d.o
    Compiling .pio\build\btt_skr_2\FrameworkHALDriver\Src\stm32f4xx_hal_dma_ex.o
    Compiling .pio\build\btt_skr_2\FrameworkHALDriver\Src\stm32f4xx_hal_dsi.o
    Compiling .pio\build\btt_skr_2\FrameworkHALDriver\ src\stm32f4xx_hal_eth.o
    编译.pio\build\btt_skr_2\FrameworkHALDriver\Src\stm32f4xx_hal_exti.o
    编译.pio\build\btt_skr_2\FrameworkHALDriver\Src\stm32f4xx_hal_flash.o
    编译.pio\build\btt_skr_2\FrameworkHALDriver\Src\stm32f4xx_hal_flash_ex.o
    编译.pio\build\btt_skr_2\FrameworkHALDriver\Src\stm32f4xx_hal_flash_ramfunc.o
    编译.pio\build\btt_skr_2\FrameworkHALDriver\Src\
    stm32f4x \btt_skr_2\FrameworkHALDriver\Src\stm32f4xx_hal_fmpi2c_ex.o
    Compiling .pio\build\btt_skr_2\FrameworkHALDriver\Src\stm32f4xx_hal_fmpsmbus.o
    Compiling .pio\build\btt_skr_2\FrameworkHALDriver\Src\stm32f4xx_hal_fmpsmbus_ex.o
    Compiling .pio\build\btt_skr_2\FrameworkHALDriver\ src\stm32f4xx_hal_gpio.o
    编译.pio\build\btt_skr_2\FrameworkHALDriver\Src\stm32f4xx_hal_hash.o
    编译.pio\build\btt_skr_2\FrameworkHALDriver\Src\stm32f4xx_hal_hash_ex.o
    编译.pio\build\btt_skr_2\FrameworkHALDriver\Src\stm32f4xx_hal_hcd.o
    编译.pio\build\btt_skr_2\FrameworkHALDriver\Src\stm32f4xx_hal_i2c.o
    编译.pio\build\btt_skr_2\FrameworkHALDriver\Src\
    stm32f4xx_build.o \btt_skr_2\FrameworkHALDriver\Src\stm32f4xx_hal_i2s.o
    Compiling .pio\build\btt_skr_2\FrameworkHALDriver\Src\stm32f4xx_hal_i2s_ex.o
    Compiling .pio\build\btt_skr_2\FrameworkHALDriver\Src\stm32f4xx_hal_irda.o
    Compiling .pio\build\btt_skr_2\FrameworkHALDriver\ src\stm32f4xx_hal_iwdg.o
    编译.pio\build\btt_skr_2\FrameworkHALDriver\Src\stm32f4xx_hal_lptim.o
    编译.pio\build\btt_skr_2\FrameworkHALDriver\Src\stm32f4xx_hal_ltdc.o
    编译.pio\build\btt_skr_2\FrameworkHALDriver\Src\stm32f4xx_hal_ltdc_ex.o
    编译.pio\build\btt_skr_2\FrameworkHALDriver\Src\stm32f4xx_hal_mmc.o
    编译.pio\build\btt_skr_2\FrameworkHALDriver\Src\
    stm32_f4.xx_hal \btt_skr_2\FrameworkHALDriver\Src\stm32f4xx_hal_nor.o
    编译 .pio\build\btt_skr_2\FrameworkHALDriver\Src\stm32f4xx_hal_pccard.o
    编译 .pio\build\btt_skr_2\FrameworkHALDriver\Src\stm32f4xx_hal_pcd.o 编译 .pio\build\btt_skr_2\FrameworkHALDriver\Src\stm32f4xx_hal_pcd
    \FrameworkHAL_build2\Drivetio src\stm32f4xx_hal_pcd_ex.o
    编译.pio\build\btt_skr_2\FrameworkHALDriver\Src\stm32f4xx_hal_pwr.o
    编译.pio\build\btt_skr_2\FrameworkHALDriver\Src\stm32f4xx_hal_pwr_ex.o
    编译.pio\build\btt_skr_2\FrameworkHALDriver\Src\stm32f4xx_hal_qspi.o
    编译.pio\build\btt_skr_2\FrameworkHALDriver\Src\stm32f4xx_hal_rcc.o
    编译.pio\build\btt_skr_2\FrameworkHALDriver\Src\
    stm32fcc_exx.hal_r \btt_skr_2\FrameworkHALDriver\Src\stm32f4xx_hal_rng.o
    编译 .pio\build\btt_skr_2\FrameworkHALDriver\Src\stm32f4xx_hal_rtc.o
    编译 .pio\build\btt_skr_2\FrameworkHALDriver\Src\stm32f4xx_hal_rtc_rng.o
    编译src\stm32f4xx_hal_sai.o
    编译.pio\build\btt_skr_2\FrameworkHALDriver\Src\stm32f4xx_hal_sai_ex.o
    编译.pio\build\btt_skr_2\FrameworkHALDriver\Src\stm32f4xx_hal_sd.o
    编译.pio\build\btt_skr_2\FrameworkHALDriver\Src\stm32f4xx_hal_sdram.o
    编译.pio\build\btt_skr_2\FrameworkHALDriver\Src\stm32f4xx_hal_smartcard.o
    编译.pio\build\btt_skr_2\FrameworkHALDriver\Src\
    stm32_f4xx_build.xx_hal \btt_skr_2\FrameworkHALDriver\Src\stm32f4xx_hal_spdifrx.o
    编译 .pio\build\btt_skr_2\FrameworkHALDriver\Src\stm32f4xx_hal_spi.o
    编译 .pio\build\btt_skr_2\FrameworkHALDriver\Src\stm32f4xx_hal_tioskrbuildHDriverb.o
    编译src\stm32f4xx_hal_tim.o
    编译.pio\build\btt_skr_2\FrameworkHALDriver\Src\stm32f4xx_hal_tim_ex.o
    编译.pio\build\btt_skr_2\FrameworkHALDriver\Src\stm32f4xx_hal_uart.o
    编译.pio\build\btt_skr_2\FrameworkHALDriver\Src\stm32f4xx_hal_usart.o
    编译.pio\build\btt_skr_2\FrameworkHALDriver\Src\stm32f4xx_hal_wwdg.o
    编译.pio\build\btt_skr_2\FrameworkHALDriver\Src\
    stm32f4.xx_ll \btt_skr_2\FrameworkHALDriver\Src\stm32f4xx_ll_crc.o
    编译.pio\build\btt_skr_2\FrameworkHALDriver\Src\stm32f4xx_ll_dac.o
    编译.pio\build\btt_skr_2\FrameworkHALDriver\Src\stm32f4xx_ll_dma.o
    编译HAL\rFrameworkr\Drivet2pio src\stm32f4xx_ll_dma2d.o
    编译.pio\build\btt_skr_2\FrameworkHALDriver\Src\stm32f4xx_ll_exti.o
    编译.pio\build\btt_skr_2\FrameworkHALDriver\Src\stm32f4xx_ll_fmc.o
    编译.pio\build\btt_skr_2\FrameworkHALDriver\Src\stm32f4xx_ll_fmpi2c.o
    编译.pio\build\btt_skr_2\FrameworkHALDriver\Src\stm32f4xx_ll_fsmc.o
    编译.pio\build\btt_skr_2\FrameworkHALDriver\Src\
    stm32_f4x \btt_skr_2\FrameworkHALDriver\Src\stm32f4xx_ll_i2c.o
    Compiling .pio\build\btt_skr_2\FrameworkHALDriver\Src\stm32f4xx_ll_lptim.o
    Compiling .pio\build\btt_skr_2\FrameworkHALDriver\Src\stm32f4xx_ll_pwr.o
    Compiling .pio\build\btt_skr_2\FrameworkHALDriver\ src\stm32f4xx_ll_rcc.o
    编译.pio\build\btt_skr_2\FrameworkHALDriver\Src\stm32f4xx_ll_rng.o
    编译.pio\build\btt_skr_2\FrameworkHALDriver\Src\stm32f4xx_ll_rtc.o
    编译.pio\build\btt_skr_2\FrameworkHALDriver\Src\stm32f4xx_ll_sdmmc.o
    编译.pio\build\btt_skr_2\FrameworkHALDriver\Src\stm32f4xx_ll_spi.o
    编译.pio\build\btt_skr_2\FrameworkHALDriver\Src\
    stm32f4.xx_ll \btt_skr_2\FrameworkHALDriver\Src\stm32f4xx_ll_usart.o
    编译.pio\build\btt_skr_2\FrameworkHALDriver\Src\stm32f4xx_ll_usb.o
    编译.pio\build\btt_skr_2\FrameworkHALDriver\Src\stm32f4xx_ll_utils.o
    编译\tio_skr_build8\tioskr_buildb4\tioskr_buildb4蓝牙\hc_05.o
    编译.pio\build\btt_skr_2\lib532\grbl\alarms.o
    编译.pio\build\btt_skr_2\lib532\grbl\coolant_control.o
    编译.pio\build\btt_skr_2\lib532\grbl\corexy.o
    编译.pio\build\btt_skr_2\lib532\grbl\errors.o
    编译.pio\build\btt_skr_2\lib532\grbl\gcode.o
    编译.pio\build\btt_skr_2\lib532\grbl\grbllib.o
    编译.pio\build\btt_skr_2\lib532\grbl\ioports.o
    编译.pio\build \btt_skr_2\lib532\grbl\limits.o
    编译 .pio\build\btt_skr_2\lib532\grbl\maslow.o
    编译 .pio\build\btt_skr_2\lib532\grbl\motion_control.o
    编译 .pio\build\btt_skr_2\lib532\ grbl\my_plugin.o
    编译 .pio\build\btt_skr_2\lib532\grbl\ngc_expr.o
    编译 .pio\build\btt_skr_2\lib532\grbl\ngc_params.o
    编译 .pio\build\btt_skr_2\lib532\grbl\nuts_bolts.o
    编译.pio\build\btt_skr_2\lib532\grbl\nvs_buffer.o
    编译.pio\build\btt_skr_2\lib532\grbl\override.o
    编译.pio\build\btt_skr_2\lib532\grbl\pid.o
    编译.pio\build\btt_skr_2\lib532\grbl\planner.o
    编译.pio\build\btt_skr_2\lib532\grbl\protocol.o
    编译.pio\build \btt_skr_2\lib532\grbl\regex.o
    编译 .pio\build\btt_skr_2\lib532\grbl\report.o
    编译 .pio\build\btt_skr_2\lib532\grbl\settings.o
    编译 .pio\build\btt_skr_2\lib532\ grbl\sleep.o
    编译 .pio\build\btt_skr_2\lib532\grbl\spindle_control.o
    编译 .pio\build\btt_skr_2\lib532\grbl\state_machine.o
    编译 .pio\build\btt_skr_2\lib532\grbl\stepper.o
    编译 .pio\build\btt_skr_2\lib532\grbl\stream.o
    编译 .pio\build\btt_skr_2\lib532\grbl\system.o
    编译 .pio\build\btt_skr_2\lib532\grbl\tool_change.o
    编译 .pio\build\btt_skr_2\lib532\grbl\wall_plotter.o
    编译 .pio\build\btt_skr_2\lib5bd\keypad\keypad.o
    编译 .pio\build \btt_skr_2\lib291\laser\coolant.o
    编译 .pio\build\btt_skr_2\lib291\laser\ppi.o
    编译 .pio\build\btt_skr_2\libcb6\motors\trinamic.o
    编译 .pio\build\btt_skr_2\libaed\ odometer\odometer.o
    编译.pio\build\btt_skr_2\lib25d\spindle\huanyang.o
    编译.pio\build\btt_skr_2\lib25d\spindle\modbus.o
    编译.pio\build\btt_skr_2\lib153\Core\usbd_core.o
    编译.pio\build\btt_skr_2\lib153\Core\usbd_ctlreq.o
    编译.pio\build\btt_skr_2\lib153\Core\usbd_ioreq.o
    编译 .pio\build\btt_skr_2\libe35\Class\CDC\Src\usbd_cdc.o
    编译 .pio\build\btt_skr_2\lib1a6\App\usb_device.o
    编译 .pio\build\btt_skr_2\lib1a6\App\usbd_cdc_if.o
    编译.pio\build\btt_skr_2\lib1a6\App\usbd_desc.o
    编译 .pio\build\btt_skr_2\lib860\Target\usbd_conf.o
    编译 .pio\build\btt_skr_2\lib319\eeprom\eeprom_24AAxxx.o
    编译 .pio\build\ btt_skr_2\lib319\eeprom\eeprom_24LC16B.o
    编译.pio\build\btt_skr_2\src\btt_skr_2.0.o
    编译.pio\build\btt_skr_2\src\diskio.o
    编译.pio\build\btt_skr_2\src\driver.o
    编译.pio\build\btt_skr_2\src\flash.o
    编译.pio\build\btt_skr_2\src\i2c.o
    编译.pio\build\btt_skr_2\src\ioports.o
    编译.pio\build\btt_skr_2\src\main.o
    编译.pio\build\btt_skr_2\src\serial.o
    编译.pio\build\btt_skr_2\src\spi.o
    编译.pio\build\btt_skr_2\src\st_morpho .o
    编译 .pio\build\btt_skr_2\src\st_morpo_dac.o
    编译 .pio\build\btt_skr_2\src\stm32f4xx_hal_msp.o
    编译 .pio\build\btt_skr_2\src\stm32f4xx_it.o
    编译 .pio\build\btt_skr_2\src \syscalls.o
    编译 .pio\build\btt_skr_2\src\sysmem.o
    编译 .pio\build\btt_skr_2\src\system_stm32f4xx.o
    编译 .pio\build\btt_skr_2\src\usb_serial.o
    编译 .pio\build\btt_skr_2 \FrameworkCMSISDevice\gcc\startup_stm32f407xx.o
    编译.pio\build\btt_skr_2\FrameworkCMSISDevice\system_stm32f4xx.o
    存档 .pio\build\btt_skr_2\libFrameworkCMSISDevice.a
    链接 .pio\build\btt_skr_2\firmware.elf
    检查大小 .pio\build\btt_skr_2\firmware.elf
    通过“PlatformIO Home > Project Inspect”RAM 可获得高级内存使用情况
    :[ = ] 8.3%(使用了 131072 字节中的 10912 字节)
    闪存:[= ] 11.0%(使用了 1048576 字节中的 115512 字节)
    构建 .pio\build\btt_skr_2\firmware.bin
    ============ ================================================ ======================= [成功] 耗时 14.12 秒 ===================== ================================================ ==============
    环境状态持续时间

btt_skr_2 成功 00:00:14.124
=========================================== ========================================== 1 成功于 00:00:14.124 ================================================ ===================================

终端将被任务重用,按任意键关闭它。

谁能阐明我可能做错了什么?

未检测到电路板 #45

我还没有处理我的工作,但我很确定您需要使用 STLink 上传图像。

未检测到电路板 #45
贡献者

@boboxxF407 的引导加载程序版本有一个构建配置。

有关与此相关的讨论,请参阅问题#44。我不使用 platformio,也没有 SKR2 可以测试,所以除了上传用 STM32CubeIDE 编译的二进制文件外,我无能为力,我已经完成了。你可以在这里找到它。如果这可行,那么 platformio 生成的二进制文件不好吗?

这是构建报告的内存使用情况:

未检测到电路板 #45

未检测到电路板 #45
作者

我有一个 ST-link,可以试试。

我必须承认,在引导加载程序方面我有点迷茫,我是否需要上传一个新的引导加载程序来实现这一点,或者它是构建过程的一部分吗?这对我来说是全新的,因为我之前使用过基于 Arduino 的 grbl 控制器,并且构建马林鱼只是按照说明进行,没有任何问题。

我真的不在乎我使用什么 IDE,如果它有帮助我可以切换到另一个 IDE。如果我让它工作,我可以写一份详细的说明列表来帮助其他专注于让它工作的人。我可以购买第二个控制器并为将来的版本构建测试环境。

未检测到电路板 #45
贡献者

以下是我对引导加载程序概念的理解:

引导加载程序是一段或多或少永久驻留在控制器中的代码(有些在 ROM 中)。它从某个地方(例如 SD 卡)读取二进制文件并将其闪存,然后设置处理器(重新定位向量表)并启动它。

可闪存引导加载程序通常(?)放置在向量表所在的闪存的开头。对于那些刷写驻留在 SD 卡上的代码的人,它设置 MCU 以从中读取并检查是否存在二进制文件(firmware.bin),如果找到则将其闪烁在内存中的自身上方(您会在起始地址上方看到用于我提供的二进制文件是 0x08008000,而不是闪存开始处的 0x08000000)。如果没有找到,它会检查有效代码(?)并输入已经闪烁的代码。

IIRC 对于 ARM 处理器,链接器生成的代码必须与要运行的地址相匹配,否则会崩溃。

请注意,如果引导加载程序位于闪存中,则在使用调试探针进行闪存时可能会覆盖它,如果发生这种情况,则必须重新闪存。


您是否尝试运行我制作的二进制文件?请注意,它必须重命名为SD 卡上的firmware.bin,否则引导加载程序不会刷新它。

未检测到电路板 #45
作者
第三个 评论了 2021 年 11 月 22 日  

感谢您对引导加载程序的细分,这很有帮助。

我尝试了预编译的二进制文件,将其放在 SD 卡上(重命名为 firmware.bin)并重新启动了电路板。不幸的是,同样的问题出现在 Windows 未检测到该板的地方。

未检测到电路板 #45
贡献者

USB 外围设备对不正确的时钟设置非常敏感。我们应该以某种方式排除任何问题?
是否可以检查某些输入引脚上的电压,它应该是 3.3V——如果没有从外部上拉,这表明代码已经启动。或者是否有可以闪烁的 LED?
如果你有一个 UART <> USB breakout,并且板上有一个 UART 端口,也可以用来检查代码是否正在运行。

未检测到电路板 #45
作者

我的 STLINK V2 已经到了,我设法用 marlin 引导加载程序(擦掉它之后……糟糕)和 marlin 固件来刷新控制器,所有这些都是通过 stlink。在闪烁 grblhal 后我仍然没有让窗口检测板,这可能是由于我的构建。所有电压似乎都很好,它一定是设备内存中的引导加载程序和固件。我一定做错了什么。

使用 stlink 和相关软件,我可以做些什么来共享设备信息以便对其进行诊断?

未检测到电路板 #45

您是否确认您的 SKR2 具有 STM32F407VGT6 而不是 STM32F429VGT6?

未检测到电路板 #45
贡献者

我刚刚提交了一个更新,其中清理了调试配置,希望这可以帮助解决这个问题。
使用 ST-Link 编程时,首先构建Debug F407 8MHz版本,然后对其进行调试。如果悬停在调试工具上时显示的工具提示不匹配,请从调试下拉菜单中选择正确的调试配置。

暂停程序时,它应该在代码中的随机位置停止,而不是在故障处理程序中。验证。
如果没问题,请停止调试并拔下/重新插入 USB 电缆,如果电路板未显示,则可能是我们必须解决的 USB 时钟问题。如果它显示引导加载程序版本有问题。

请注意,这会覆盖引导加载程序,并且必须在尝试引导加载程序版本之前重新刷新。

未检测到电路板 #45
作者

我可以确认芯片是 F407 而不是 STM32F429VGT6

我只是在学习如何使用 STM32CUBE IDE,所以我可能需要一天左右的时间才能回复,

我可能会得到一些开发板来练习。我更熟悉 8 位世界,这是我第一次真正体验 32 位(工具已经走了很长一段路)

未检测到电路板 #45
作者

我想我已经取得了一些不错的进步。

在执行以下所有步骤之前,我删除了现有的 Eclipse 工作区

步骤 1 – 安装 STM32CUBEIDE
步骤 2 – 安装 STM32CUBEProgrammer
步骤 3 – 按照说明通过 git
git clone –recurse-submodules下载https://github.com/grblHAL/STM32F4xx
步骤 4 – 将文件夹添加到 STM32CUBEIDE
步骤 5 – 更改 My_machine。 h 并通过取消注释 #define BOARD_BTT_SKR_20 // F407 based 3D Printer board 选择板
步骤 6 – 使用 STM32CUBEProgrammer 加载固件
步骤 7 – 通过检查 comm 端口并在 UGS 中发送 $$ 命令确认 GRBL 已安装
步骤 8 – 打开啤酒并庆祝

我是 STM32CUBEIDE 的新手,所以我认为我没有正确调试它,但发布指南会很有用。

即使我遇到了所有问题,我仍然热衷于使用这个板。它没有引导加载程序,但我不在乎,只要它能工作就行。

由于 board 的逗号现在可以工作,我可以继续构建一个与我自制的 cnc 相匹配的工作配置。哦,建立一个用于手动控制的控制板。

我有一个问题,获得第二块板并测试新版本是否对这个社区有帮助?无论如何我都会测试新版本,因为 cnc 一直在使用,我不想在生产系统上测试?

未检测到电路板 #45
贡献者

@bthird很好,这意味着时钟设置是正确的。

我假设您刷过Debug F407 8MHz版本?那么引导加载程序构建一定有问题。

我是 STM32CUBEIDE 的新手,所以我认为我没有正确调试它,但发布指南会很有用。

网上有很多攻略,搜索一下就会找到很多。

我有一个问题,获得第二块板并测试新版本是否对这个社区有帮助?

是的,这可能会有所帮助。我主要在发布前测试 STM32F401、STM32F756 和 iMXRT1062 驱动程序的更改,具体取决于更改的内容。但是,我不会使用可用的不同板图重新测试所有不同的配置。这将是一项艰巨的任务,也是不可能的,因为我没有,也不想要所需的电路板。可以设置自动化测试,但这只会捕获编译问题,而不是像这样的运行时问题。

未检测到电路板 #45
boboxx 评论了 2021 年 11 月 24 日  

您如何从 STM32CUBEProgrammer 加载固件?我可以看到我的 ST-Link,但无法将其连接到 SKR 板。我尝试了重置按钮和不同的 ST-Link 配置位,我似乎无法将其设置为连接状态以上传固件。

编辑:我设法能够使用 STM32 St-Link Utility 上传固件!

未检测到电路板 #45
作者

@terjeio我相信设置是正确的。至于将是我下一个任务的引导加载程序(我不会将它用于我的生产系统)。我并不是说引导加载程序坏了,可能是我缺乏知识导致了问题。我正在订购第二块板,并将完成一个带有屏幕截图的详细帮助文件(不确定上传到哪里,因为这不是问题)。我认为需要董事会的具体帮助,因为要让它发挥作用可能会有一些不同的过程。

@boboxx第一步真的应该是更新您的 ST 链接的固件,我有稳定性问题,但我正在使用克隆。
更新固件后,您应该能够“读取”电路板的内存,无论在检查连接时上传的内容如何。如果您已组装好电缆,请确保其接线和压接正确,然后使用万用表进行测试。

如果您能够上传固件,您可以通过比较两个文件来检查上传的文件是否已正确上传。

未检测到电路板 #45
作者

@boboxx 你是如何解决这个问题的?

未检测到电路板 #45
贡献者

我正在订购第二块板,并将完成一个带有屏幕截图的详细帮助文件(不确定上传到哪里,因为这不是问题)。

我已将此存储库的 Wiki 开放供所有人编辑,因此请将其添加到其中。

引导加载程序没问题,是二进制文件不正确——可能是错误的起始地址?可能可以调试二进制文件,但我不确定该怎么做。也许必须在调试配置中更改起始地址?或者它可以使用当前设置进行调试?我从来没有尝试从不同于闪存开始的地址加载和运行二进制文件,所以我根本不知道。

下面我标出了可能需要设置的设置:

未检测到电路板 #45

IMO 二进制文件本身很好,因为它在闪存开始时闪烁时运行。

编辑:我设法能够使用 STM32 St-Link Utility 上传固件!

之后能连上吗?

未检测到电路板 #45
boboxx 评论了 2021 年 12 月 18 日  

我仍然无法在最新的拉动下使用它。我在 STM ide 和 Platform 上试过了。我可以通过 stlink 上传固件,但开发板无法启动。

[ env:btt_skr_2 ]
board = genericSTM32F407VGT6
board_build.ldscript = STM32F407VGTX_BL32K_FLASH.ld
build_flags = ${common.build_flags}
##See Inc/my_machine.h 选项
-D BOARD_BTT_SKR_20=
-D HSE_VALUE=8000000 ##
D USB_SERIAL_BootCDC=1
加载程序偏移量 (32K)
-D HAS_BOOTLOADER
lib_deps = ${common.lib_deps}
eeprom
lib_extra_dirs = ${common.lib_extra_dirs}

未检测到电路板 #45
贡献者

@boboxx如果您使用 ST-Link 和引导加载程序版本进行闪存,则必须更改目标地址,否则您将覆盖引导加载程序并且 MCU 将崩溃。在我看来,使用 ST-Link 刷新“正常”版本对您来说会更简单。

未检测到电路板 #45

我怎样才能找到正常闪光灯应该设置什么?我已经刷过几次这个板所以它很可能丢失了它原来的引导加载程序

未检测到电路板 #45
贡献者

尝试将加载程序脚本更改为
board_build.ldscript = STM32F407VGTX_FLASH.ld
并删除此行
-D HAS_BOOTLOADER

未检测到电路板 #45

非常感谢你的工作:)