|
|
#define | CONV_DELAY_MS 10 |
| |
|
#define | AUX_CONV_DELAY_MS 3 |
| |
|
#define | RETRY_DELAY_MS 10U |
| |
|
#define | CELL_SENSE_CONVERSIONS 0 |
| |
|
#define | SOLAR_VOLTAGE_THRESHOLD 42000 |
| |
|
#define | AFE_BALANCING_UPPER_THRESHOLD 41500 |
| |
|
#define | AFE_BALANCING_LOWER_THRESHOLD 40000 |
| |
|
#define | IS_USING_CURRENT_SENSE_REV_3 1U |
| |
|
#define | REAR_CONTROLLER_FAN_IDLE_DUTY_PCT 10U |
| |
|
#define | REAR_CONTROLLER_FAN_MAX_DUTY_PCT 100U |
| |
|
#define | REAR_CONTROLLER_FAN_RAMP_MIN_C 45 |
| |
|
#define | REAR_CONTROLLER_FAN_RAMP_MAX_C 55 |
| |
|
#define | REAR_CONTROLLER_PRECHARGE_EVENT 0U |
| |
|
#define | REAR_CONTROLLER_PRECHARGE_CYCLE_DELAY_MS MASTER_50HZ_TO_MS |
| |
|
#define | REAR_CONTROLLER_PRECHARGE_TIMEOUT_COUNTER 5000 / REAR_CONTROLLER_PRECHARGE_CYCLE_DELAY_MS |
| |
|
#define | REAR_CONTROLLER_CURRENT_SENSE_FILTER_ALPHA 0.5 |
| |
|
#define | REAR_CONTROLLER_CURRENT_SENSE_MAX_RETRIES 3 |
| |
|
#define | REAR_CONTROLLER_RELAY_INRUSH_MIN_DELAY_MS 130U |
| |
|
#define | REAR_CONTROLLER_SERIES_COUNT 36U |
| |
|
#define | REAR_CONTROLLER_PARALLEL_COUNT 9U |
| |
|
#define | REAR_CONTROLLER_CELL_CAPACITY_AH 4.5 |
| |
|
#define | REAR_CONTROLLER_GPIO_DEF(PORT, PIN) { .port = GPIO_PORT_##PORT, .pin = PIN } |
| |
|
#define | GPIO_REAR_CONTROLLER_CAN_RX REAR_CONTROLLER_GPIO_DEF(B, 8) |
| | Rear Controller CAN RX Port.
|
| |
|
#define | GPIO_REAR_CONTROLLER_CAN_TX REAR_CONTROLLER_GPIO_DEF(B, 9) |
| | Rear Controller CAN TX Port.
|
| |
|
#define | GPIO_REAR_CONTROLLER_POS_RELAY_ENABLE REAR_CONTROLLER_GPIO_DEF(A, 6) |
| | Rear Controller positive relay enable pin.
|
| |
|
#define | GPIO_REAR_CONTROLLER_POS_RELAY_SENSE REAR_CONTROLLER_GPIO_DEF(A, 5) |
| | Rear Controller positive relay sense pin.
|
| |
|
#define | GPIO_REAR_CONTROLLER_NEG_RELAY_ENABLE REAR_CONTROLLER_GPIO_DEF(A, 4) |
| | Rear Controller negative relay enable pin.
|
| |
|
#define | GPIO_REAR_CONTROLLER_NEG_RELAY_SENSE REAR_CONTROLLER_GPIO_DEF(A, 3) |
| | Rear Controller negative relay sense pin.
|
| |
|
#define | GPIO_REAR_CONTROLLER_SOLAR_RELAY_ENABLE REAR_CONTROLLER_GPIO_DEF(A, 8) |
| | Rear Controller solar relay enable pin.
|
| |
|
#define | GPIO_REAR_CONTROLLER_SOLAR_RELAY_SENSE REAR_CONTROLLER_GPIO_DEF(A, 9) |
| | Rear Controller solar relay sense pin.
|
| |
|
#define | GPIO_REAR_CONTROLLER_MOTOR_RELAY_ENABLE REAR_CONTROLLER_GPIO_DEF(C, 4) |
| | Rear Controller motor relay enable pin.
|
| |
|
#define | GPIO_REAR_CONTROLLER_MOTOR_RELAY_SENSE REAR_CONTROLLER_GPIO_DEF(A, 7) |
| | Rear Controller motor relay sense pin.
|
| |
|
#define | GPIO_REAR_CONTROLLER_MOTOR_LV_ENABLE REAR_CONTROLLER_GPIO_DEF(C, 12) |
| | Rear Controller motor low-voltage enable pin.
|
| |
|
#define | GPIO_REAR_CONTROLLER_MOTOR_FAN_PWM_1 REAR_CONTROLLER_GPIO_DEF(B, 2) |
| | Rear Controller fan pwm 1.
|
| |
|
#define | GPIO_REAR_CONTROLLER_MOTOR_FAN_PWM_2 REAR_CONTROLLER_GPIO_DEF(B, 3) |
| | Rear Controller fan pwm 2.
|
| |
|
#define | GPIO_REAR_CONTROLLER_MOTOR_FAN_PWR_1 REAR_CONTROLLER_GPIO_DEF(B, 4) |
| | Rear Controller fan pwr 1.
|
| |
|
#define | GPIO_REAR_CONTROLLER_MOTOR_FAN_SENSE_1 REAR_CONTROLLER_GPIO_DEF(B, 0) |
| | Rear Controller fan sense 2.
|
| |
|
#define | GPIO_REAR_CONTROLLER_MOTOR_FAN_SENSE_2 REAR_CONTROLLER_GPIO_DEF(B, 1) |
| | Rear Controller fan sense 1.
|
| |
|
#define | REAR_CONTROLLER_CURRENT_SENSE_I2C_PORT I2C_PORT_3 |
| | Current sense I2C port.
|
| |
|
#define | GPIO_REAR_CONTROLLER_CURRENT_SENSE_I2C_SDA_GPIO REAR_CONTROLLER_GPIO_DEF(C, 1) |
| | Current sense I2C serial data pin.
|
| |
|
#define | GPIO_REAR_CONTROLLER_CURRENT_SENSE_I2C_SCL_GPIO REAR_CONTROLLER_GPIO_DEF(C, 0) |
| | Current sense I2C clock pin.
|
| |
|
#define | REAR_CONTROLLER_CURRENT_SENSE_ACS37800_I2C_ADDR (96) |
| | Current sense slave address.
|
| |
|
#define | REAR_CONTOLLER_CURRENT_SENSE_ADC122_I2C_ADDR (64) |
| | Current sense slave address.
|
| |
|
#define | REAR_CONTROLLER_HYDROGEN_SENSOR_I2C_PORT I2C_PORT_2 |
| | Hydrogen sensor I2C port.
|
| |
|
#define | GPIO_REAR_CONTROLLER_HYDROGEN_SENSOR_I2C_SDA_GPIO REAR_CONTROLLER_GPIO_DEF(B, 11) |
| | Hydrogen sensor I2C serial data pin.
|
| |
|
#define | GPIO_REAR_CONTROLLER_HYDROGEN_SENSOR_I2C_SCL_GPIO REAR_CONTROLLER_GPIO_DEF(B, 10) |
| | Hydrogen sensor I2C clock pin.
|
| |
|
#define | REAR_CONTROLLER_HYDROGEN_SENSOR_I2C_ADDR (0x36) |
| | Hydrogen sensor slave address.
|
| |
|
#define | GPIO_REAR_CONTROLLER_HYDROGEN_SENSOR_STANDBY REAR_CONTROLLER_GPIO_DEF(D, 2) |
| | Hydrogen sensor standby.
|
| |
|
#define | REAR_CONTROLLER_ADBMS_AFE_SPI_PORT SPI_PORT_2 |
| | AFE SPI port.
|
| |
|
#define | REAR_CONTROLLER_ADBMS_AFE_SPI_BAUDRATE SPI_BAUDRATE_312_5KHZ |
| | AFE SPI Baudrate.
|
| |
|
#define | GPIO_REAR_CONTROLLER_ADBMS_AFE_SPI_SDO_GPIO REAR_CONTROLLER_GPIO_DEF(B, 15) |
| | AFE SPI Serial data out.
|
| |
|
#define | GPIO_REAR_CONTROLLER_ADBMS_AFE_SPI_SDI_GPIO REAR_CONTROLLER_GPIO_DEF(B, 14) |
| | AFE SPI Serial data in.
|
| |
|
#define | GPIO_REAR_CONTROLLER_ADBMS_AFE_SPI_SCK_GPIO REAR_CONTROLLER_GPIO_DEF(B, 13) |
| | AFE SPI Serial clock line.
|
| |
|
#define | GPIO_REAR_CONTROLLER_ADBMS_AFE_SPI_CS_GPIO REAR_CONTROLLER_GPIO_DEF(B, 12) |
| | AFE SPI Chip select line.
|
| |
|
#define | GPIO_REAR_CONTROLLER_PCS_VALID1 REAR_CONTROLLER_GPIO_DEF(C, 6) |
| | Rear Controller PCS input valid pin 1.
|
| |
|
#define | GPIO_REAR_CONTROLLER_PCS_VALID2 REAR_CONTROLLER_GPIO_DEF(C, 7) |
| | Rear Controller PCS input valid pin 2.
|
| |
|
#define | GPIO_REAR_CONTROLLER_AUX_VALID1 REAR_CONTROLLER_GPIO_DEF(C, 8) |
| | Rear Controller AUX input valid pin 1.
|
| |
|
#define | GPIO_REAR_CONTROLLER_AUX_VALID2 REAR_CONTROLLER_GPIO_DEF(C, 9) |
| | Rear Controller AUX input valid pin 2.
|
| |
|
#define | GPIO_REAR_CONTROLLER_PCS_VSENSE REAR_CONTROLLER_GPIO_DEF(A, 2) |
| | Rear Controller PCS voltage sense.
|
| |
|
#define | GPIO_REAR_CONTROLLER_AUX_VSENSE REAR_CONTROLLER_GPIO_DEF(A, 1) |
| | Rear Controller AUX voltage sense.
|
| |
|
#define | GPIO_REAR_CONTROLLER_PCS_ISENSE REAR_CONTROLLER_GPIO_DEF(C, 3) |
| | Rear Controller PCS current sense.
|
| |
|
#define | GPIO_REAR_CONTROLLER_AUX_ISENSE REAR_CONTROLLER_GPIO_DEF(C, 2) |
| | Rear Controller AUX current sense.
|
| |
|
#define | GPIO_REAR_CONTROLLER_PRECHARGE_MONITOR_GPIO REAR_CONTROLLER_GPIO_DEF(A, 0) |
| | Precharge monitoring pin.
|
| |
|
#define | GPIO_REAR_CONTROLLER_KILLSWITCH_MONITOR REAR_CONTROLLER_GPIO_DEF(C, 5) |
| | Killswitch monitoring pin.
|
| |
|
#define | GPIO_REAR_CONTROLLER_BOARD_LED REAR_CONTROLLER_GPIO_DEF(A, 10) |
| | Rear Controller board LED.
|
| |
| #define | PACK_MAX_DISCHARGE_CURRENT_A -80.0 |
| |
| #define | PACK_MAX_CHARGE_CURRENT_A 80.0 |
| |
| #define | PACK_SHORT_CIRCUIT_CURRENT_A 60000 |
| |
| #define | CELL_OVERVOLTAGE_LIMIT_mV 4200 |
| |
| #define | CELL_UNDERVOLTAGE_LIMIT_mV 2500 |
| |
| #define | CELL_UNBALANCED_LIMIT_mV 500 |
| |
|
#define | PACK_OVERVOLTAGE_LIMIT_mV 151200 |
| |
|
#define | PACK_UNDERVOLTAGE_LIMIT_mV 90000 |
| |
| #define | CELL_OVERTEMP_DISCHARGE_LIMIT_C 60 |
| |
| #define | CELL_OVERTEMP_CHARGE_LIMIT_C 60 |
| |
| #define | CELL_UNDERTEMP_CHARGE_LIMIT_C 0 |
| |
| #define | SHORT_CIRCUIT_RESPONSE_MS 1U |
| |
| #define | OVERCURRENT_RESPONSE_LOOPS 2 |
| |
| #define | OVERTEMP_RESPONSE_MS 500U |
| |
| #define | UNDERVOLTAGE_RESPONSE_MS 1000U |
| |
| #define | OVERVOLTAGE_RESPONSE_MS 1000U |
| |
|
#define | NUM_REAR_RELAYS 4U |
| |
|
#define | REAR_CLOSE_RELAYS_DELAY_MS 250U |
| |
|
#define | REAR_CLOSE_RELAYS_DELAY_MS 250U |
| |
|
#define | SOC_OCV_TABLE_SIZE (100) |
| |
| #define | SOC_TABLE_VALUES |
| | SOC table initializer list. More...
|
| |
| #define | OCV_TABLE_VALUES |
| | OCV table initializer list. More...
|
| |
|
| StatusCode | bps_fault_init (RearControllerStorage *storage) |
| | Initialize the BPS fault memory. More...
|
| |
| StatusCode | bps_fault_commit (void) |
| | Commit a new BPS fault to persist memory and CAN data. More...
|
| |
| StatusCode | trigger_bps_fault (BpsFault fault) |
| | Trigger a BPS fault. This opens the relays and updates rear controller storage. More...
|
| |
| StatusCode | trigger_bps_fault_with_cell (BpsFault fault, uint8_t cell_at_fault) |
| | Trigger a BPS fault with an associated cell index. More...
|
| |
| StatusCode | trigger_bps_fault_with_data (BpsFault fault, uint8_t cell_at_fault, BpsFaultData data) |
| | Trigger a BPS fault with a detail snapshot for the fault data payload. More...
|
| |
| StatusCode | bps_fault_clear () |
| | Clear the BPS fault. More...
|
| |
| StatusCode | cell_sense_init (RearControllerStorage *storage) |
| | Initializes the cell sense sub-system. More...
|
| |
| StatusCode | log_cell_sense () |
| | Logs the newest cell sense readings. More...
|
| |
| StatusCode | current_sense_init (RearControllerStorage *rear_controller_storage) |
| | Initializes the current sense sub-system. More...
|
| |
| StatusCode | current_sense_run () |
| | Run a current sensing cycle to update pack voltage and pack current readings. More...
|
| |
| StatusCode | fans_init (RearControllerStorage *storage) |
| | Initializes the fan sub-system. More...
|
| |
| StatusCode | fans_run (void) |
| | Ramps both PWM fans from idle to full over the temp band, and drives fan_pwr_1 on BPS fault. More...
|
| |
| StatusCode | killswitch_init (Event event, const Task *task) |
| | Initializes the killswitch with interrupt handling. More...
|
| |
|
StatusCode | killswitch_run () |
| | Run the program that checks killswitch.
|
| |
| StatusCode | power_path_manager_init (RearControllerStorage *storage) |
| | Initialize the power path manager. More...
|
| |
| StatusCode | power_path_manager_run (void) |
| | Run power path manager calculations. More...
|
| |
| StatusCode | precharge_init (Event event, const Task *task, RearControllerStorage *storage) |
| | Initializes the precharge pin with interrupt handling. More...
|
| |
| StatusCode | precharge_run () |
| | Run the program that checks precharge completion. More...
|
| |
|
StatusCode | rear_controller_init (RearControllerStorage *storage, RearControllerConfig *config, Ws22MotorCanConfig *motor_can_config) |
| |
| StatusCode | rear_controller_state_manager_init (RearControllerStorage *storage) |
| | Initialize the state machine. More...
|
| |
| StatusCode | rear_controller_state_manager_step (RearControllerEvent event) |
| | Advance the state machine based on inputs/events. More...
|
| |
| RearControllerState | rear_controller_state_manager_get_state (void) |
| | Get current state. More...
|
| |
| StatusCode | rear_controller_update_state_manager_medium_cycle () |
| | Update the state/set relays based on information recieved from CAN (medium cycle). More...
|
| |
| StatusCode | relays_init (RearControllerStorage *storage) |
| | Initialize the relay control module. More...
|
| |
| StatusCode | relays_reset () |
| | Reset relays by disengaging all relays. More...
|
| |
| StatusCode | relays_enable_ws22_lv (void) |
| | Enable the low voltage for the Wavesculptor 22. More...
|
| |
| StatusCode | relays_disable_ws22_lv (void) |
| | Disable the low voltage for the Wavesculptor 22. More...
|
| |
| StatusCode | relays_close_pos (void) |
| | Close the high-side (POS) relay. More...
|
| |
| StatusCode | relays_open_pos (void) |
| | Open the high-side (POS) relay. More...
|
| |
| StatusCode | relays_close_neg (void) |
| | Close the low-side (NEG) relay. More...
|
| |
| StatusCode | relays_open_neg (void) |
| | Open the low-side (NEG) relay. More...
|
| |
| StatusCode | relays_close_motor (void) |
| | Close the motor HV relay. More...
|
| |
| StatusCode | relays_open_motor (void) |
| | Open the motor HV relay. More...
|
| |
| StatusCode | relays_close_solar (void) |
| | Close the solar array relay. More...
|
| |
| StatusCode | relays_open_solar (void) |
| | Open the solar array relay. More...
|
| |
| StatusCode | state_of_charge_init (RearControllerStorage *storage) |
| | Initialize the state of charge EKF. More...
|
| |
| StatusCode | state_of_charge_run () |
| | Run state of charge calculation. More...
|
| |
|
uint16_t | calculate_board_thermistor_temperature (uint16_t thermistor_voltage_mv) |
| |
|
fid, '#pragma once\n\n' | fprintf () |
| |
|
| fprintf (fid, '#define SOC_TABLE_VALUES { \\\n') |
| |
Rear Controller Board Firmware.