diff --git a/hwconf/makerbase/100_300_HP/hw_mksesc_100_300_hp.h b/hwconf/makerbase/100_300_HP/hw_mksesc_100_300_hp.h index 91155090e9..03eb01ea50 100644 --- a/hwconf/makerbase/100_300_HP/hw_mksesc_100_300_hp.h +++ b/hwconf/makerbase/100_300_HP/hw_mksesc_100_300_hp.h @@ -31,7 +31,7 @@ #define LED_GREEN_GPIO GPIOB #define LED_GREEN_PIN 5 #define LED_RED_GPIO GPIOB -#define LED_RED_PIN 7 +#define LED_RED_PIN 7 #define LED_GREEN_ON() palSetPad(LED_GREEN_GPIO, LED_GREEN_PIN) #define LED_GREEN_OFF() palClearPad(LED_GREEN_GPIO, LED_GREEN_PIN) @@ -46,21 +46,21 @@ // Shutdown pin #define HW_SHUTDOWN_GPIO GPIOC #define HW_SHUTDOWN_PIN 5 -#define HW_SHUTDOWN_HOLD_ON() palSetPad(HW_SHUTDOWN_GPIO, HW_SHUTDOWN_PIN) -#define HW_SHUTDOWN_HOLD_OFF() palClearPad(HW_SHUTDOWN_GPIO, HW_SHUTDOWN_PIN) -#define HW_SAMPLE_SHUTDOWN() hw_sample_shutdown_button() +#define HW_SHUTDOWN_HOLD_ON() palSetPad(HW_SHUTDOWN_GPIO, HW_SHUTDOWN_PIN) +#define HW_SHUTDOWN_HOLD_OFF() palClearPad(HW_SHUTDOWN_GPIO, HW_SHUTDOWN_PIN) +#define HW_SAMPLE_SHUTDOWN() hw_sample_shutdown_button() // Hold shutdown pin early to wake up on short pulses #define HW_EARLY_INIT() palSetPadMode(HW_SHUTDOWN_GPIO, HW_SHUTDOWN_PIN, PAL_MODE_OUTPUT_PUSHPULL); \ - HW_SHUTDOWN_HOLD_ON(); + HW_SHUTDOWN_HOLD_ON(); -#define AUX_GPIO GPIOC -#define AUX_PIN 12 -#define AUX_ON() palSetPad(AUX_GPIO, AUX_PIN) -#define AUX_OFF() palClearPad(AUX_GPIO, AUX_PIN) +#define AUX_GPIO GPIOC +#define AUX_PIN 12 +#define AUX_ON() palSetPad(AUX_GPIO, AUX_PIN) +#define AUX_OFF() palClearPad(AUX_GPIO, AUX_PIN) #define CURRENT_FILTER_ON() palSetPad(GPIOD, 2) -#define CURRENT_FILTER_OFF() palClearPad(GPIOD, 2) +#define CURRENT_FILTER_OFF() palClearPad(GPIOD, 2) /* * ADC Vector @@ -68,21 +68,21 @@ * 0 (1): IN0 SENS1 * 1 (2): IN1 SENS2 * 2 (3): IN2 SENS3 - * 3 (1): IN10 CURR1 - * 4 (2): IN11 CURR2 - * 5 (3): IN12 CURR3 + * 3 (1): IN10 CURR1 + * 4 (2): IN11 CURR2 + * 5 (3): IN12 CURR3 * 6 (1): IN5 ADC_EXT1 * 7 (2): IN6 ADC_EXT2 * 8 (3): IN3 TEMP_MOS - * 9 (1): IN14 TEMP_MOTOR - * 10 (2): IN15 SHUTDOWN - * 11 (3): IN13 AN_IN + * 9 (1): IN14 TEMP_MOTOR + * 10 (2): IN15 SHUTDOWN + * 11 (3): IN13 AN_IN * 12 (1): Vrefint * 13 (2): IN0 SENS1 * 14 (3): IN1 SENS2 - * 15 (1): IN8 TEMP_MOS_2 - * 16 (2): IN9 TEMP_MOS_3 - * 17 (3): IN3 SENS3 + * 15 (1): IN8 TEMP_MOS_2 + * 16 (2): IN9 TEMP_MOS_3 + * 17 (3): IN3 SENS3 */ #define HW_ADC_CHANNELS 18 @@ -97,7 +97,7 @@ #define ADC_IND_CURR2 4 #define ADC_IND_CURR3 5 #define ADC_IND_VIN_SENS 11 -#define ADC_IND_EXT 6 +#define ADC_IND_EXT 6 #define ADC_IND_EXT2 7 #define ADC_IND_SHUTDOWN 10 #define ADC_IND_TEMP_MOS 8 @@ -110,15 +110,15 @@ // Component parameters (can be overridden) #ifndef V_REG -#define V_REG 3.34 +#define V_REG 3.34 #endif //The voltage dividing acquisition circuit on the Makerbase VESC motherboard is 220K and 4.7K resistors. #ifndef VIN_R1 -#define VIN_R1 220000.0 +#define VIN_R1 220000.0 #endif #ifndef VIN_R2 -#define VIN_R2 4700.0 +#define VIN_R2 4700.0 #endif #ifndef CURRENT_AMP_GAIN @@ -135,8 +135,8 @@ #define NTC_RES(adc_val) ((4095.0 * 10000.0) / adc_val - 10000.0) #define NTC_TEMP(adc_ind) hw100_300_get_temp() -#define NTC_RES_MOTOR(adc_val) (10000.0 / ((4095.0 / (float)adc_val) - 1.0)) // Motor temp sensor on low side -#define NTC_TEMP_MOTOR(beta) (1.0 / ((logf(NTC_RES_MOTOR(ADC_Value[ADC_IND_TEMP_MOTOR]) / 10000.0) / beta) + (1.0 / 298.15)) - 273.15) +#define NTC_RES_MOTOR(adc_val) (10000.0 / ((4095.0 / (float)adc_val) - 1.0)) // Motor temp sensor on low side +#define NTC_TEMP_MOTOR(beta) (1.0 / ((logf(NTC_RES_MOTOR(ADC_Value[ADC_IND_TEMP_MOTOR]) / 10000.0) / beta) + (1.0 / 298.15)) - 273.15) // Voltage on ADC channel #define ADC_VOLTS(ch) ((float)ADC_Value[ch] / 4096.0 * V_REG) @@ -160,7 +160,7 @@ #define HW_ADC_EXT2_PIN 6 // UART Peripheral -#define HW_UART_DEV SD3 +#define HW_UART_DEV SD3 #define HW_UART_GPIO_AF GPIO_AF_USART3 #define HW_UART_TX_PORT GPIOB #define HW_UART_TX_PIN 10 @@ -188,14 +188,14 @@ #define HW_USE_SERVO_TIM4 #define HW_ICU_TIMER TIM4 #define HW_ICU_TIM_CLK_EN() RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM4, ENABLE) -#define HW_ICU_DEV ICUD4 +#define HW_ICU_DEV ICUD4 #define HW_ICU_CHANNEL ICU_CHANNEL_1 #define HW_ICU_GPIO_AF GPIO_AF_TIM4 -#define HW_ICU_GPIO GPIOB -#define HW_ICU_PIN 6 +#define HW_ICU_GPIO GPIOB +#define HW_ICU_PIN 6 // I2C Peripheral -#define HW_I2C_DEV I2CD2 +#define HW_I2C_DEV I2CD2 #define HW_I2C_GPIO_AF GPIO_AF_I2C2 #define HW_I2C_SCL_PORT GPIOB #define HW_I2C_SCL_PIN 10 @@ -209,7 +209,7 @@ #define HW_HALL_ENC_PIN2 7 #define HW_HALL_ENC_GPIO3 GPIOC #define HW_HALL_ENC_PIN3 8 -#define HW_ENC_TIM TIM3 +#define HW_ENC_TIM TIM3 #define HW_ENC_TIM_AF GPIO_AF_TIM3 #define HW_ENC_TIM_CLK_EN() RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE) #define HW_ENC_EXTI_PORTSRC EXTI_PortSourceGPIOC @@ -221,7 +221,7 @@ #define HW_ENC_TIM_ISR_VEC TIM3_IRQHandler // SPI pins -#define HW_SPI_DEV SPID1 +#define HW_SPI_DEV SPID1 #define HW_SPI_GPIO_AF GPIO_AF_SPI1 #define HW_SPI_PORT_NSS GPIOA #define HW_SPI_PIN_NSS 4 @@ -233,10 +233,10 @@ #define HW_SPI_PIN_MISO 6 // Measurement macros -#define ADC_V_L1 ADC_Value[ADC_IND_SENS1] -#define ADC_V_L2 ADC_Value[ADC_IND_SENS2] -#define ADC_V_L3 ADC_Value[ADC_IND_SENS3] -#define ADC_V_ZERO (ADC_Value[ADC_IND_VIN_SENS] / 2) +#define ADC_V_L1 ADC_Value[ADC_IND_SENS1] +#define ADC_V_L2 ADC_Value[ADC_IND_SENS2] +#define ADC_V_L3 ADC_Value[ADC_IND_SENS3] +#define ADC_V_ZERO (ADC_Value[ADC_IND_VIN_SENS] / 2) // Macros #define READ_HALL1() palReadPad(HW_HALL_ENC_GPIO1, HW_HALL_ENC_PIN1) @@ -244,7 +244,7 @@ #define READ_HALL3() palReadPad(HW_HALL_ENC_GPIO3, HW_HALL_ENC_PIN3) // Override dead time. See the stm32f4 reference manual for calculating this value. -#define HW_DEAD_TIME_NSEC 1000.0 +#define HW_DEAD_TIME_NSEC 1000.0 // Default setting overrides #ifndef MCCONF_L_MIN_VOLTAGE @@ -253,22 +253,21 @@ #ifndef MCCONF_L_MAX_VOLTAGE #define MCCONF_L_MAX_VOLTAGE 110.0 // Maximum input voltage #endif -#endif #ifndef MCCONF_DEFAULT_MOTOR_TYPE #define MCCONF_DEFAULT_MOTOR_TYPE MOTOR_TYPE_FOC #endif #ifndef MCCONF_FOC_F_ZV -#define MCCONF_FOC_F_ZV 30000.0 +#define MCCONF_FOC_F_ZV 30000.0 #endif #ifndef MCCONF_L_MAX_ABS_CURRENT #define MCCONF_L_MAX_ABS_CURRENT 650.0 // The maximum absolute current above which a fault is generated #endif #ifndef MCCONF_FOC_SAMPLE_V0_V7 #define MCCONF_FOC_SAMPLE_V0_V7 false // Run control loop in both v0 and v7 (requires phase shunts) - #endif #ifndef MCCONF_L_IN_CURRENT_MAX #define MCCONF_L_IN_CURRENT_MAX 300.0 // Input current limit in Amperes (Upper) +#endif #ifndef MCCONF_L_IN_CURRENT_MIN #define MCCONF_L_IN_CURRENT_MIN -30.0 // Input current limit in Amperes (Lower) #endif @@ -278,8 +277,8 @@ #define HW_LIM_CURRENT -500.0, 500.0 #define HW_LIM_CURRENT_IN -500.0, 500.0 #define HW_LIM_CURRENT_ABS 0.0, 650 -#define HW_LIM_VIN 6.0, 120.0 -#define HW_LIM_ERPM -200e3, 200e3 +#define HW_LIM_VIN 6.0, 120.0 +#define HW_LIM_ERPM -200e3, 200e3 #define HW_LIM_DUTY_MIN 0.0, 0.1 #define HW_LIM_DUTY_MAX 0.0, 0.99 #define HW_LIM_TEMP_FET -40.0, 110.0 diff --git a/hwconf/makerbase/75_100/hw_mksesc_75_100_core.h b/hwconf/makerbase/75_100/hw_mksesc_75_100_core.h index e07609c47b..e058746540 100644 --- a/hwconf/makerbase/75_100/hw_mksesc_75_100_core.h +++ b/hwconf/makerbase/75_100/hw_mksesc_75_100_core.h @@ -45,7 +45,7 @@ #define LED_GREEN_GPIO GPIOB #define LED_GREEN_PIN 5 #define LED_RED_GPIO GPIOB -#define LED_RED_PIN 7 +#define LED_RED_PIN 7 #define LED_GREEN_ON() palSetPad(LED_GREEN_GPIO, LED_GREEN_PIN) #define LED_GREEN_OFF() palClearPad(LED_GREEN_GPIO, LED_GREEN_PIN) @@ -60,17 +60,17 @@ #define PHASE_FILTER_ON() palSetPad(PHASE_FILTER_GPIO, PHASE_FILTER_PIN) #define PHASE_FILTER_OFF() palClearPad(PHASE_FILTER_GPIO, PHASE_FILTER_PIN) #endif -//#define AUX_GPIO GPIOC -//#define AUX_PIN 12 -//#define AUX_ON() palSetPad(AUX_GPIO, AUX_PIN) -//#define AUX_OFF() palClearPad(AUX_GPIO, AUX_PIN) +//#define AUX_GPIO GPIOC +//#define AUX_PIN 12 +//#define AUX_ON() palSetPad(AUX_GPIO, AUX_PIN) +//#define AUX_OFF() palClearPad(AUX_GPIO, AUX_PIN) //MKSESC 75100 is also expected to add a current filter, //but since it is low-test sampling, we set this configuration to off by default, //leaving only the circuit as an expansion function. #define CURRENT_FILTER_GPIO GPIOD // #define CURRENT_FILTER_ON() palSetPad(CURRENT_FILTER_GPIO, 2) -#define CURRENT_FILTER_OFF() palClearPad(CURRENT_FILTER_GPIO, 2) +#define CURRENT_FILTER_OFF() palClearPad(CURRENT_FILTER_GPIO, 2) /* * ADC Vector @@ -78,21 +78,21 @@ * 0 (1): IN0 SENS1 * 1 (2): IN1 SENS2 * 2 (3): IN2 SENS3 - * 3 (1): IN10 CURR1 - * 4 (2): IN11 CURR2 - * 5 (3): IN12 CURR3 + * 3 (1): IN10 CURR1 + * 4 (2): IN11 CURR2 + * 5 (3): IN12 CURR3 * 6 (1): IN5 ADC_EXT1 * 7 (2): IN6 ADC_EXT2 * 8 (3): IN3 TEMP_MOS - * 9 (1): IN14 TEMP_MOTOR - * 10 (2): IN15 ADC_EXT3 - * 11 (3): IN13 AN_IN + * 9 (1): IN14 TEMP_MOTOR + * 10 (2): IN15 ADC_EXT3 + * 11 (3): IN13 AN_IN * 12 (1): Vrefint * 13 (2): IN0 SENS1 * 14 (3): IN1 SENS2 - * 15 (1): IN8 TEMP_MOS_2 - * 16 (2): IN9 TEMP_MOS_3 - * 17 (3): IN3 SENS3 + * 15 (1): IN8 TEMP_MOS_2 + * 16 (2): IN9 TEMP_MOS_3 + * 17 (3): IN3 SENS3 */ #define HW_ADC_CHANNELS 18 @@ -107,7 +107,7 @@ #define ADC_IND_CURR2 4 #define ADC_IND_CURR3 5 #define ADC_IND_VIN_SENS 11 -#define ADC_IND_EXT 6 +#define ADC_IND_EXT 6 #define ADC_IND_EXT2 7 #define ADC_IND_EXT3 10 #define ADC_IND_TEMP_MOS 8 @@ -120,14 +120,14 @@ // Component parameters (can be overridden) #ifndef V_REG -#define V_REG 3.40 +#define V_REG 3.34 #endif //The voltage dividing acquisition circuit on the Makerbase VESC motherboard is 560K and 21.5K resistors. #ifndef VIN_R1 -#define VIN_R1 560000.0 +#define VIN_R1 56000.0 #endif #ifndef VIN_R2 -#define VIN_R2 21500.0 +#define VIN_R2 2200.0 #endif #ifndef CURRENT_AMP_GAIN @@ -144,8 +144,8 @@ #define NTC_RES(adc_val) ((4095.0 * 10000.0) / adc_val - 10000.0) #define NTC_TEMP(adc_ind) (1.0 / ((logf(NTC_RES(ADC_Value[adc_ind]) / 10000.0) / 3435.0) + (1.0 / 298.15)) - 273.15) -#define NTC_RES_MOTOR(adc_val) (10000.0 / ((4095.0 / (float)adc_val) - 1.0)) // Motor temp sensor on low side -#define NTC_TEMP_MOTOR(beta) (1.0 / ((logf(NTC_RES_MOTOR(ADC_Value[ADC_IND_TEMP_MOTOR]) / 10000.0) / beta) + (1.0 / 298.15)) - 273.15) +#define NTC_RES_MOTOR(adc_val) (10000.0 / ((4095.0 / (float)adc_val) - 1.0)) // Motor temp sensor on low side +#define NTC_TEMP_MOTOR(beta) (1.0 / ((logf(NTC_RES_MOTOR(ADC_Value[ADC_IND_TEMP_MOTOR]) / 10000.0) / beta) + (1.0 / 298.15)) - 273.15) // Voltage on ADC channel #define ADC_VOLTS(ch) ((float)ADC_Value[ch] / 4096.0 * V_REG) @@ -169,7 +169,7 @@ #define HW_ADC_EXT2_PIN 6 // UART Peripheral -#define HW_UART_DEV SD3 +#define HW_UART_DEV SD3 #define HW_UART_GPIO_AF GPIO_AF_USART3 #define HW_UART_TX_PORT GPIOB #define HW_UART_TX_PIN 10 @@ -188,22 +188,22 @@ // Disable, consider upgrading later // NRF SWD //#define NRF5x_SWDIO_GPIO GPIOA -//#define NRF5x_SWDIO_PIN 15 +//#define NRF5x_SWDIO_PIN 15 //#define NRF5x_SWCLK_GPIO GPIOB -//#define NRF5x_SWCLK_PIN 3 +//#define NRF5x_SWCLK_PIN 3 // ICU Peripheral for servo decoding #define HW_USE_SERVO_TIM4 #define HW_ICU_TIMER TIM4 #define HW_ICU_TIM_CLK_EN() RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM4, ENABLE) -#define HW_ICU_DEV ICUD4 +#define HW_ICU_DEV ICUD4 #define HW_ICU_CHANNEL ICU_CHANNEL_1 #define HW_ICU_GPIO_AF GPIO_AF_TIM4 -#define HW_ICU_GPIO GPIOB -#define HW_ICU_PIN 6 +#define HW_ICU_GPIO GPIOB +#define HW_ICU_PIN 6 // I2C Peripheral -#define HW_I2C_DEV I2CD2 +#define HW_I2C_DEV I2CD2 #define HW_I2C_GPIO_AF GPIO_AF_I2C2 #define HW_I2C_SCL_PORT GPIOB #define HW_I2C_SCL_PIN 10 @@ -217,7 +217,7 @@ #define HW_HALL_ENC_PIN2 7 #define HW_HALL_ENC_GPIO3 GPIOC #define HW_HALL_ENC_PIN3 8 -#define HW_ENC_TIM TIM3 +#define HW_ENC_TIM TIM3 #define HW_ENC_TIM_AF GPIO_AF_TIM3 #define HW_ENC_TIM_CLK_EN() RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE) #define HW_ENC_EXTI_PORTSRC EXTI_PortSourceGPIOC @@ -229,7 +229,7 @@ #define HW_ENC_TIM_ISR_VEC TIM3_IRQHandler // SPI pins -#define HW_SPI_DEV SPID1 +#define HW_SPI_DEV SPID1 #define HW_SPI_GPIO_AF GPIO_AF_SPI1 #define HW_SPI_PORT_NSS GPIOA #define HW_SPI_PIN_NSS 4 @@ -241,10 +241,10 @@ #define HW_SPI_PIN_MISO 6 // Measurement macros -#define ADC_V_L1 ADC_Value[ADC_IND_SENS1] -#define ADC_V_L2 ADC_Value[ADC_IND_SENS2] -#define ADC_V_L3 ADC_Value[ADC_IND_SENS3] -#define ADC_V_ZERO (ADC_Value[ADC_IND_VIN_SENS] / 2) +#define ADC_V_L1 ADC_Value[ADC_IND_SENS1] +#define ADC_V_L2 ADC_Value[ADC_IND_SENS2] +#define ADC_V_L3 ADC_Value[ADC_IND_SENS3] +#define ADC_V_ZERO (ADC_Value[ADC_IND_VIN_SENS] / 2) // Macros #define READ_HALL1() palReadPad(HW_HALL_ENC_GPIO1, HW_HALL_ENC_PIN1) @@ -262,12 +262,11 @@ #ifndef MCCONF_L_MAX_VOLTAGE #define MCCONF_L_MAX_VOLTAGE 90.0 // Maximum input voltage #endif -#endif #ifndef MCCONF_DEFAULT_MOTOR_TYPE #define MCCONF_DEFAULT_MOTOR_TYPE MOTOR_TYPE_FOC #endif #ifndef MCCONF_FOC_F_ZV -#define MCCONF_FOC_F_ZV 30000.0 +#define MCCONF_FOC_F_ZV 30000.0 #endif #ifndef MCCONF_L_MAX_ABS_CURRENT #define MCCONF_L_MAX_ABS_CURRENT 150.0 // The maximum absolute current above which a fault is generated @@ -277,8 +276,9 @@ #endif #ifndef MCCONF_L_IN_CURRENT_MAX #define MCCONF_L_IN_CURRENT_MAX 100.0 // Input current limit in Amperes (Upper) +#endif #ifndef MCCONF_L_IN_CURRENT_MIN -#define MCCONF_L_IN_CURRENT_MIN -100.0 // Input current limit in Amperes (Lower) +#define MCCONF_L_IN_CURRENT_MIN -20.0 // Input current limit in Amperes (Lower) #endif diff --git a/hwconf/makerbase/75_100_V2/hw_mksesc_75_100_v2_core.h b/hwconf/makerbase/75_100_V2/hw_mksesc_75_100_v2_core.h index 8dc8b3680e..2302b398c7 100644 --- a/hwconf/makerbase/75_100_V2/hw_mksesc_75_100_v2_core.h +++ b/hwconf/makerbase/75_100_V2/hw_mksesc_75_100_v2_core.h @@ -47,7 +47,7 @@ #define LED_GREEN_GPIO GPIOB #define LED_GREEN_PIN 5 #define LED_RED_GPIO GPIOB -#define LED_RED_PIN 7 +#define LED_RED_PIN 7 #define LED_GREEN_ON() palSetPad(LED_GREEN_GPIO, LED_GREEN_PIN) #define LED_GREEN_OFF() palClearPad(LED_GREEN_GPIO, LED_GREEN_PIN) @@ -67,25 +67,25 @@ // Shutdown pin #define HW_SHUTDOWN_GPIO GPIOC #define HW_SHUTDOWN_PIN 5 -#define HW_SHUTDOWN_HOLD_ON() palSetPad(HW_SHUTDOWN_GPIO, HW_SHUTDOWN_PIN) -#define HW_SHUTDOWN_HOLD_OFF() palClearPad(HW_SHUTDOWN_GPIO, HW_SHUTDOWN_PIN) -#define HW_SAMPLE_SHUTDOWN() hw_sample_shutdown_button() +#define HW_SHUTDOWN_HOLD_ON() palSetPad(HW_SHUTDOWN_GPIO, HW_SHUTDOWN_PIN) +#define HW_SHUTDOWN_HOLD_OFF() palClearPad(HW_SHUTDOWN_GPIO, HW_SHUTDOWN_PIN) +#define HW_SAMPLE_SHUTDOWN() hw_sample_shutdown_button() // Hold shutdown pin early to wake up on short pulses #define HW_EARLY_INIT() palSetPadMode(HW_SHUTDOWN_GPIO, HW_SHUTDOWN_PIN, PAL_MODE_OUTPUT_PUSHPULL); \ - HW_SHUTDOWN_HOLD_ON(); + HW_SHUTDOWN_HOLD_ON(); #endif -//#define AUX_GPIO GPIOC -//#define AUX_PIN 12 -//#define AUX_ON() palSetPad(AUX_GPIO, AUX_PIN) -//#define AUX_OFF() palClearPad(AUX_GPIO, AUX_PIN) +//#define AUX_GPIO GPIOC +//#define AUX_PIN 12 +//#define AUX_ON() palSetPad(AUX_GPIO, AUX_PIN) +//#define AUX_OFF() palClearPad(AUX_GPIO, AUX_PIN) //MKSESC 75100 V2_003 added phase filtering and //current filtering in November 2023. However, since it is low-end sampling, //we do not recommend turning on the current filtering function, so it is set to off here. #define CURRENT_FILTER_GPIO GPIOD // #define CURRENT_FILTER_ON() palSetPad(CURRENT_FILTER_GPIO, 2) -#define CURRENT_FILTER_OFF() palClearPad(CURRENT_FILTER_GPIO, 2) +#define CURRENT_FILTER_OFF() palClearPad(CURRENT_FILTER_GPIO, 2) /* * ADC Vector @@ -93,21 +93,21 @@ * 0 (1): IN0 SENS1 * 1 (2): IN1 SENS2 * 2 (3): IN2 SENS3 - * 3 (1): IN10 CURR1 - * 4 (2): IN11 CURR2 - * 5 (3): IN12 CURR3 + * 3 (1): IN10 CURR1 + * 4 (2): IN11 CURR2 + * 5 (3): IN12 CURR3 * 6 (1): IN5 ADC_EXT1 * 7 (2): IN6 ADC_EXT2 * 8 (3): IN3 TEMP_MOS - * 9 (1): IN14 TEMP_MOTOR - * 10 (2): IN15 SHUTDOWN - * 11 (3): IN13 AN_IN + * 9 (1): IN14 TEMP_MOTOR + * 10 (2): IN15 SHUTDOWN + * 11 (3): IN13 AN_IN * 12 (1): Vrefint * 13 (2): IN0 SENS1 * 14 (3): IN1 SENS2 - * 15 (1): IN8 TEMP_MOS_2 - * 16 (2): IN9 TEMP_MOS_3 - * 17 (3): IN3 SENS3 + * 15 (1): IN8 TEMP_MOS_2 + * 16 (2): IN9 TEMP_MOS_3 + * 17 (3): IN3 SENS3 */ #define HW_ADC_CHANNELS 18 @@ -122,7 +122,7 @@ #define ADC_IND_CURR2 4 #define ADC_IND_CURR3 5 #define ADC_IND_VIN_SENS 11 -#define ADC_IND_EXT 6 +#define ADC_IND_EXT 6 #define ADC_IND_EXT2 7 #define ADC_IND_SHUTDOWN 10 #define ADC_IND_TEMP_MOS 8 @@ -135,13 +135,13 @@ // Component parameters (can be overridden) #ifndef V_REG -#define V_REG 3.40 +#define V_REG 3.34 #endif #ifndef VIN_R1 -#define VIN_R1 560000.0 +#define VIN_R1 56000.0 #endif #ifndef VIN_R2 -#define VIN_R2 21500.0 +#define VIN_R2 2200.0 #endif #ifndef CURRENT_AMP_GAIN #define CURRENT_AMP_GAIN 20.0 @@ -157,8 +157,8 @@ #define NTC_RES(adc_val) ((4095.0 * 10000.0) / adc_val - 10000.0) #define NTC_TEMP(adc_ind) (1.0 / ((logf(NTC_RES(ADC_Value[adc_ind]) / 10000.0) / 3380.0) + (1.0 / 298.15)) - 273.15) -#define NTC_RES_MOTOR(adc_val) (10000.0 / ((4095.0 / (float)adc_val) - 1.0)) // Motor temp sensor on low side -#define NTC_TEMP_MOTOR(beta) (1.0 / ((logf(NTC_RES_MOTOR(ADC_Value[ADC_IND_TEMP_MOTOR]) / 10000.0) / beta) + (1.0 / 298.15)) - 273.15) +#define NTC_RES_MOTOR(adc_val) (10000.0 / ((4095.0 / (float)adc_val) - 1.0)) // Motor temp sensor on low side +#define NTC_TEMP_MOTOR(beta) (1.0 / ((logf(NTC_RES_MOTOR(ADC_Value[ADC_IND_TEMP_MOTOR]) / 10000.0) / beta) + (1.0 / 298.15)) - 273.15) // Voltage on ADC channel #define ADC_VOLTS(ch) ((float)ADC_Value[ch] / 4096.0 * V_REG) @@ -182,7 +182,7 @@ #define HW_ADC_EXT2_PIN 6 // UART Peripheral -#define HW_UART_DEV SD3 +#define HW_UART_DEV SD3 #define HW_UART_GPIO_AF GPIO_AF_USART3 #define HW_UART_TX_PORT GPIOB #define HW_UART_TX_PIN 10 @@ -201,22 +201,22 @@ // Disable, consider upgrading later // NRF SWD //#define NRF5x_SWDIO_GPIO GPIOA -//#define NRF5x_SWDIO_PIN 15 +//#define NRF5x_SWDIO_PIN 15 //#define NRF5x_SWCLK_GPIO GPIOB -//#define NRF5x_SWCLK_PIN 3 +//#define NRF5x_SWCLK_PIN 3 // ICU Peripheral for servo decoding #define HW_USE_SERVO_TIM4 #define HW_ICU_TIMER TIM4 #define HW_ICU_TIM_CLK_EN() RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM4, ENABLE) -#define HW_ICU_DEV ICUD4 +#define HW_ICU_DEV ICUD4 #define HW_ICU_CHANNEL ICU_CHANNEL_1 #define HW_ICU_GPIO_AF GPIO_AF_TIM4 -#define HW_ICU_GPIO GPIOB -#define HW_ICU_PIN 6 +#define HW_ICU_GPIO GPIOB +#define HW_ICU_PIN 6 // I2C Peripheral -#define HW_I2C_DEV I2CD2 +#define HW_I2C_DEV I2CD2 #define HW_I2C_GPIO_AF GPIO_AF_I2C2 #define HW_I2C_SCL_PORT GPIOB #define HW_I2C_SCL_PIN 10 @@ -230,7 +230,7 @@ #define HW_HALL_ENC_PIN2 7 #define HW_HALL_ENC_GPIO3 GPIOC #define HW_HALL_ENC_PIN3 8 -#define HW_ENC_TIM TIM3 +#define HW_ENC_TIM TIM3 #define HW_ENC_TIM_AF GPIO_AF_TIM3 #define HW_ENC_TIM_CLK_EN() RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE) #define HW_ENC_EXTI_PORTSRC EXTI_PortSourceGPIOC @@ -242,7 +242,7 @@ #define HW_ENC_TIM_ISR_VEC TIM3_IRQHandler // SPI pins -#define HW_SPI_DEV SPID1 +#define HW_SPI_DEV SPID1 #define HW_SPI_GPIO_AF GPIO_AF_SPI1 #define HW_SPI_PORT_NSS GPIOA #define HW_SPI_PIN_NSS 4 @@ -254,10 +254,10 @@ #define HW_SPI_PIN_MISO 6 // Measurement macros -#define ADC_V_L1 ADC_Value[ADC_IND_SENS1] -#define ADC_V_L2 ADC_Value[ADC_IND_SENS2] -#define ADC_V_L3 ADC_Value[ADC_IND_SENS3] -#define ADC_V_ZERO (ADC_Value[ADC_IND_VIN_SENS] / 2) +#define ADC_V_L1 ADC_Value[ADC_IND_SENS1] +#define ADC_V_L2 ADC_Value[ADC_IND_SENS2] +#define ADC_V_L3 ADC_Value[ADC_IND_SENS3] +#define ADC_V_ZERO (ADC_Value[ADC_IND_VIN_SENS] / 2) // Macros #define READ_HALL1() palReadPad(HW_HALL_ENC_GPIO1, HW_HALL_ENC_PIN1) @@ -269,28 +269,28 @@ // Default setting overrides #ifndef MCCONF_L_MIN_VOLTAGE -#define MCCONF_L_MIN_VOLTAGE 12.0 // Minimum input voltage +#define MCCONF_L_MIN_VOLTAGE 12.0 // Minimum input voltage #endif #ifndef MCCONF_L_MAX_VOLTAGE -#define MCCONF_L_MAX_VOLTAGE 90.0 // Maximum input voltage -#endif +#define MCCONF_L_MAX_VOLTAGE 90.0 // Maximum input voltage #endif #ifndef MCCONF_DEFAULT_MOTOR_TYPE -#define MCCONF_DEFAULT_MOTOR_TYPE MOTOR_TYPE_FOC +#define MCCONF_DEFAULT_MOTOR_TYPE MOTOR_TYPE_FOC #endif #ifndef MCCONF_FOC_F_ZV -#define MCCONF_FOC_F_ZV 30000.0 +#define MCCONF_FOC_F_ZV 30000.0 #endif #ifndef MCCONF_L_MAX_ABS_CURRENT -#define MCCONF_L_MAX_ABS_CURRENT 150.0 // The maximum absolute current above which a fault is generated +#define MCCONF_L_MAX_ABS_CURRENT 150.0 // The maximum absolute current above which a fault is generated #endif #ifndef MCCONF_FOC_SAMPLE_V0_V7 -#define MCCONF_FOC_SAMPLE_V0_V7 false // Run control loop in both v0 and v7 (requires phase shunts) +#define MCCONF_FOC_SAMPLE_V0_V7 false // Run control loop in both v0 and v7 (requires phase shunts) #endif #ifndef MCCONF_L_IN_CURRENT_MAX -#define MCCONF_L_IN_CURRENT_MAX 100.0 // Input current limit in Amperes (Upper) +#define MCCONF_L_IN_CURRENT_MAX 100.0 // Input current limit in Amperes (Upper) +#endif #ifndef MCCONF_L_IN_CURRENT_MIN -#define MCCONF_L_IN_CURRENT_MIN -100.0 // Input current limit in Amperes (Lower) +#define MCCONF_L_IN_CURRENT_MIN -20.0 // Input current limit in Amperes (Lower) #endif @@ -298,8 +298,8 @@ #define HW_LIM_CURRENT -120.0, 120.0 #define HW_LIM_CURRENT_IN -120.0, 120.0 #define HW_LIM_CURRENT_ABS 0.0, 200 -#define HW_LIM_VIN 6.0, 120.0 -#define HW_LIM_ERPM -200e3, 200e3 +#define HW_LIM_VIN 6.0, 120.0 +#define HW_LIM_ERPM -200e3, 200e3 #define HW_LIM_DUTY_MIN 0.0, 0.1 #define HW_LIM_DUTY_MAX 0.0, 0.99 #define HW_LIM_TEMP_FET -40.0, 110.0 diff --git a/hwconf/makerbase/75_200_V2/hw_mksesc_75_200_v2_core.h b/hwconf/makerbase/75_200_V2/hw_mksesc_75_200_v2_core.h index 328232f0e8..bb81565f93 100644 --- a/hwconf/makerbase/75_200_V2/hw_mksesc_75_200_v2_core.h +++ b/hwconf/makerbase/75_200_V2/hw_mksesc_75_200_v2_core.h @@ -44,7 +44,7 @@ #define LED_GREEN_GPIO GPIOB #define LED_GREEN_PIN 5 #define LED_RED_GPIO GPIOB -#define LED_RED_PIN 7 +#define LED_RED_PIN 7 #define LED_GREEN_ON() palSetPad(LED_GREEN_GPIO, LED_GREEN_PIN) #define LED_GREEN_OFF() palClearPad(LED_GREEN_GPIO, LED_GREEN_PIN) @@ -64,26 +64,26 @@ // Shutdown pin #define HW_SHUTDOWN_GPIO GPIOC #define HW_SHUTDOWN_PIN 5 -#define HW_SHUTDOWN_HOLD_ON() palSetPad(HW_SHUTDOWN_GPIO, HW_SHUTDOWN_PIN) -#define HW_SHUTDOWN_HOLD_OFF() palClearPad(HW_SHUTDOWN_GPIO, HW_SHUTDOWN_PIN) -#define HW_SAMPLE_SHUTDOWN() hw_sample_shutdown_button() +#define HW_SHUTDOWN_HOLD_ON() palSetPad(HW_SHUTDOWN_GPIO, HW_SHUTDOWN_PIN) +#define HW_SHUTDOWN_HOLD_OFF() palClearPad(HW_SHUTDOWN_GPIO, HW_SHUTDOWN_PIN) +#define HW_SAMPLE_SHUTDOWN() hw_sample_shutdown_button() // Hold shutdown pin early to wake up on short pulses #define HW_EARLY_INIT() palSetPadMode(HW_SHUTDOWN_GPIO, HW_SHUTDOWN_PIN, PAL_MODE_OUTPUT_PUSHPULL); \ - HW_SHUTDOWN_HOLD_ON(); + HW_SHUTDOWN_HOLD_ON(); #endif -//#define AUX_GPIO GPIOC -//#define AUX_PIN 12 -//#define AUX_ON() palSetPad(AUX_GPIO, AUX_PIN) -//#define AUX_OFF() palClearPad(AUX_GPIO, AUX_PIN) +//#define AUX_GPIO GPIOC +//#define AUX_PIN 12 +//#define AUX_ON() palSetPad(AUX_GPIO, AUX_PIN) +//#define AUX_OFF() palClearPad(AUX_GPIO, AUX_PIN) //MKSESC 75200 V2_003 added phase filtering and //current filtering in November 2023. However, since it is low-end sampling, //we do not recommend turning on the current filtering function, so it is set to off here. #define CURRENT_FILTER_GPIO GPIOD // #define CURRENT_FILTER_ON() palSetPad(CURRENT_FILTER_GPIO, 2) -#define CURRENT_FILTER_OFF() palClearPad(CURRENT_FILTER_GPIO, 2) +#define CURRENT_FILTER_OFF() palClearPad(CURRENT_FILTER_GPIO, 2) /* * ADC Vector @@ -91,21 +91,21 @@ * 0 (1): IN0 SENS1 * 1 (2): IN1 SENS2 * 2 (3): IN2 SENS3 - * 3 (1): IN10 CURR1 - * 4 (2): IN11 CURR2 - * 5 (3): IN12 CURR3 + * 3 (1): IN10 CURR1 + * 4 (2): IN11 CURR2 + * 5 (3): IN12 CURR3 * 6 (1): IN5 ADC_EXT1 * 7 (2): IN6 ADC_EXT2 * 8 (3): IN3 TEMP_MOS - * 9 (1): IN14 TEMP_MOTOR - * 10 (2): IN15 SHUTDOWN - * 11 (3): IN13 AN_IN + * 9 (1): IN14 TEMP_MOTOR + * 10 (2): IN15 SHUTDOWN + * 11 (3): IN13 AN_IN * 12 (1): Vrefint * 13 (2): IN0 SENS1 * 14 (3): IN1 SENS2 - * 15 (1): IN8 TEMP_MOS_2 - * 16 (2): IN9 TEMP_MOS_3 - * 17 (3): IN3 SENS3 + * 15 (1): IN8 TEMP_MOS_2 + * 16 (2): IN9 TEMP_MOS_3 + * 17 (3): IN3 SENS3 */ #define HW_ADC_CHANNELS 18 @@ -120,7 +120,7 @@ #define ADC_IND_CURR2 4 #define ADC_IND_CURR3 5 #define ADC_IND_VIN_SENS 11 -#define ADC_IND_EXT 6 +#define ADC_IND_EXT 6 #define ADC_IND_EXT2 7 #define ADC_IND_SHUTDOWN 10 #define ADC_IND_TEMP_MOS 8 @@ -133,15 +133,15 @@ // Component parameters (can be overridden) #ifndef V_REG -#define V_REG 3.40 +#define V_REG 3.30 #endif //The voltage dividing acquisition circuit on the Makerbase VESC motherboard is 560K and 21.5K resistors. #ifndef VIN_R1 -#define VIN_R1 560000.0 +#define VIN_R1 56000.0 #endif #ifndef VIN_R2 -#define VIN_R2 21500.0 +#define VIN_R2 2200.0 #endif #ifndef CURRENT_AMP_GAIN @@ -158,8 +158,8 @@ #define NTC_RES(adc_val) ((4095.0 * 10000.0) / adc_val - 10000.0) #define NTC_TEMP(adc_ind) (1.0 / ((logf(NTC_RES(ADC_Value[adc_ind]) / 10000.0) / 3380.0) + (1.0 / 298.15)) - 273.15) -#define NTC_RES_MOTOR(adc_val) (10000.0 / ((4095.0 / (float)adc_val) - 1.0)) // Motor temp sensor on low side -#define NTC_TEMP_MOTOR(beta) (1.0 / ((logf(NTC_RES_MOTOR(ADC_Value[ADC_IND_TEMP_MOTOR]) / 10000.0) / beta) + (1.0 / 298.15)) - 273.15) +#define NTC_RES_MOTOR(adc_val) (10000.0 / ((4095.0 / (float)adc_val) - 1.0)) // Motor temp sensor on low side +#define NTC_TEMP_MOTOR(beta) (1.0 / ((logf(NTC_RES_MOTOR(ADC_Value[ADC_IND_TEMP_MOTOR]) / 10000.0) / beta) + (1.0 / 298.15)) - 273.15) // Voltage on ADC channel #define ADC_VOLTS(ch) ((float)ADC_Value[ch] / 4096.0 * V_REG) @@ -183,7 +183,7 @@ #define HW_ADC_EXT2_PIN 6 // UART Peripheral -#define HW_UART_DEV SD3 +#define HW_UART_DEV SD3 #define HW_UART_GPIO_AF GPIO_AF_USART3 #define HW_UART_TX_PORT GPIOB #define HW_UART_TX_PIN 10 @@ -202,22 +202,22 @@ // Disable, consider upgrading later // NRF SWD //#define NRF5x_SWDIO_GPIO GPIOA -//#define NRF5x_SWDIO_PIN 15 +//#define NRF5x_SWDIO_PIN 15 //#define NRF5x_SWCLK_GPIO GPIOB -//#define NRF5x_SWCLK_PIN 3 +//#define NRF5x_SWCLK_PIN 3 // ICU Peripheral for servo decoding #define HW_USE_SERVO_TIM4 #define HW_ICU_TIMER TIM4 #define HW_ICU_TIM_CLK_EN() RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM4, ENABLE) -#define HW_ICU_DEV ICUD4 +#define HW_ICU_DEV ICUD4 #define HW_ICU_CHANNEL ICU_CHANNEL_1 #define HW_ICU_GPIO_AF GPIO_AF_TIM4 -#define HW_ICU_GPIO GPIOB -#define HW_ICU_PIN 6 +#define HW_ICU_GPIO GPIOB +#define HW_ICU_PIN 6 // I2C Peripheral -#define HW_I2C_DEV I2CD2 +#define HW_I2C_DEV I2CD2 #define HW_I2C_GPIO_AF GPIO_AF_I2C2 #define HW_I2C_SCL_PORT GPIOB #define HW_I2C_SCL_PIN 10 @@ -231,7 +231,7 @@ #define HW_HALL_ENC_PIN2 7 #define HW_HALL_ENC_GPIO3 GPIOC #define HW_HALL_ENC_PIN3 8 -#define HW_ENC_TIM TIM3 +#define HW_ENC_TIM TIM3 #define HW_ENC_TIM_AF GPIO_AF_TIM3 #define HW_ENC_TIM_CLK_EN() RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE) #define HW_ENC_EXTI_PORTSRC EXTI_PortSourceGPIOC @@ -243,7 +243,7 @@ #define HW_ENC_TIM_ISR_VEC TIM3_IRQHandler // SPI pins -#define HW_SPI_DEV SPID1 +#define HW_SPI_DEV SPID1 #define HW_SPI_GPIO_AF GPIO_AF_SPI1 #define HW_SPI_PORT_NSS GPIOA #define HW_SPI_PIN_NSS 4 @@ -255,10 +255,10 @@ #define HW_SPI_PIN_MISO 6 // Measurement macros -#define ADC_V_L1 ADC_Value[ADC_IND_SENS1] -#define ADC_V_L2 ADC_Value[ADC_IND_SENS2] -#define ADC_V_L3 ADC_Value[ADC_IND_SENS3] -#define ADC_V_ZERO (ADC_Value[ADC_IND_VIN_SENS] / 2) +#define ADC_V_L1 ADC_Value[ADC_IND_SENS1] +#define ADC_V_L2 ADC_Value[ADC_IND_SENS2] +#define ADC_V_L3 ADC_Value[ADC_IND_SENS3] +#define ADC_V_ZERO (ADC_Value[ADC_IND_VIN_SENS] / 2) // Macros #define READ_HALL1() palReadPad(HW_HALL_ENC_GPIO1, HW_HALL_ENC_PIN1) @@ -266,7 +266,7 @@ #define READ_HALL3() palReadPad(HW_HALL_ENC_GPIO3, HW_HALL_ENC_PIN3) // Override dead time. See the stm32f4 reference manual for calculating this value. -#define HW_DEAD_TIME_NSEC 660.0 +#define HW_DEAD_TIME_NSEC 660.0 // Default setting overrides #ifndef MCCONF_L_MIN_VOLTAGE @@ -275,12 +275,11 @@ #ifndef MCCONF_L_MAX_VOLTAGE #define MCCONF_L_MAX_VOLTAGE 90.0 // Maximum input voltage #endif -#endif #ifndef MCCONF_DEFAULT_MOTOR_TYPE #define MCCONF_DEFAULT_MOTOR_TYPE MOTOR_TYPE_FOC #endif #ifndef MCCONF_FOC_F_ZV -#define MCCONF_FOC_F_ZV 30000.0 +#define MCCONF_FOC_F_ZV 30000.0 #endif #ifndef MCCONF_L_MAX_ABS_CURRENT #define MCCONF_L_MAX_ABS_CURRENT 350.0 // The maximum absolute current above which a fault is generated @@ -290,8 +289,9 @@ #endif #ifndef MCCONF_L_IN_CURRENT_MAX #define MCCONF_L_IN_CURRENT_MAX 200.0 // Input current limit in Amperes (Upper) +#endif #ifndef MCCONF_L_IN_CURRENT_MIN -#define MCCONF_L_IN_CURRENT_MIN -200.0 // Input current limit in Amperes (Lower) +#define MCCONF_L_IN_CURRENT_MIN -20.0 // Input current limit in Amperes (Lower) #endif @@ -299,8 +299,8 @@ #define HW_LIM_CURRENT -300.0, 300.0 #define HW_LIM_CURRENT_IN -280.0, 280.0 #define HW_LIM_CURRENT_ABS 0.0, 450 -#define HW_LIM_VIN 6.0, 120.0 -#define HW_LIM_ERPM -200e3, 200e3 +#define HW_LIM_VIN 6.0, 120.0 +#define HW_LIM_ERPM -200e3, 200e3 #define HW_LIM_DUTY_MIN 0.0, 0.1 #define HW_LIM_DUTY_MAX 0.0, 0.99 #define HW_LIM_TEMP_FET -40.0, 110.0 diff --git a/hwconf/makerbase/84_100_HP/hw_mksesc_84_100_hp.h b/hwconf/makerbase/84_100_HP/hw_mksesc_84_100_hp.h index f654b40681..27c8862b3d 100644 --- a/hwconf/makerbase/84_100_HP/hw_mksesc_84_100_hp.h +++ b/hwconf/makerbase/84_100_HP/hw_mksesc_84_100_hp.h @@ -32,7 +32,7 @@ #define LED_GREEN_GPIO GPIOB #define LED_GREEN_PIN 5 #define LED_RED_GPIO GPIOB -#define LED_RED_PIN 7 +#define LED_RED_PIN 7 #define LED_GREEN_ON() palSetPad(LED_GREEN_GPIO, LED_GREEN_PIN) #define LED_GREEN_OFF() palClearPad(LED_GREEN_GPIO, LED_GREEN_PIN) @@ -47,21 +47,21 @@ // Shutdown pin #define HW_SHUTDOWN_GPIO GPIOC #define HW_SHUTDOWN_PIN 5 -#define HW_SHUTDOWN_HOLD_ON() palSetPad(HW_SHUTDOWN_GPIO, HW_SHUTDOWN_PIN) -#define HW_SHUTDOWN_HOLD_OFF() palClearPad(HW_SHUTDOWN_GPIO, HW_SHUTDOWN_PIN) -#define HW_SAMPLE_SHUTDOWN() hw_sample_shutdown_button() +#define HW_SHUTDOWN_HOLD_ON() palSetPad(HW_SHUTDOWN_GPIO, HW_SHUTDOWN_PIN) +#define HW_SHUTDOWN_HOLD_OFF() palClearPad(HW_SHUTDOWN_GPIO, HW_SHUTDOWN_PIN) +#define HW_SAMPLE_SHUTDOWN() hw_sample_shutdown_button() // Hold shutdown pin early to wake up on short pulses #define HW_EARLY_INIT() palSetPadMode(HW_SHUTDOWN_GPIO, HW_SHUTDOWN_PIN, PAL_MODE_OUTPUT_PUSHPULL); \ - HW_SHUTDOWN_HOLD_ON(); + HW_SHUTDOWN_HOLD_ON(); -//#define AUX_GPIO GPIOC -//#define AUX_PIN 12 -//#define AUX_ON() palSetPad(AUX_GPIO, AUX_PIN) -//#define AUX_OFF() palClearPad(AUX_GPIO, AUX_PIN) +//#define AUX_GPIO GPIOC +//#define AUX_PIN 12 +//#define AUX_ON() palSetPad(AUX_GPIO, AUX_PIN) +//#define AUX_OFF() palClearPad(AUX_GPIO, AUX_PIN) #define CURRENT_FILTER_ON() palSetPad(GPIOD, 2) -#define CURRENT_FILTER_OFF() palClearPad(GPIOD, 2) +#define CURRENT_FILTER_OFF() palClearPad(GPIOD, 2) /* * ADC Vector @@ -69,21 +69,21 @@ * 0 (1): IN0 SENS1 * 1 (2): IN1 SENS2 * 2 (3): IN2 SENS3 - * 3 (1): IN10 CURR1 - * 4 (2): IN11 CURR2 - * 5 (3): IN12 CURR3 + * 3 (1): IN10 CURR1 + * 4 (2): IN11 CURR2 + * 5 (3): IN12 CURR3 * 6 (1): IN5 ADC_EXT1 * 7 (2): IN6 ADC_EXT2 * 8 (3): IN3 TEMP_MOS - * 9 (1): IN14 TEMP_MOTOR - * 10 (2): IN15 SHUTDOWN - * 11 (3): IN13 AN_IN + * 9 (1): IN14 TEMP_MOTOR + * 10 (2): IN15 SHUTDOWN + * 11 (3): IN13 AN_IN * 12 (1): Vrefint * 13 (2): IN0 SENS1 * 14 (3): IN1 SENS2 - * 15 (1): IN8 TEMP_MOS_2 - * 16 (2): IN9 TEMP_MOS_3 - * 17 (3): IN3 SENS3 + * 15 (1): IN8 TEMP_MOS_2 + * 16 (2): IN9 TEMP_MOS_3 + * 17 (3): IN3 SENS3 */ #define HW_ADC_CHANNELS 18 @@ -98,7 +98,7 @@ #define ADC_IND_CURR2 4 #define ADC_IND_CURR3 5 #define ADC_IND_VIN_SENS 11 -#define ADC_IND_EXT 6 +#define ADC_IND_EXT 6 #define ADC_IND_EXT2 7 #define ADC_IND_SHUTDOWN 10 #define ADC_IND_TEMP_MOS 8 @@ -111,15 +111,15 @@ // Component parameters (can be overridden) #ifndef V_REG -#define V_REG 3.40 +#define V_REG 3.30 #endif -//The voltage dividing acquisition circuit on the Makerbase VESC motherboard is 560K and 21.5K resistors. +//The voltage dividing acquisition circuit on the Makerbase VESC motherboard is 56K and 2.2K resistors. #ifndef VIN_R1 -#define VIN_R1 560000.0 +#define VIN_R1 56000.0 #endif #ifndef VIN_R2 -#define VIN_R2 21500.0 +#define VIN_R2 2200.0 #endif #ifndef CURRENT_AMP_GAIN @@ -136,8 +136,8 @@ #define NTC_RES(adc_val) ((4095.0 * 10000.0) / adc_val - 10000.0) #define NTC_TEMP(adc_ind) hw84_100_get_temp() -#define NTC_RES_MOTOR(adc_val) (10000.0 / ((4095.0 / (float)adc_val) - 1.0)) // Motor temp sensor on low side -#define NTC_TEMP_MOTOR(beta) (1.0 / ((logf(NTC_RES_MOTOR(ADC_Value[ADC_IND_TEMP_MOTOR]) / 10000.0) / beta) + (1.0 / 298.15)) - 273.15) +#define NTC_RES_MOTOR(adc_val) (10000.0 / ((4095.0 / (float)adc_val) - 1.0)) // Motor temp sensor on low side +#define NTC_TEMP_MOTOR(beta) (1.0 / ((logf(NTC_RES_MOTOR(ADC_Value[ADC_IND_TEMP_MOTOR]) / 10000.0) / beta) + (1.0 / 298.15)) - 273.15) // Voltage on ADC channel #define ADC_VOLTS(ch) ((float)ADC_Value[ch] / 4096.0 * V_REG) @@ -161,7 +161,7 @@ #define HW_ADC_EXT2_PIN 6 // UART Peripheral -#define HW_UART_DEV SD3 +#define HW_UART_DEV SD3 #define HW_UART_GPIO_AF GPIO_AF_USART3 #define HW_UART_TX_PORT GPIOB #define HW_UART_TX_PIN 10 @@ -180,22 +180,22 @@ // Disable, consider upgrading later // NRF SWD //#define NRF5x_SWDIO_GPIO GPIOA -//#define NRF5x_SWDIO_PIN 15 +//#define NRF5x_SWDIO_PIN 15 //#define NRF5x_SWCLK_GPIO GPIOB -//#define NRF5x_SWCLK_PIN 3 +//#define NRF5x_SWCLK_PIN 3 // ICU Peripheral for servo decoding #define HW_USE_SERVO_TIM4 #define HW_ICU_TIMER TIM4 #define HW_ICU_TIM_CLK_EN() RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM4, ENABLE) -#define HW_ICU_DEV ICUD4 +#define HW_ICU_DEV ICUD4 #define HW_ICU_CHANNEL ICU_CHANNEL_1 #define HW_ICU_GPIO_AF GPIO_AF_TIM4 -#define HW_ICU_GPIO GPIOB -#define HW_ICU_PIN 6 +#define HW_ICU_GPIO GPIOB +#define HW_ICU_PIN 6 // I2C Peripheral -#define HW_I2C_DEV I2CD2 +#define HW_I2C_DEV I2CD2 #define HW_I2C_GPIO_AF GPIO_AF_I2C2 #define HW_I2C_SCL_PORT GPIOB #define HW_I2C_SCL_PIN 10 @@ -209,7 +209,7 @@ #define HW_HALL_ENC_PIN2 7 #define HW_HALL_ENC_GPIO3 GPIOC #define HW_HALL_ENC_PIN3 8 -#define HW_ENC_TIM TIM3 +#define HW_ENC_TIM TIM3 #define HW_ENC_TIM_AF GPIO_AF_TIM3 #define HW_ENC_TIM_CLK_EN() RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE) #define HW_ENC_EXTI_PORTSRC EXTI_PortSourceGPIOC @@ -221,7 +221,7 @@ #define HW_ENC_TIM_ISR_VEC TIM3_IRQHandler // SPI pins -#define HW_SPI_DEV SPID1 +#define HW_SPI_DEV SPID1 #define HW_SPI_GPIO_AF GPIO_AF_SPI1 #define HW_SPI_PORT_NSS GPIOA #define HW_SPI_PIN_NSS 4 @@ -233,10 +233,10 @@ #define HW_SPI_PIN_MISO 6 // Measurement macros -#define ADC_V_L1 ADC_Value[ADC_IND_SENS1] -#define ADC_V_L2 ADC_Value[ADC_IND_SENS2] -#define ADC_V_L3 ADC_Value[ADC_IND_SENS3] -#define ADC_V_ZERO (ADC_Value[ADC_IND_VIN_SENS] / 2) +#define ADC_V_L1 ADC_Value[ADC_IND_SENS1] +#define ADC_V_L2 ADC_Value[ADC_IND_SENS2] +#define ADC_V_L3 ADC_Value[ADC_IND_SENS3] +#define ADC_V_ZERO (ADC_Value[ADC_IND_VIN_SENS] / 2) // Macros #define READ_HALL1() palReadPad(HW_HALL_ENC_GPIO1, HW_HALL_ENC_PIN1) @@ -244,7 +244,7 @@ #define READ_HALL3() palReadPad(HW_HALL_ENC_GPIO3, HW_HALL_ENC_PIN3) // Override dead time. See the stm32f4 reference manual for calculating this value. -#define HW_DEAD_TIME_NSEC 660.0 +#define HW_DEAD_TIME_NSEC 660.0 // Default setting overrides #ifndef MCCONF_L_MIN_VOLTAGE @@ -253,12 +253,11 @@ #ifndef MCCONF_L_MAX_VOLTAGE #define MCCONF_L_MAX_VOLTAGE 90.0 // Maximum input voltage #endif -#endif #ifndef MCCONF_DEFAULT_MOTOR_TYPE #define MCCONF_DEFAULT_MOTOR_TYPE MOTOR_TYPE_FOC #endif #ifndef MCCONF_FOC_F_ZV -#define MCCONF_FOC_F_ZV 30000.0 +#define MCCONF_FOC_F_ZV 30000.0 #endif #ifndef MCCONF_L_MAX_ABS_CURRENT #define MCCONF_L_MAX_ABS_CURRENT 150.0 // The maximum absolute current above which a fault is generated @@ -268,8 +267,9 @@ #endif #ifndef MCCONF_L_IN_CURRENT_MAX #define MCCONF_L_IN_CURRENT_MAX 100.0 // Input current limit in Amperes (Upper) +#endif #ifndef MCCONF_L_IN_CURRENT_MIN -#define MCCONF_L_IN_CURRENT_MIN -100.0 // Input current limit in Amperes (Lower) +#define MCCONF_L_IN_CURRENT_MIN -20.0 // Input current limit in Amperes (Lower) #endif @@ -277,8 +277,8 @@ #define HW_LIM_CURRENT -120.0, 120.0 #define HW_LIM_CURRENT_IN -120.0, 120.0 #define HW_LIM_CURRENT_ABS 0.0, 200 -#define HW_LIM_VIN 6.0, 120.0 -#define HW_LIM_ERPM -200e3, 200e3 +#define HW_LIM_VIN 6.0, 120.0 +#define HW_LIM_ERPM -200e3, 200e3 #define HW_LIM_DUTY_MIN 0.0, 0.1 #define HW_LIM_DUTY_MAX 0.0, 0.99 #define HW_LIM_TEMP_FET -40.0, 110.0 diff --git a/hwconf/makerbase/84_200_HP/hw_mksesc_84_200_hp.h b/hwconf/makerbase/84_200_HP/hw_mksesc_84_200_hp.h index e78a48404e..bc2dea6518 100644 --- a/hwconf/makerbase/84_200_HP/hw_mksesc_84_200_hp.h +++ b/hwconf/makerbase/84_200_HP/hw_mksesc_84_200_hp.h @@ -32,7 +32,7 @@ #define LED_GREEN_GPIO GPIOB #define LED_GREEN_PIN 5 #define LED_RED_GPIO GPIOB -#define LED_RED_PIN 7 +#define LED_RED_PIN 7 #define LED_GREEN_ON() palSetPad(LED_GREEN_GPIO, LED_GREEN_PIN) #define LED_GREEN_OFF() palClearPad(LED_GREEN_GPIO, LED_GREEN_PIN) @@ -47,21 +47,21 @@ // Shutdown pin #define HW_SHUTDOWN_GPIO GPIOC #define HW_SHUTDOWN_PIN 5 -#define HW_SHUTDOWN_HOLD_ON() palSetPad(HW_SHUTDOWN_GPIO, HW_SHUTDOWN_PIN) -#define HW_SHUTDOWN_HOLD_OFF() palClearPad(HW_SHUTDOWN_GPIO, HW_SHUTDOWN_PIN) -#define HW_SAMPLE_SHUTDOWN() hw_sample_shutdown_button() +#define HW_SHUTDOWN_HOLD_ON() palSetPad(HW_SHUTDOWN_GPIO, HW_SHUTDOWN_PIN) +#define HW_SHUTDOWN_HOLD_OFF() palClearPad(HW_SHUTDOWN_GPIO, HW_SHUTDOWN_PIN) +#define HW_SAMPLE_SHUTDOWN() hw_sample_shutdown_button() // Hold shutdown pin early to wake up on short pulses #define HW_EARLY_INIT() palSetPadMode(HW_SHUTDOWN_GPIO, HW_SHUTDOWN_PIN, PAL_MODE_OUTPUT_PUSHPULL); \ - HW_SHUTDOWN_HOLD_ON(); + HW_SHUTDOWN_HOLD_ON(); -#define AUX_GPIO GPIOC -#define AUX_PIN 12 -#define AUX_ON() palSetPad(AUX_GPIO, AUX_PIN) -#define AUX_OFF() palClearPad(AUX_GPIO, AUX_PIN) +#define AUX_GPIO GPIOC +#define AUX_PIN 12 +#define AUX_ON() palSetPad(AUX_GPIO, AUX_PIN) +#define AUX_OFF() palClearPad(AUX_GPIO, AUX_PIN) #define CURRENT_FILTER_ON() palSetPad(GPIOD, 2) -#define CURRENT_FILTER_OFF() palClearPad(GPIOD, 2) +#define CURRENT_FILTER_OFF() palClearPad(GPIOD, 2) /* * ADC Vector @@ -69,21 +69,21 @@ * 0 (1): IN0 SENS1 * 1 (2): IN1 SENS2 * 2 (3): IN2 SENS3 - * 3 (1): IN10 CURR1 - * 4 (2): IN11 CURR2 - * 5 (3): IN12 CURR3 + * 3 (1): IN10 CURR1 + * 4 (2): IN11 CURR2 + * 5 (3): IN12 CURR3 * 6 (1): IN5 ADC_EXT1 * 7 (2): IN6 ADC_EXT2 * 8 (3): IN3 TEMP_MOS - * 9 (1): IN14 TEMP_MOTOR - * 10 (2): IN15 SHUTDOWN - * 11 (3): IN13 AN_IN + * 9 (1): IN14 TEMP_MOTOR + * 10 (2): IN15 SHUTDOWN + * 11 (3): IN13 AN_IN * 12 (1): Vrefint * 13 (2): IN0 SENS1 * 14 (3): IN1 SENS2 - * 15 (1): IN8 TEMP_MOS_2 - * 16 (2): IN9 TEMP_MOS_3 - * 17 (3): IN3 SENS3 + * 15 (1): IN8 TEMP_MOS_2 + * 16 (2): IN9 TEMP_MOS_3 + * 17 (3): IN3 SENS3 */ #define HW_ADC_CHANNELS 18 @@ -98,7 +98,7 @@ #define ADC_IND_CURR2 4 #define ADC_IND_CURR3 5 #define ADC_IND_VIN_SENS 11 -#define ADC_IND_EXT 6 +#define ADC_IND_EXT 6 #define ADC_IND_EXT2 7 #define ADC_IND_SHUTDOWN 10 #define ADC_IND_TEMP_MOS 8 @@ -111,15 +111,15 @@ // Component parameters (can be overridden) #ifndef V_REG -#define V_REG 3.40 +#define V_REG 3.30 #endif -//The voltage dividing acquisition circuit on the Makerbase VESC motherboard is 560K and 21.5K resistors. +//The voltage dividing acquisition circuit on the Makerbase VESC motherboard is 56K and 2.2K resistors. #ifndef VIN_R1 -#define VIN_R1 560000.0 +#define VIN_R1 56000.0 #endif #ifndef VIN_R2 -#define VIN_R2 21500.0 +#define VIN_R2 2200.0 #endif #ifndef CURRENT_AMP_GAIN @@ -136,8 +136,8 @@ #define NTC_RES(adc_val) ((4095.0 * 10000.0) / adc_val - 10000.0) #define NTC_TEMP(adc_ind) hw84_200_get_temp() -#define NTC_RES_MOTOR(adc_val) (10000.0 / ((4095.0 / (float)adc_val) - 1.0)) // Motor temp sensor on low side -#define NTC_TEMP_MOTOR(beta) (1.0 / ((logf(NTC_RES_MOTOR(ADC_Value[ADC_IND_TEMP_MOTOR]) / 10000.0) / beta) + (1.0 / 298.15)) - 273.15) +#define NTC_RES_MOTOR(adc_val) (10000.0 / ((4095.0 / (float)adc_val) - 1.0)) // Motor temp sensor on low side +#define NTC_TEMP_MOTOR(beta) (1.0 / ((logf(NTC_RES_MOTOR(ADC_Value[ADC_IND_TEMP_MOTOR]) / 10000.0) / beta) + (1.0 / 298.15)) - 273.15) // Voltage on ADC channel #define ADC_VOLTS(ch) ((float)ADC_Value[ch] / 4096.0 * V_REG) @@ -161,7 +161,7 @@ #define HW_ADC_EXT2_PIN 6 // UART Peripheral -#define HW_UART_DEV SD3 +#define HW_UART_DEV SD3 #define HW_UART_GPIO_AF GPIO_AF_USART3 #define HW_UART_TX_PORT GPIOB #define HW_UART_TX_PIN 10 @@ -188,22 +188,22 @@ // Disable, consider upgrading later // NRF SWD //#define NRF5x_SWDIO_GPIO GPIOA -//#define NRF5x_SWDIO_PIN 15 +//#define NRF5x_SWDIO_PIN 15 //#define NRF5x_SWCLK_GPIO GPIOB -//#define NRF5x_SWCLK_PIN 3 +//#define NRF5x_SWCLK_PIN 3 // ICU Peripheral for servo decoding #define HW_USE_SERVO_TIM4 #define HW_ICU_TIMER TIM4 #define HW_ICU_TIM_CLK_EN() RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM4, ENABLE) -#define HW_ICU_DEV ICUD4 +#define HW_ICU_DEV ICUD4 #define HW_ICU_CHANNEL ICU_CHANNEL_1 #define HW_ICU_GPIO_AF GPIO_AF_TIM4 -#define HW_ICU_GPIO GPIOB -#define HW_ICU_PIN 6 +#define HW_ICU_GPIO GPIOB +#define HW_ICU_PIN 6 // I2C Peripheral -#define HW_I2C_DEV I2CD2 +#define HW_I2C_DEV I2CD2 #define HW_I2C_GPIO_AF GPIO_AF_I2C2 #define HW_I2C_SCL_PORT GPIOB #define HW_I2C_SCL_PIN 10 @@ -217,7 +217,7 @@ #define HW_HALL_ENC_PIN2 7 #define HW_HALL_ENC_GPIO3 GPIOC #define HW_HALL_ENC_PIN3 8 -#define HW_ENC_TIM TIM3 +#define HW_ENC_TIM TIM3 #define HW_ENC_TIM_AF GPIO_AF_TIM3 #define HW_ENC_TIM_CLK_EN() RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE) #define HW_ENC_EXTI_PORTSRC EXTI_PortSourceGPIOC @@ -229,7 +229,7 @@ #define HW_ENC_TIM_ISR_VEC TIM3_IRQHandler // SPI pins -#define HW_SPI_DEV SPID1 +#define HW_SPI_DEV SPID1 #define HW_SPI_GPIO_AF GPIO_AF_SPI1 #define HW_SPI_PORT_NSS GPIOA #define HW_SPI_PIN_NSS 4 @@ -241,10 +241,10 @@ #define HW_SPI_PIN_MISO 6 // Measurement macros -#define ADC_V_L1 ADC_Value[ADC_IND_SENS1] -#define ADC_V_L2 ADC_Value[ADC_IND_SENS2] -#define ADC_V_L3 ADC_Value[ADC_IND_SENS3] -#define ADC_V_ZERO (ADC_Value[ADC_IND_VIN_SENS] / 2) +#define ADC_V_L1 ADC_Value[ADC_IND_SENS1] +#define ADC_V_L2 ADC_Value[ADC_IND_SENS2] +#define ADC_V_L3 ADC_Value[ADC_IND_SENS3] +#define ADC_V_ZERO (ADC_Value[ADC_IND_VIN_SENS] / 2) // Macros #define READ_HALL1() palReadPad(HW_HALL_ENC_GPIO1, HW_HALL_ENC_PIN1) @@ -252,7 +252,7 @@ #define READ_HALL3() palReadPad(HW_HALL_ENC_GPIO3, HW_HALL_ENC_PIN3) // Override dead time. See the stm32f4 reference manual for calculating this value. -#define HW_DEAD_TIME_NSEC 660.0 +#define HW_DEAD_TIME_NSEC 660.0 // Default setting overrides #ifndef MCCONF_L_MIN_VOLTAGE @@ -261,12 +261,11 @@ #ifndef MCCONF_L_MAX_VOLTAGE #define MCCONF_L_MAX_VOLTAGE 90.0 // Maximum input voltage #endif -#endif #ifndef MCCONF_DEFAULT_MOTOR_TYPE #define MCCONF_DEFAULT_MOTOR_TYPE MOTOR_TYPE_FOC #endif #ifndef MCCONF_FOC_F_ZV -#define MCCONF_FOC_F_ZV 30000.0 +#define MCCONF_FOC_F_ZV 30000.0 #endif #ifndef MCCONF_L_MAX_ABS_CURRENT #define MCCONF_L_MAX_ABS_CURRENT 350.0 // The maximum absolute current above which a fault is generated @@ -276,8 +275,9 @@ #endif #ifndef MCCONF_L_IN_CURRENT_MAX #define MCCONF_L_IN_CURRENT_MAX 200.0 // Input current limit in Amperes (Upper) +#endif #ifndef MCCONF_L_IN_CURRENT_MIN -#define MCCONF_L_IN_CURRENT_MIN -200.0 // Input current limit in Amperes (Lower) +#define MCCONF_L_IN_CURRENT_MIN -20.0 // Input current limit in Amperes (Lower) #endif @@ -285,8 +285,8 @@ #define HW_LIM_CURRENT -300.0, 300.0 #define HW_LIM_CURRENT_IN -280.0, 280.0 #define HW_LIM_CURRENT_ABS 0.0, 450 -#define HW_LIM_VIN 6.0, 120.0 -#define HW_LIM_ERPM -200e3, 200e3 +#define HW_LIM_VIN 6.0, 120.0 +#define HW_LIM_ERPM -200e3, 200e3 #define HW_LIM_DUTY_MIN 0.0, 0.1 #define HW_LIM_DUTY_MAX 0.0, 0.99 #define HW_LIM_TEMP_FET -40.0, 110.0