Compare commits
3 Commits
bf11004c64
...
6d6c1c1f15
Author | SHA1 | Date |
---|---|---|
Jasper Blanckenburg | 6d6c1c1f15 | |
Jasper Blanckenburg | cf018f9e4a | |
Jasper Blanckenburg | 25d6ab2667 |
|
@ -5,8 +5,9 @@
|
|||
|
||||
#include "stm32f3xx_hal.h"
|
||||
|
||||
#define THRESH_OVERCURRENT 300000 // mA
|
||||
#define THRESH_OVERTEMP 1000 // 1/10 °C
|
||||
#define SHUNT_TIMEOUT 300 // ms
|
||||
#define SHUNT_THRESH_OVERCURRENT 300000 // mA
|
||||
#define SHUNT_THRESH_OVERTEMP 1000 // 1/10 °C
|
||||
|
||||
typedef struct {
|
||||
int32_t current;
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
|
||||
#include <stdint.h>
|
||||
|
||||
#define N_SLAVES 5
|
||||
#define N_SLAVES 6
|
||||
#define N_CELLS_SERIES 17
|
||||
#define N_CELLS_PARALLEL 5
|
||||
#define N_TEMP_SENSORS 32
|
||||
|
|
|
@ -24,10 +24,13 @@ void shunt_init() {
|
|||
|
||||
void shunt_check() {
|
||||
int is_error = 0;
|
||||
if (shunt_data.current >= THRESH_OVERCURRENT) {
|
||||
if (HAL_GetTick() - shunt_data.last_message > SHUNT_TIMEOUT) {
|
||||
is_error = 1;
|
||||
can_send_error(TS_ERRORKIND_SHUNT_TIMEOUT, 0);
|
||||
} else if (shunt_data.current >= SHUNT_THRESH_OVERCURRENT) {
|
||||
is_error = 1;
|
||||
can_send_error(TS_ERRORKIND_SHUNT_OVERTEMP, 0);
|
||||
} else if (shunt_data.busbartemp >= THRESH_OVERTEMP) {
|
||||
} else if (shunt_data.busbartemp >= SHUNT_THRESH_OVERTEMP) {
|
||||
is_error = 1;
|
||||
can_send_error(TS_ERRORKIND_SHUNT_OVERTEMP, 0);
|
||||
}
|
||||
|
@ -35,6 +38,8 @@ void shunt_check() {
|
|||
}
|
||||
|
||||
void shunt_handle_can_msg(uint16_t id, const uint8_t *data) {
|
||||
shunt_data.last_message = HAL_GetTick();
|
||||
|
||||
// All result messages contain a big-endian 6-byte integer
|
||||
uint64_t result = ftcan_unmarshal_unsigned(&data, 6);
|
||||
|
||||
|
|
|
@ -51,10 +51,10 @@ void ts_sm_update() {
|
|||
}
|
||||
|
||||
TSState ts_sm_update_inactive() {
|
||||
if (ts_state.target_state == TS_ACTIVE) {
|
||||
if (ts_state.target_state == TS_ACTIVE && sdc_closed) {
|
||||
precharge_95_reached_timestamp = 0;
|
||||
return TS_PRECHARGE;
|
||||
} else if (ts_state.target_state == TS_CHARGING) {
|
||||
} else if (ts_state.target_state == TS_CHARGING && sdc_closed) {
|
||||
charging_check_timestamp = HAL_GetTick();
|
||||
return TS_CHARGING_CHECK;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue