开源改变世界

[BUG] PSU_CONTROL 函数有问题。 #184

推推 grbl 2年前 (2023-02-06) 276次浏览
关闭
dziabi3 打开了这个问题 2020 年 2 月 15 日 · 6条评论
关闭

[BUG] PSU_CONTROL 函数有问题。#184

dziabi3 打开了这个问题 2020 年 2 月 15 日 · 6条评论

评论

[BUG] PSU_CONTROL 函数有问题。 #184
dziabi3 评论了 2020 年 2 月 15 日  

当我设置“default_envs = STM32F103RC_bigtree”或“default_envs = STM32F103RC_bigtree_512K”时,引脚 PS_ON 工作正常并且打印机没有关闭。

当我设置“default_envs = STM32F103RC_bigtree_NOUSB”或“default_envs = STM32F103RC_bigtree_512K_NOUSB”时,引脚 PS_ON 无法正常工作,打印机会在几秒钟后关闭。

任何人都可以检查这个吗?

我有一块主板 SKR mini e3 V1.2 和专用软件。

目前我必须使用“default_envs = STM32F103RC_bigtree”,这不包括使用“EPROM”仿真。

原谅我糟糕的英语

我的配置:

#if ENABLED(PSU_CONTROL)
#define PSU_ACTIVE_HIGH true // 为 ATX (1) 设置“false”,为 X-Box (2) 设置“true”
#define PS_ON_PIN PC12

//#define PS_DEFAULT_OFF // 保持电源关闭直到直接使用 M80 启用

//#define AUTO_POWER_CONTROL // 启用 PS_ON 引脚的自动控制
#if ENABLED(AUTO_POWER_CONTROL)
#define AUTO_POWER_FANS // 如果风扇需要电源,则打开 PSU
#define AUTO_POWER_E_FANS
#define AUTO_POWER_CONTROLLERFAN
#define AUTO_POWER_CHAMBER_FAN
#define AUTO_POWER_E_TEMP 50 // (°C) ) 在此温度下开启 PSU
//#define AUTO_POWER_CHAMBER_TEMP 30 // (°C) 在此温度下开启 PSU
#define POWER_TIMEOUT 30
#endif
#endif

[BUG] PSU_CONTROL 函数有问题。 #184 dziabi3 更改了标题 [BUG](PSU_CONTROL 函数的问题) [BUG] PSU_CONTROL 函数有问题。 2020 年 2 月 15 日
[BUG] PSU_CONTROL 函数有问题。 #184

确认,具有相同的董事会行为。
无论 PSU_ACTIVE_HIGH 设置如何,PS_ON_PIN 在电路板启动后都设置为低电平。
解决方法是添加对函数 PSU_ON() 的调用;在 MarlinCore.cpp 中的 setup() 函数体结束之前

[BUG] PSU_CONTROL 函数有问题。 #184
作者
dziabi3 评论了 2020 年 2 月 18 日  

感谢您提供的信息,基于它我发现了我上面写的内容。

我通过设置“default_envs = STM32F103RC_bigtree_512K”解决了这个问题。
经过多次测试,原来我的主板有512kB的闪存。多亏了这一点,PSU_CONTROL 选项才能工作,EPROM 仿真部门也能工作。

[BUG] PSU_CONTROL 函数有问题。 #184

PC12 与 maple 的 USBSerial 冲突。
第144章(评论)

[BUG] PSU_CONTROL 函数有问题。 #184
作者
dziabi3 评论了 2020 年 2 月 26 日  

你能解释一下吗?
我在 SKR mini E3 V1.2 图中没有看到它。
为了提醒你,我引用自己的话:

“当我设置“default_envs = STM32F103RC_bigtree_NOUSB 或“default_envs = STM32F103RC_bigtree_512K_NOUSB”时,pin PS_ON 无法正常工作,打印机会在几秒钟后关闭。

这恰恰相反。

[BUG] PSU_CONTROL 函数有问题。 #184

