mirror of https://github.com/rusefi/bldc.git
Merge pull request #383 from TechAUmNu/dev_fw_5_03
Tweak settings for A50S hardware
This commit is contained in:
commit
76f100f61a
106
hwconf/hw_a50s.h
106
hwconf/hw_a50s.h
|
@ -33,21 +33,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 (not used)
|
||||
* 3 (1): IN10 CURR1
|
||||
* 4 (2): IN11 CURR2
|
||||
* 5 (3): IN12 CURR3 (not used)
|
||||
* 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
|
||||
|
@ -61,8 +61,8 @@
|
|||
#define ADC_IND_CURR1 4
|
||||
#define ADC_IND_CURR2 3
|
||||
#define ADC_IND_CURR3 5
|
||||
#define ADC_IND_VIN_SENS 11
|
||||
#define ADC_IND_EXT 6
|
||||
#define ADC_IND_VIN_SENS 11
|
||||
#define ADC_IND_EXT 6
|
||||
#define ADC_IND_EXT2 7
|
||||
#define ADC_IND_EXT3 10
|
||||
#define ADC_IND_TEMP_MOS 8
|
||||
|
@ -75,13 +75,13 @@
|
|||
|
||||
// Component parameters (can be overridden)
|
||||
#ifndef V_REG
|
||||
#define V_REG 3.30
|
||||
#define V_REG 3.30
|
||||
#endif
|
||||
#ifndef VIN_R1
|
||||
#define VIN_R1 12000.0
|
||||
#define VIN_R1 12000.0
|
||||
#endif
|
||||
#ifndef VIN_R2
|
||||
#define VIN_R2 620.0
|
||||
#define VIN_R2 620.0
|
||||
#endif
|
||||
#ifndef CURRENT_AMP_GAIN
|
||||
#define CURRENT_AMP_GAIN 20.0
|
||||
|
@ -99,8 +99,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)
|
||||
|
@ -118,10 +118,10 @@
|
|||
#endif
|
||||
|
||||
// Unused
|
||||
#define LED_GREEN_GPIO GPIOB
|
||||
#define LED_GREEN_GPIO GPIOB
|
||||
#define LED_GREEN_PIN 0
|
||||
#define LED_RED_GPIO GPIOB
|
||||
#define LED_RED_PIN 1
|
||||
#define LED_RED_PIN 1
|
||||
|
||||
#define LED_GREEN_ON() palSetPad(LED_GREEN_GPIO, LED_GREEN_PIN)
|
||||
#define LED_GREEN_OFF() palClearPad(LED_GREEN_GPIO, LED_GREEN_PIN)
|
||||
|
@ -130,17 +130,17 @@
|
|||
|
||||
// Phase filter
|
||||
#define PHASE_FILTER_OFF() palSetPad(GPIOB, 3); palSetPad(GPIOB, 4); palSetPad(GPIOB, 5)
|
||||
#define PHASE_FILTER_ON() palClearPad(GPIOB, 3); palClearPad(GPIOB, 4); palClearPad(GPIOB, 5)
|
||||
#define PHASE_FILTER_ON() palClearPad(GPIOB, 3); palClearPad(GPIOB, 4); palClearPad(GPIOB, 5)
|
||||
|
||||
// Current filter
|
||||
#define CURRENT_FILTER_OFF() palSetPad(GPIOH, 1); palSetPad(GPIOC, 2)
|
||||
#define CURRENT_FILTER_ON() palClearPad(GPIOH, 1); palClearPad(GPIOC, 2)
|
||||
#define CURRENT_FILTER_OFF() palSetPad(GPIOH, 1); palSetPad(GPIOC, 2)
|
||||
#define CURRENT_FILTER_ON() palClearPad(GPIOH, 1); palClearPad(GPIOC, 2)
|
||||
|
||||
// Aux
|
||||
#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)
|
||||
|
||||
// COMM-port ADC GPIOs
|
||||
#define HW_ADC_EXT_GPIO GPIOA
|
||||
|
@ -149,7 +149,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
|
||||
|
@ -158,7 +158,7 @@
|
|||
|
||||
|
||||
// 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 GPIOB
|
||||
#define HW_SPI_PIN_NSS 11
|
||||
|
@ -171,7 +171,7 @@
|
|||
|
||||
|
||||
// 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
|
||||
|
@ -185,7 +185,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
|
||||
|
@ -200,17 +200,17 @@
|
|||
#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
|
||||
|
||||
// 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)
|
||||
|
@ -218,26 +218,26 @@
|
|||
#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 0.0 // FD6288Q has 200ns built in deadtime
|
||||
#define HW_DEAD_TIME_NSEC 0.0 // FD6288Q has 200ns built in deadtime
|
||||
|
||||
// Default setting overrides
|
||||
#ifndef MCCONF_L_MIN_VOLTAGE
|
||||
#define MCCONF_L_MIN_VOLTAGE 8.0 // Minimum input voltage
|
||||
#define MCCONF_L_MIN_VOLTAGE 8.0 // Minimum input voltage
|
||||
#endif
|
||||
#ifndef MCCONF_L_MAX_VOLTAGE
|
||||
#define MCCONF_L_MAX_VOLTAGE 56.0 // Maximum input voltage
|
||||
#define MCCONF_L_MAX_VOLTAGE 55.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 35000.0
|
||||
#define MCCONF_FOC_F_ZV 25000.0 // Switching frequency reduced to allow rise time of low side shunts
|
||||
#endif
|
||||
#ifndef MCCONF_L_MAX_ABS_CURRENT
|
||||
#define MCCONF_L_MAX_ABS_CURRENT 80.0 // The maximum absolute current above which a fault is generated
|
||||
#define MCCONF_L_MAX_ABS_CURRENT 80.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_CURRENT_MAX
|
||||
#define MCCONF_L_CURRENT_MAX 20.0 // Current limit in Amperes (Upper)
|
||||
|
@ -246,37 +246,37 @@
|
|||
#define MCCONF_L_CURRENT_MIN -20.0 // Current limit in Amperes (Lower)
|
||||
#endif
|
||||
#ifndef MCCONF_L_IN_CURRENT_MAX
|
||||
#define MCCONF_L_IN_CURRENT_MAX 20.0 // Input current limit in Amperes (Upper)
|
||||
#define MCCONF_L_IN_CURRENT_MAX 20.0 // Input current limit in Amperes (Upper)
|
||||
#endif
|
||||
#ifndef MCCONF_L_IN_CURRENT_MIN
|
||||
#define MCCONF_L_IN_CURRENT_MIN -10.0 // Input current limit in Amperes (Lower)
|
||||
#define MCCONF_L_IN_CURRENT_MIN -10.0 // Input current limit in Amperes (Lower)
|
||||
#endif
|
||||
|
||||
// Setting limits
|
||||
|
||||
|
||||
#ifdef HW_A50S_12S
|
||||
#define HW_NAME "A50S V2.1 12S"
|
||||
#define HW_NAME "A50S V2.1 12S"
|
||||
#define HW_LIM_CURRENT -40.0, 40.0
|
||||
#define HW_LIM_CURRENT_IN -30.0, 30.0
|
||||
#define HW_LIM_CURRENT_ABS 0.0, 80.0
|
||||
#define HW_LIM_VIN 4.0, 56.0
|
||||
#define HW_LIM_ERPM -200e3, 200e3
|
||||
#define HW_LIM_VIN 4.0, 56.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_DUTY_MAX 0.0, 0.93 // Duty cycle limited to allow rise time of low side shunts
|
||||
#define HW_LIM_TEMP_FET -40.0, 100.0
|
||||
#endif
|
||||
|
||||
|
||||
#ifdef HW_A50S_6S
|
||||
#define HW_NAME "A50S V2.1 6S"
|
||||
#define HW_NAME "A50S V2.1 6S"
|
||||
#define HW_LIM_CURRENT -50.0, 50.0
|
||||
#define HW_LIM_CURRENT_IN -30.0, 30.0
|
||||
#define HW_LIM_CURRENT_ABS 0.0, 80.0
|
||||
#define HW_LIM_VIN 4.0, 28.0
|
||||
#define HW_LIM_ERPM -200e3, 200e3
|
||||
#define HW_LIM_VIN 4.0, 28.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_DUTY_MAX 0.0, 0.93 // Duty cycle limited to allow rise time of low side shunts
|
||||
#define HW_LIM_TEMP_FET -40.0, 100.0
|
||||
#endif
|
||||
|
||||
|
|
Loading…
Reference in New Issue