🩺 Assert FAN_SOFT_PWM where required (#23383, #23477)

This commit is contained in:
Scott Lahteine 2021-12-29 04:17:41 -06:00 committed by Scott Lahteine
parent 1552c6d2a5
commit 5a9635aa58
19 changed files with 50 additions and 35 deletions

View File

@ -1995,8 +1995,12 @@ static_assert(Y_MAX_LENGTH >= Y_BED_SIZE, "Movement bounds (Y_MIN_POS, Y_MAX_POS
#endif #endif
#endif #endif
#if HAS_FAN0 && CONTROLLER_FAN_PIN == FAN_PIN #if HAS_FAN0
#if CONTROLLER_FAN_PIN == FAN_PIN
#error "You cannot set CONTROLLER_FAN_PIN equal to FAN_PIN." #error "You cannot set CONTROLLER_FAN_PIN equal to FAN_PIN."
#elif ENABLED(FAN_SOFT_PWM_REQUIRED) && DISABLED(FAN_SOFT_PWM)
#error "FAN_SOFT_PWM is required. Enable it to continue."
#endif
#endif #endif
#if ENABLED(USE_CONTROLLER_FAN) #if ENABLED(USE_CONTROLLER_FAN)

View File

@ -121,7 +121,7 @@
#define CONTROLLER_FAN_PIN FAN2_PIN #define CONTROLLER_FAN_PIN FAN2_PIN
#endif #endif
#define FAN_SOFT_PWM #define FAN_SOFT_PWM_REQUIRED
// //
// Misc. Functions // Misc. Functions

View File

@ -93,7 +93,7 @@
#define FAN_PIN PB10 #define FAN_PIN PB10
#endif #endif
#define FAN_SOFT_PWM #define FAN_SOFT_PWM_REQUIRED
// //
// Temperature Sensors // Temperature Sensors

View File

@ -113,7 +113,7 @@
#define HEATER_BED_PIN PC9 // HOT BED #define HEATER_BED_PIN PC9 // HOT BED
#define FAN_PIN PC6 // FAN #define FAN_PIN PC6 // FAN
#define FAN_SOFT_PWM #define FAN_SOFT_PWM_REQUIRED
#define CONTROLLER_FAN_PIN PC7 #define CONTROLLER_FAN_PIN PC7

View File

@ -87,7 +87,7 @@
#define FAN_PIN PG14 // MAIN BOARD FAN #define FAN_PIN PG14 // MAIN BOARD FAN
#endif #endif
#define FAN_SOFT_PWM #define FAN_SOFT_PWM_REQUIRED
// //
// Temperature Sensors // Temperature Sensors

View File

@ -143,9 +143,7 @@
#ifndef FAN_PIN #ifndef FAN_PIN
#define FAN_PIN PA0 // FAN #define FAN_PIN PA0 // FAN
#endif #endif
#if PIN_EXISTS(FAN) #define FAN_SOFT_PWM_REQUIRED
#define FAN_SOFT_PWM
#endif
// //
// SD Card // SD Card

View File

@ -144,7 +144,7 @@
#define HEATER_BED_PIN PA1 // HOT BED #define HEATER_BED_PIN PA1 // HOT BED
#define FAN_PIN PA2 // FAN #define FAN_PIN PA2 // FAN
#define FAN_SOFT_PWM #define FAN_SOFT_PWM_REQUIRED
// //
// SD Card // SD Card

View File

@ -97,7 +97,7 @@
// Heaters / Fans // Heaters / Fans
// //
#define FAN_SOFT_PWM #define FAN_SOFT_PWM_REQUIRED
// //
// SD Card // SD Card

View File

@ -38,10 +38,9 @@
//#define DISABLE_DEBUG //#define DISABLE_DEBUG
#define DISABLE_JTAG #define DISABLE_JTAG
//#define ENABLE_SPI3 //#define ENABLE_SPI3
#define FLASH_EEPROM_EMULATION
#define FAN_SOFT_PWM
#if ENABLED(FLASH_EEPROM_EMULATION) #if EITHER(NO_EEPROM_SELECTED, FLASH_EEPROM_EMULATION)
#define FLASH_EEPROM_EMULATION
#define EEPROM_PAGE_SIZE (0x800U) // 2KB #define EEPROM_PAGE_SIZE (0x800U) // 2KB
#define EEPROM_START_ADDRESS (0x8000000UL + (STM32_FLASH_SIZE) * 1024UL - (EEPROM_PAGE_SIZE) * 2UL) #define EEPROM_START_ADDRESS (0x8000000UL + (STM32_FLASH_SIZE) * 1024UL - (EEPROM_PAGE_SIZE) * 2UL)
#define MARLIN_EEPROM_SIZE (EEPROM_PAGE_SIZE) #define MARLIN_EEPROM_SIZE (EEPROM_PAGE_SIZE)
@ -118,6 +117,8 @@
#endif #endif
#endif #endif
#define FAN_SOFT_PWM_REQUIRED
// //
// Misc. Functions // Misc. Functions
// //

View File

@ -30,10 +30,12 @@
// //
// Flash EEPROM Emulation // Flash EEPROM Emulation
// //
#if EITHER(NO_EEPROM_SELECTED, FLASH_EEPROM_EMULATION)
#define FLASH_EEPROM_EMULATION #define FLASH_EEPROM_EMULATION
#define EEPROM_PAGE_SIZE 0x800 // 2KB #define EEPROM_PAGE_SIZE 0x800 // 2KB
#define EEPROM_START_ADDRESS (0x8000000 + 256 * 1024 - 2 * EEPROM_PAGE_SIZE) // 256K firmware space #define EEPROM_START_ADDRESS (0x8000000 + 256 * 1024 - 2 * EEPROM_PAGE_SIZE) // 256K firmware space
#define MARLIN_EEPROM_SIZE EEPROM_PAGE_SIZE #define MARLIN_EEPROM_SIZE EEPROM_PAGE_SIZE
#endif
// //
// Servos // Servos

View File

@ -89,14 +89,19 @@
#define HEATER_BED_PIN PA8 // pin 67 (Hot Bed Mosfet) #define HEATER_BED_PIN PA8 // pin 67 (Hot Bed Mosfet)
#define FAN_PIN PA15 // pin 77 (4cm Fan) #define FAN_PIN PA15 // pin 77 (4cm Fan)
#ifdef MAPLE_STM32F1
#define FAN_SOFT_PWM // Required to avoid issues with heating or STLink #if TERN(MAPLE_STM32F1, ENABLED(FAN_SOFT_PWM), ENABLED(FAST_PWM_FAN)) && FAN_MIN_PWM < 5 // Required to avoid issues with heating or STLink
#define FAN_MIN_PWM 35 // Fan will not start in 1-30 range #error "FAN_MIN_PWM must be 5 or higher." // Fan will not start in 1-30 range
#define FAN_MAX_PWM 255 #endif
#if defined(MAPLE_STM32F1) || DISABLED(FAST_PWM_FAN) // STM32 HAL required to allow TIMER2 Hardware PWM
#define FAN_SOFT_PWM_REQUIRED
#else #else
#define FAST_PWM_FAN // STM32 Variant allow TIMER2 Hardware PWM #if FAST_PWM_FAN_FREQUENCY <= 1000 // Default 1000 is noisy, max 65K (uint16)
#define FAN_MIN_PWM 5 #error "FAST_PWM_FAN_FREQUENCY must be greater than 1000."
#define FAN_MAX_PWM 255 #elif FAST_PWM_FAN_FREQUENCY > 65535
#error "FAST_PWM_FAN_FREQUENCY must be less than 65536."
#endif
#endif #endif
//#define BEEPER_PIN PD13 // pin 60 (Servo PWM output 5V/GND on Board V0G+) made for BL-Touch sensor //#define BEEPER_PIN PD13 // pin 60 (Servo PWM output 5V/GND on Board V0G+) made for BL-Touch sensor

View File

@ -91,7 +91,7 @@
#endif #endif
#define FAN1_PIN PD13 #define FAN1_PIN PD13
#define FAN_SOFT_PWM #define FAN_SOFT_PWM_REQUIRED
// //
// Temperature Sensors // Temperature Sensors

View File

@ -45,7 +45,9 @@
// //
// EEPROM // EEPROM
// //
#if NO_EEPROM_SELECTED
#define FLASH_EEPROM_EMULATION #define FLASH_EEPROM_EMULATION
#endif
#if ENABLED(FLASH_EEPROM_EMULATION) #if ENABLED(FLASH_EEPROM_EMULATION)
// SoC Flash (framework-arduinoststm32-maple/STM32F1/libraries/EEPROM/EEPROM.h) // SoC Flash (framework-arduinoststm32-maple/STM32F1/libraries/EEPROM/EEPROM.h)
#define EEPROM_START_ADDRESS (0x8000000UL + (512 * 1024) - 2 * EEPROM_PAGE_SIZE) #define EEPROM_START_ADDRESS (0x8000000UL + (512 * 1024) - 2 * EEPROM_PAGE_SIZE)

View File

@ -29,8 +29,10 @@
#define BOARD_INFO_NAME "Artillery Ruby" #define BOARD_INFO_NAME "Artillery Ruby"
#if NO_EEPROM_SELECTED
#define FLASH_EEPROM_EMULATION #define FLASH_EEPROM_EMULATION
//#define I2C_EEPROM //#define I2C_EEPROM
#endif
//#define E2END 0xFFF // 4KB //#define E2END 0xFFF // 4KB
#define HAL_TIMER_RATE F_CPU #define HAL_TIMER_RATE F_CPU

View File

@ -119,7 +119,7 @@
#define FAN2_PIN PE4 #define FAN2_PIN PE4
#define FAN3_PIN PE5 #define FAN3_PIN PE5
#define FAN_SOFT_PWM #define FAN_SOFT_PWM_REQUIRED
// Neopixel Rings // Neopixel Rings
#define NEOPIXEL_PIN PC7 #define NEOPIXEL_PIN PC7

View File

@ -35,7 +35,7 @@
// Use soft PWM for fans - PWM is not working properly when paired with STM32 Arduino Core v1.7.0 // Use soft PWM for fans - PWM is not working properly when paired with STM32 Arduino Core v1.7.0
// This can be removed when Core version is updated and PWM behaviour is fixed. // This can be removed when Core version is updated and PWM behaviour is fixed.
#define FAN_SOFT_PWM #define FAN_SOFT_PWM_REQUIRED
// //
// Configure Timers // Configure Timers

View File

@ -30,7 +30,7 @@ exec_test $1 $2 "Ender 3 v2 with MarlinUI" "$3"
restore_configs restore_configs
opt_set MOTHERBOARD BOARD_CREALITY_V452 SERIAL_PORT 1 opt_set MOTHERBOARD BOARD_CREALITY_V452 SERIAL_PORT 1
opt_disable NOZZLE_TO_PROBE_OFFSET opt_disable NOZZLE_TO_PROBE_OFFSET
opt_enable NOZZLE_AS_PROBE Z_SAFE_HOMING Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN \ opt_enable NOZZLE_AS_PROBE Z_SAFE_HOMING Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN FAN_SOFT_PWM \
PROBE_ACTIVATION_SWITCH PROBE_TARE PROBE_TARE_ONLY_WHILE_INACTIVE PROBE_ACTIVATION_SWITCH PROBE_TARE PROBE_TARE_ONLY_WHILE_INACTIVE
exec_test $1 $2 "Creality V4.5.2 PROBE_ACTIVATION_SWITCH, Probe Tare" "$3" exec_test $1 $2 "Creality V4.5.2 PROBE_ACTIVATION_SWITCH, Probe Tare" "$3"

View File

@ -15,7 +15,7 @@ exec_test $1 $2 "BigTreeTech SKR E3 DIP v1.0 - Basic Configuration" "$3"
restore_configs restore_configs
opt_set MOTHERBOARD BOARD_BTT_SKR_CR6 SERIAL_PORT -1 SERIAL_PORT_2 2 TEMP_SENSOR_BED 1 opt_set MOTHERBOARD BOARD_BTT_SKR_CR6 SERIAL_PORT -1 SERIAL_PORT_2 2 TEMP_SENSOR_BED 1
opt_enable CR10_STOCKDISPLAY \ opt_enable CR10_STOCKDISPLAY FAN_SOFT_PWM \
NOZZLE_AS_PROBE Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN Z_SAFE_HOMING \ NOZZLE_AS_PROBE Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN Z_SAFE_HOMING \
PROBE_ACTIVATION_SWITCH PROBE_TARE PROBE_TARE_ONLY_WHILE_INACTIVE \ PROBE_ACTIVATION_SWITCH PROBE_TARE PROBE_TARE_ONLY_WHILE_INACTIVE \
PROBING_HEATERS_OFF PREHEAT_BEFORE_PROBING PROBING_HEATERS_OFF PREHEAT_BEFORE_PROBING

View File

@ -11,7 +11,7 @@ restore_configs
opt_set MOTHERBOARD BOARD_RUMBA32_V1_0 SERIAL_PORT -1 \ opt_set MOTHERBOARD BOARD_RUMBA32_V1_0 SERIAL_PORT -1 \
TEMP_SENSOR_BED 1 X_DRIVER_TYPE TMC2130 TEMP_SENSOR_BED 1 X_DRIVER_TYPE TMC2130
opt_disable PIDTEMP opt_disable PIDTEMP
opt_enable PIDTEMPBED opt_enable PIDTEMPBED FAN_SOFT_PWM
opt_disable THERMAL_PROTECTION_BED opt_disable THERMAL_PROTECTION_BED
exec_test $1 $2 "RUMBA32 V1.0 with TMC2130, PID Bed, and bed thermal protection disabled" "$3" exec_test $1 $2 "RUMBA32 V1.0 with TMC2130, PID Bed, and bed thermal protection disabled" "$3"
@ -19,12 +19,13 @@ exec_test $1 $2 "RUMBA32 V1.0 with TMC2130, PID Bed, and bed thermal protection
restore_configs restore_configs
opt_set MOTHERBOARD BOARD_RUMBA32_V1_1 SERIAL_PORT -1 \ opt_set MOTHERBOARD BOARD_RUMBA32_V1_1 SERIAL_PORT -1 \
TEMP_SENSOR_BED 1 X_DRIVER_TYPE TMC2130 Y_DRIVER_TYPE TMC2208 TEMP_SENSOR_BED 1 X_DRIVER_TYPE TMC2130 Y_DRIVER_TYPE TMC2208
opt_enable PIDTEMPBED EEPROM_SETTINGS EEPROM_CHITCHAT REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER opt_enable PIDTEMPBED FAN_SOFT_PWM EEPROM_SETTINGS EEPROM_CHITCHAT REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER
exec_test $1 $2 "RUMBA32 V1.1 with TMC2130, TMC2208, PID Bed, EEPROM settings, and graphic LCD controller" "$3" exec_test $1 $2 "RUMBA32 V1.1 with TMC2130, TMC2208, PID Bed, EEPROM settings, and graphic LCD controller" "$3"
# Build examples # Build examples
restore_configs restore_configs
opt_set MOTHERBOARD BOARD_RUMBA32_MKS SERIAL_PORT -1 X_DRIVER_TYPE TMC2130 Y_DRIVER_TYPE TMC2208 opt_set MOTHERBOARD BOARD_RUMBA32_MKS SERIAL_PORT -1 X_DRIVER_TYPE TMC2130 Y_DRIVER_TYPE TMC2208
opt_enable FAN_SOFT_PWM
exec_test $1 $2 "RUMBA32 MKS Default Config with Mixed TMC Drivers" "$3" exec_test $1 $2 "RUMBA32 MKS Default Config with Mixed TMC Drivers" "$3"
# cleanup # cleanup