我刚刚查看了源代码。(除了“STM32F103RC_bigtree_NOUSB”之外,我没有构建和执行。)

“_NOUSB”只是使用编译器选项“-DUSE_USB_COMPOSITE”或不使用。(未在“_NOUSB”处定义“USE_USB_COMPOSITE”。)

#
# BigTree SKR Mini V1.1 / SKR mini E3 / SKR E3 DIP (STM32F103RCT6 ARM Cortex-M3)
#
# STM32F103RC_bigtree ……………… RCT6 256K
# STM32F103RC_bigtree_NOUSB ……. RCT6 带 256K(无 USB)
# STM32F103RC_bigtree_512K ……. RCT6 带 512K
# STM32F103RC_bigtree_512K_NOUSB … RCT6 带 512K(无 USB)
# STM32F103RE_bigtree ………………… RET6
# STM32F103RE_bigtree_NOUSB ……. RET6(无USB)
#
[环境:STM32F103RC_bigtree]
平台 = ststm32
框架 =阿杜伊诺
=通用STM32F103RC
platform_packages = 工具-stm32duino
extra_scripts = buildroot/share/PlatformIO/scripts/STM32F103RC_SKR_MINI.py
build_flags = !python Marlin/src/HAL/HAL_STM32F1/build_flags.py
${common.build_flags} –DDEBUG_LEVEL=0 –std=gnu++14 -DUSE_USB_COMPOSITE -DHAVE_SW_SERIAL –DSS_TIMER=4 –DSTM32_FLASH_SIZE=256
build_unflags = –std=gnu++11
lib_deps = ${common.lib_deps}
SoftwareSerialM=https://github.com/FYSETC/SoftwareSerialM/archive/master.zip
lib_ignore = SPI
src_filter = ${common.default_src_filter} +<src/HAL/HAL_STM32F1>
monitor_speed = 115200
[env:STM32F103RC_bigtree_NOUSB]
platform = ststm32
framework = arduino
board = genericSTM32F103RC
platform_packages = tool-stm32duino
extra_scripts = buildroot/share/PlatformIO/scripts/STM32F103RC_SKR_MINI.py
build_flags = !python Marlin/src/HAL/HAL_STM32F1/build_flags.py
${common.build_flags} –DDEBUG_LEVEL=0 –std=gnu++14 -DHAVE_SW_SERIAL –DSS_TIMER=4
build_unflags = –std=gnu++11
lib_deps = ${common.lib_deps}
SoftwareSerialM=https://github.com/FYSETC/SoftwareSerialM/archive/master.zip
lib_ignore = SPI
src_filter = ${common.default_src_filter} +<src/HAL/HAL_STM32F1>
monitor_speed = 115200
[env:STM32F103RC_bigtree_512K]
platform = ststm32
framework = arduino
board = genericSTM32F103RC
board_upload.maximum_size=524288
platform_packages = tool-stm32duino
extra_scripts = buildroot/share/PlatformIO/scripts/STM32F103RC_SKR_MINI.py
build_flags = !python Marlin/src/HAL/HAL_STM32F1/build_flags.py
${common.build_flags} –DDEBUG_LEVEL=0 –std=gnu++14 -DUSE_USB_COMPOSITE -DHAVE_SW_SERIAL –DSS_TIMER=4 –DSTM32_FLASH_SIZE=512
build_unflags = –std=gnu++11
lib_deps = ${common.lib_deps}
SoftwareSerialM=https://github.com/FYSETC/SoftwareSerialM/archive/master.zip
lib_ignore = Adafruit NeoPixel, SPI
src_filter = ${common.default_src_filter} +<src/HAL/HAL_STM32F1>
monitor_speed = 115200
[env:STM32F103RC_bigtree_512K_NOUSB]
platform = ststm32
framework = arduino
board = genericSTM32F103RC
board_upload.maximum_size=524288
platform_packages = tool-stm32duino
extra_scripts = buildroot/share/PlatformIO/scripts/STM32F103RC_SKR_MINI.py
build_flags = !python Marlin/src/HAL/HAL_STM32F1/build_flags.py
${common.build_flags} –DDEBUG_LEVEL=0 –std=gnu++14 -DHAVE_SW_SERIAL –DSS_TIMER=4 –DSTM32_FLASH_SIZE=512
build_unflags = –std=gnu++11
lib_deps = ${common.lib_deps}
SoftwareSerialM=https://github.com/FYSETC/SoftwareSerialM/archive/master.zip
lib_ignore = Adafruit NeoPixel, SPI
src_filter = ${common.default_src_filter} +<src/HAL/HAL_STM32F1>
monitor_speed = 115200
[env:STM32F103RE_bigtree]
platform = ststm32
framework = arduino
board = genericSTM32F103RE
board_upload.maximum_size=524288
platform_packages = tool-stm32duino
extra_scripts = buildroot/share/PlatformIO/scripts/STM32F103RE_SKR_E3_DIP.py
build_flags = !python Marlin/src/HAL/HAL_STM32F1/build_flags.py
${common.build_flags} –DDEBUG_LEVEL=0 –std=gnu++14 -DUSE_USB_COMPOSITE -DHAVE_SW_SERIAL –DSS_TIMER=4
build_unflags = –std=gnu++11
lib_deps = ${common.lib_deps}
SoftwareSerialM=https://github.com/FYSETC/SoftwareSerialM/archive/master.zip
lib_ignore = Adafruit NeoPixel, SPI
src_filter = ${common.default_src_filter} +<src/HAL/HAL_STM32F1>
monitor_speed = 115200
[env:STM32F103RE_bigtree_NOUSB]
platform = ststm32
framework = arduino
board = genericSTM32F103RE
board_upload.maximum_size=524288
platform_packages = tool-stm32duino
extra_scripts = buildroot/share/PlatformIO/scripts/STM32F103RE_SKR_E3_DIP.py
build_flags = !python Marlin/src/HAL/HAL_STM32F1/build_flags.py
${common.build_flags} –DDEBUG_LEVEL=0 –std=gnu++14 -DHAVE_SW_SERIAL –DSS_TIMER=4
build_unflags = –std=gnu++11
lib_deps = ${common.lib_deps}
SoftwareSerialM=https://github.com/FYSETC/SoftwareSerialM/archive/master.zip
lib_ignore = Adafruit NeoPixel, SPI
src_filter = ${common.default_src_filter} +<src/HAL/HAL_STM32F1>
monitor_speed = 115200

 

