Update to 1.0.6. Init ready

This commit is contained in:
raduet
2026-03-26 17:46:42 +03:00
parent 68903fe860
commit f8daf17c6f
6 changed files with 17567 additions and 17542 deletions
+1 -1
View File
@@ -43,7 +43,7 @@ extern "C" {
/* USER CODE BEGIN EC */ /* USER CODE BEGIN EC */
#define FW_VERSION_MAJOR 0x01 #define FW_VERSION_MAJOR 0x01
#define FW_VERSION_MINOR 0x00 #define FW_VERSION_MINOR 0x00
#define FW_VERSION_PATCH 0x05 #define FW_VERSION_PATCH 0x06
/* USER CODE END EC */ /* USER CODE END EC */
/* Exported macro ------------------------------------------------------------*/ /* Exported macro ------------------------------------------------------------*/
+71 -64
View File
@@ -9,6 +9,7 @@
#include "psu_control.h" #include "psu_control.h"
extern UART_HandleTypeDef huart3; extern UART_HandleTypeDef huart3;
extern uint8_t config_initialized;
static void send_state(void); static void send_state(void);
static void CCS_SendResetReason(void); static void CCS_SendResetReason(void);
@@ -111,74 +112,80 @@ void CCS_SerialLoop(void) {
(void)replug_watchdog_tick; (void)replug_watchdog_tick;
(void)replug_watchdog1_tick; (void)replug_watchdog1_tick;
switch(CCS_ConnectorState){ if (!config_initialized) {
case CCS_DISABLED: // Keep connector in Unknown until host sends valid SET_CONFIG.
RELAY_Write(RELAY_CP, 0); RELAY_Write(RELAY_CP, 1);
CONN_SetState(Disabled); CONN_SetState(Unknown);
if (CONN.chargingError == CONN_NO_ERROR){ } else {
CCS_ConnectorState = CCS_UNPLUGGED; switch(CCS_ConnectorState){
} case CCS_DISABLED:
break; RELAY_Write(RELAY_CP, 0);
case CCS_UNPLUGGED: CONN_SetState(Disabled);
RELAY_Write(RELAY_CP, 1); if (CONN.chargingError == CONN_NO_ERROR){
CONN_SetState(Unplugged);
if ((cp_state_buffer == EV_STATE_B_CONN_PREP) || (cp_state_buffer == EV_STATE_C_CONN_ACTIVE)){
CCS_ConnectorState = CCS_AUTH_REQUIRED;
}
if (CONN.chargingError != CONN_NO_ERROR){
log_printf(LOG_ERR, "Charging error %d, state -> disabled\n", CONN.chargingError);
CCS_ConnectorState = CCS_DISABLED;
}
break;
case CCS_AUTH_REQUIRED:
RELAY_Write(RELAY_CP, 1);
CONN_SetState(AuthRequired);
if(CONN.connControl == CMD_START){
log_printf(LOG_INFO, "Charging permitted, start charging\n");
CCS_ConnectorState = CCS_CONNECTED;
}
if (cp_state_buffer == EV_STATE_A_IDLE){
log_printf(LOG_INFO, "Car unplugged\n");
CCS_ConnectorState = CCS_UNPLUGGED;
}
break;
case CCS_CONNECTED:
RELAY_Write(RELAY_CP, 1);
if(CCS_EvseState < Preparing) {
CONN_SetState(Preparing);
} else {
CONN_SetState(CCS_EvseState);
}
if (cp_state_buffer == EV_STATE_A_IDLE){
log_printf(LOG_INFO, "Car unplugged\n");
CCS_ConnectorState = CCS_UNPLUGGED;
}
if(REPLUG > 0){
log_printf(LOG_INFO, "Replugging...\n");
CCS_ConnectorState = CCS_REPLUGGING;
}
break;
case CCS_REPLUGGING:
RELAY_Write(RELAY_CP, 0);
CONN_SetState(Replugging);
if((HAL_GetTick() - replug_tick) > 1000){
replug_tick = HAL_GetTick();
if(REPLUG > 0){
if (REPLUG != 0xFF) REPLUG--;
} else {
log_printf(LOG_INFO, "Replugging finished, but car unplugged\n");
CCS_ConnectorState = CCS_UNPLUGGED; CCS_ConnectorState = CCS_UNPLUGGED;
} }
} break;
case CCS_UNPLUGGED:
if(REPLUG == 0){ RELAY_Write(RELAY_CP, 1);
if(cp_state_buffer == EV_STATE_B_CONN_PREP){ CONN_SetState(Unplugged);
log_printf(LOG_INFO, "Replugging finished, car plugged, state -> auth required\n"); if ((cp_state_buffer == EV_STATE_B_CONN_PREP) || (cp_state_buffer == EV_STATE_C_CONN_ACTIVE)){
CCS_ConnectorState = CCS_AUTH_REQUIRED; CCS_ConnectorState = CCS_AUTH_REQUIRED;
} }
} if (CONN.chargingError != CONN_NO_ERROR){
break; log_printf(LOG_ERR, "Charging error %d, state -> disabled\n", CONN.chargingError);
CCS_ConnectorState = CCS_DISABLED;
}
break;
case CCS_AUTH_REQUIRED:
RELAY_Write(RELAY_CP, 1);
CONN_SetState(AuthRequired);
if(CONN.connControl == CMD_START){
log_printf(LOG_INFO, "Charging permitted, start charging\n");
CCS_ConnectorState = CCS_CONNECTED;
}
if (cp_state_buffer == EV_STATE_A_IDLE){
log_printf(LOG_INFO, "Car unplugged\n");
CCS_ConnectorState = CCS_UNPLUGGED;
}
break;
case CCS_CONNECTED:
RELAY_Write(RELAY_CP, 1);
if(CCS_EvseState < Preparing) {
CONN_SetState(Preparing);
} else {
CONN_SetState(CCS_EvseState);
}
if (cp_state_buffer == EV_STATE_A_IDLE){
log_printf(LOG_INFO, "Car unplugged\n");
CCS_ConnectorState = CCS_UNPLUGGED;
}
if(REPLUG > 0){
log_printf(LOG_INFO, "Replugging...\n");
CCS_ConnectorState = CCS_REPLUGGING;
}
break;
case CCS_REPLUGGING:
RELAY_Write(RELAY_CP, 0);
CONN_SetState(Replugging);
if((HAL_GetTick() - replug_tick) > 1000){
replug_tick = HAL_GetTick();
if(REPLUG > 0){
if (REPLUG != 0xFF) REPLUG--;
} else {
log_printf(LOG_INFO, "Replugging finished, but car unplugged\n");
CCS_ConnectorState = CCS_UNPLUGGED;
}
}
if(REPLUG == 0){
if(cp_state_buffer == EV_STATE_B_CONN_PREP){
log_printf(LOG_INFO, "Replugging finished, car plugged, state -> auth required\n");
CCS_ConnectorState = CCS_AUTH_REQUIRED;
}
}
break;
}
} }
// If Everest timeout happened, keep safe-state and limit log frequency. // If Everest timeout happened, keep safe-state and limit log frequency.
Binary file not shown.
+15111 -15095
View File
File diff suppressed because it is too large Load Diff
+2370 -2368
View File
File diff suppressed because it is too large Load Diff
+14 -14
View File
@@ -1,15 +1,15 @@
../Drivers/CMSIS/Include/core_cm3.h:1762:34:__NVIC_SystemReset 1 ../Drivers/CMSIS/Include/core_cm3.h:1762:34:__NVIC_SystemReset 1
../Core/Src/serial.c:54:6:CCS_RxEventCallback 4 ../Core/Src/serial.c:55:6:CCS_RxEventCallback 4
../Core/Src/serial.c:64:6:CCS_SerialLoop 44 ../Core/Src/serial.c:65:6:CCS_SerialLoop 45
../Core/Src/serial.c:224:6:CCS_Init 1 ../Core/Src/serial.c:231:6:CCS_Init 1
../Core/Src/serial.c:236:17:crc16_ibm 4 ../Core/Src/serial.c:243:17:crc16_ibm 4
../Core/Src/serial.c:251:17:CCS_BuildPacket 4 ../Core/Src/serial.c:258:17:CCS_BuildPacket 4
../Core/Src/serial.c:267:13:CCS_SendPacket 2 ../Core/Src/serial.c:274:13:CCS_SendPacket 2
../Core/Src/serial.c:275:13:CCS_SendResetReason 1 ../Core/Src/serial.c:282:13:CCS_SendResetReason 1
../Core/Src/serial.c:279:6:CCS_SendEmergencyStop 1 ../Core/Src/serial.c:286:6:CCS_SendEmergencyStop 1
../Core/Src/serial.c:283:6:CCS_SendStart 1 ../Core/Src/serial.c:290:6:CCS_SendStart 1
../Core/Src/serial.c:287:13:CCS_CalculateEnergy 2 ../Core/Src/serial.c:294:13:CCS_CalculateEnergy 2
../Core/Src/serial.c:302:13:send_state 2 ../Core/Src/serial.c:309:13:send_state 2
../Core/Src/serial.c:329:17:expected_payload_len 11 ../Core/Src/serial.c:336:17:expected_payload_len 11
../Core/Src/serial.c:345:13:apply_command 13 ../Core/Src/serial.c:352:13:apply_command 13
../Core/Src/serial.c:414:16:process_received_packet 6 ../Core/Src/serial.c:421:16:process_received_packet 6