refactor: use BMS' built-in OV/UV detection
This commit is contained in:
parent
90cd1330c2
commit
10ea3c85a3
@ -280,7 +280,9 @@ HAL_StatusTypeDef amsCheckUnderOverVoltage(Cell_Module (*module)[N_BMS]) {
|
||||
}
|
||||
}
|
||||
|
||||
return HAL_OK;
|
||||
uint8_t buffer[CMD_BUFFER_SIZE(6)] = {[0 ... CMD_BUFFER_SIZE(6) - 1] = 0xFF};
|
||||
|
||||
return writeCMD(CLOVUV, buffer, STATUS_GROUP_D_SIZE); // flags are latched, so we need to clear them
|
||||
}
|
||||
|
||||
HAL_StatusTypeDef amsClearFlag() {
|
||||
|
@ -101,14 +101,12 @@ ADBMS_DetailedStatus AMS_Idle_Loop() {
|
||||
return (ADBMS_DetailedStatus){ADBMS_INTERNAL_BMS_CHECKSUM_FAIL, -1};
|
||||
}
|
||||
|
||||
for (size_t i = 0; i < numberofCells; i++) {
|
||||
if ((match = any(module.cellVoltages[i] < 2500))) {
|
||||
error_data[ADBMS_UNDERVOLT].data[0] = i;
|
||||
return (ADBMS_DetailedStatus){ADBMS_UNDERVOLT, match};
|
||||
} else if ((match = any(module.cellVoltages[i] > 4200))) {
|
||||
error_data[ADBMS_OVERVOLT].data[0] = i;
|
||||
return (ADBMS_DetailedStatus){ADBMS_OVERVOLT, match};
|
||||
}
|
||||
if ((match = any(module.overVoltage))) {
|
||||
return (ADBMS_DetailedStatus){ADBMS_OVERVOLT, match};
|
||||
}
|
||||
|
||||
if ((match = any(module.underVoltage))) {
|
||||
return (ADBMS_DetailedStatus){ADBMS_UNDERVOLT, match};
|
||||
}
|
||||
|
||||
// TODO: replace with the correct threshold for the internal die temperature
|
||||
@ -116,7 +114,7 @@ ADBMS_DetailedStatus AMS_Idle_Loop() {
|
||||
return (ADBMS_DetailedStatus){ADBMS_INTERNAL_BMS_OVERTEMP, match};
|
||||
}
|
||||
|
||||
mcuDelay(10);
|
||||
// mcuDelay(10);
|
||||
|
||||
return NO_ERROR;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user