但是 USB Serial 在两者上都起作用。
PC12的详细区别如下。

如果定义为“USE_USB_COMPOSITE”,则“USBSerial”为“MarlinCompositeSerial”,否则为“Serial”。

#ifndef USE_USB_COMPOSITE _
#定义 UsbSerial串口
#否则
#定义 UsbSerial MarlinCompositeSerial
#结尾

 

“MarlinCompositeSerial”是 USBSerialComposite 类。

 

然后,USBCompositeSerial.begin() 与“BOARD_USB_DISC”引脚无关。
https://github.com/rogerclarkmelbourne/Arduino_STM32/blob/0383384f4cc91aadee1501e11bf08dd3e62d9fb9/STM32F1/l ​​ibraries/USBComposite/USBCompositeSerial.cpp#L45-53 https://github.com/rogerclarkmelbourne/Arduino_STM32/blob/0383384f4cc91aadee1501e11bf08dd3e62d9fb9/STM32F1/l​​ibraries/
USBComposite /USBComposite.cpp#L126-128
https://github.com/rogerclarkmelbourne/Arduino_STM32/blob/0383384f4cc91aadee1501e11bf08dd3e62d9fb9/STM32F1/l ​​ibraries/USBComposite/USBComposite.cpp#L100-114

另一个“串行”是 USBSerial 类。我对此发表了评论。
第144章(评论)

[BUG] PSU_CONTROL 函数有问题。 #184
作者

我是盲人 ;-)
非常感谢你,你太棒了。