Правки по DTC

This commit is contained in:
cfif 2026-08-26 16:27:09 +03:00
parent 75f09a30e2
commit 98bda970fd
8 changed files with 173 additions and 14 deletions

View File

@ -12,8 +12,6 @@
#define LOG_SIGN "CAN_RECEIVED" #define LOG_SIGN "CAN_RECEIVED"
#define LOGGER env->logger #define LOGGER env->logger
char GET_HVAC_VIN[17] = {'0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0'};
void CanSpamReceiver_Init(tCanSpamReceiver *env, void CanSpamReceiver_Init(tCanSpamReceiver *env,
tSerialPortFrameIO *ioCanFrame, tSerialPortFrameIO *ioCanFrame,
tLoggerInterface *logger) { tLoggerInterface *logger) {
@ -23,8 +21,8 @@ void CanSpamReceiver_Init(tCanSpamReceiver *env,
env->access = osMutexNew(NULL); env->access = osMutexNew(NULL);
env->ccu_candb_rx_LOCAL_HVAC_VIN = osMessageQueueNew(1, sizeof(GET_HVAC_VIN), NULL); env->ccu_candb_rx_LOCAL_HVAC_VIN = osMessageQueueNew(1, 17, NULL);
env->ccu_candb_rx_LOCAL_HVAC_UDS_VIN = osMessageQueueNew(1, sizeof(GET_HVAC_VIN), NULL); env->ccu_candb_rx_LOCAL_HVAC_UDS_VIN = osMessageQueueNew(1, 17, NULL);
env->ccu_candb_rx_TM_CP = osMessageQueueNew(1, sizeof(ccu_candb_rx.TM_CP), NULL); env->ccu_candb_rx_TM_CP = osMessageQueueNew(1, sizeof(ccu_candb_rx.TM_CP), NULL);
env->ccu_candb_rx_FIU_CCU1 = osMessageQueueNew(1, sizeof(ccu_candb_rx.FIU_CCU1), NULL); env->ccu_candb_rx_FIU_CCU1 = osMessageQueueNew(1, sizeof(ccu_candb_rx.FIU_CCU1), NULL);
env->ccu_candb_rx_FIU_CCU2 = osMessageQueueNew(1, sizeof(ccu_candb_rx.FIU_CCU2), NULL); env->ccu_candb_rx_FIU_CCU2 = osMessageQueueNew(1, sizeof(ccu_candb_rx.FIU_CCU2), NULL);
@ -213,7 +211,7 @@ bool get_is_NoNull_CanSpam_BCM_PowerTrain_Receiver(tCanSpamReceiver *env) {
return false; return false;
} }
void get_CanSpamReceiver(tCanSpamReceiver *env) { void get_CanSpamReceiver(tCanSpamReceiver *env, char *VIN) {
osStatus_t status = osOK; osStatus_t status = osOK;
@ -272,7 +270,7 @@ void get_CanSpamReceiver(tCanSpamReceiver *env) {
countQueue_ccu_candb_rx = osMessageQueueGetSpace(env->ccu_candb_rx_LOCAL_HVAC_VIN); countQueue_ccu_candb_rx = osMessageQueueGetSpace(env->ccu_candb_rx_LOCAL_HVAC_VIN);
if (countQueue_ccu_candb_rx == 0) { if (countQueue_ccu_candb_rx == 0) {
status = osMessageQueueGet(env->ccu_candb_rx_LOCAL_HVAC_VIN, GET_HVAC_VIN, 0, 0U); status = osMessageQueueGet(env->ccu_candb_rx_LOCAL_HVAC_VIN, VIN, 0, 0U);
} }
/* /*

View File

@ -53,7 +53,7 @@ void CanSpamReceiver_Init(tCanSpamReceiver *env, tSerialPortFrameIO *ioCanFrame,
void CanSpamReceiver_StartThread(tCanSpamReceiver *env); void CanSpamReceiver_StartThread(tCanSpamReceiver *env);
void get_CanSpamReceiver(tCanSpamReceiver *env); void get_CanSpamReceiver(tCanSpamReceiver *env, char *VIN);
bool get_CanSpamReceiverUDS(tCanSpamReceiver *env, char *VIN, func_update_func update_func, void *update_func_env, bool get_CanSpamReceiverUDS(tCanSpamReceiver *env, char *VIN, func_update_func update_func, void *update_func_env,
uint32_t timeout, uint32_t count); uint32_t timeout, uint32_t count);

View File

@ -84,6 +84,8 @@ void ModelTask_Init(
env->diagnostic = diagnostic; env->diagnostic = diagnostic;
memset(env->GET_HVAC_VIN, 0x20, sizeof(env->GET_HVAC_VIN));
env->access = osMutexNew(NULL); env->access = osMutexNew(NULL);
env->logger = logger; env->logger = logger;
// InitThreadAtrStatic(&env->thread.attr, "ModelTask", env->thread.controlBlock, env->thread.stack, osPriorityNormal); // InitThreadAtrStatic(&env->thread.attr, "ModelTask", env->thread.controlBlock, env->thread.stack, osPriorityNormal);
@ -648,7 +650,7 @@ static _Noreturn void ModelTask_Thread(tModelTask *env) {
//начало--------------------------------------------------ВХОД МОДЕЛИ CAN----------------------------------------------- //начало--------------------------------------------------ВХОД МОДЕЛИ CAN-----------------------------------------------
get_CanSpamReceiver(env->canSpamReceiver); get_CanSpamReceiver(env->canSpamReceiver, env->GET_HVAC_VIN);
// Если был захват в UDS (подмена) // Если был захват в UDS (подмена)
if (model_Status_Set_For_Model_output.EMS == 1) { if (model_Status_Set_For_Model_output.EMS == 1) {
@ -999,7 +1001,8 @@ static _Noreturn void ModelTask_Thread(tModelTask *env) {
//конец--------------------------------------------------ВЫХОД МОДЕЛИ ДЛЯ UDS------------------------------------------- //конец--------------------------------------------------ВЫХОД МОДЕЛИ ДЛЯ UDS-------------------------------------------
//начало--------------------------------------------------ВЫХОД МОДЕЛИ ДЛЯ DTC------------------------------------------ //начало--------------------------------------------------ВЫХОД МОДЕЛИ ДЛЯ DTC------------------------------------------
set_Dtc_state(env->diagnostic); memcpy(env->dtc_state_error, rtY.dtc_state_error_model, sizeof(env->dtc_state_error));
set_Dtc_state(env->diagnostic, env->dtc_state_error, env->GET_HVAC_VIN);
//конец--------------------------------------------------ВЫХОД МОДЕЛИ ДЛЯ DTC------------------------------------------- //конец--------------------------------------------------ВЫХОД МОДЕЛИ ДЛЯ DTC-------------------------------------------
env->isRunning = true; env->isRunning = true;

View File

@ -39,6 +39,9 @@ typedef struct {
osMutexId_t access; osMutexId_t access;
char GET_HVAC_VIN[17];
uint8_t dtc_state_error[127];
tLoggerInterface *logger; tLoggerInterface *logger;

View File

@ -6,6 +6,7 @@
#include "StatusData.h" #include "StatusData.h"
#include "StatusError.h" #include "StatusError.h"
#include "HVAC_model.h" #include "HVAC_model.h"
#include "SystemDelayInterface.h"
#define LOG_SIGN "DIAGNOSTIC" #define LOG_SIGN "DIAGNOSTIC"
#define LOGGER env->logger #define LOGGER env->logger
@ -16,6 +17,8 @@ void Diagnostic_Init(tDiagnostic *env, tLoggerInterface *logger) {
env->access = osMutexNew(NULL); env->access = osMutexNew(NULL);
env->timeout_VIN = SystemGetMs() + 45000;
// for (uint8_t i = 0; i < COUNT_DTC_CODE_ERROR; ++i) { // for (uint8_t i = 0; i < COUNT_DTC_CODE_ERROR; ++i) {
// Тест DTC не был выполнен в текущем цикле работы // Тест DTC не был выполнен в текущем цикле работы
@ -147,9 +150,29 @@ void set_NoBitsDTC(tDiagnostic *env, bool noBitsDTC) {
} }
} }
void set_Dtc_state(tDiagnostic *env) { void set_Dtc_state(tDiagnostic *env, uint8_t *dtc_state_error_model, char *VIN) {
if (osMutexAcquire(env->access, 5000) == osOK) { if (osMutexAcquire(env->access, 5000) == osOK) {
memcpy(&dtc_state_error, &rtY.dtc_state_error_model, sizeof(dtc_state_error));
bool errorVIN = false;
int result = memcmp(VIN, statusData.ecu.Vehicle_Identification, 17);
if (result != 0) {
errorVIN = true;
} else {
result = memcmp(VIN, "00000000000000000", 17);
if (result == 0) {
errorVIN = true;
} else {
errorVIN = false;
}
}
if ((errorVIN) && (SystemGetMs() > env->timeout_VIN)) {
dtc_state_error_model[DTC_VIN_INVALID_CONFIG] = 1;
}
memcpy(dtc_state_error, dtc_state_error_model, sizeof(dtc_state_error));
osMutexRelease(env->access); osMutexRelease(env->access);
} else { } else {
LoggerErrorStatic(LOGGER, LOG_SIGN, "Access error set_Dtc_state_error"); LoggerErrorStatic(LOGGER, LOG_SIGN, "Access error set_Dtc_state_error");

View File

@ -20,12 +20,14 @@ typedef struct {
bool isNoBitsDTC; bool isNoBitsDTC;
uint32_t timeout_VIN;
} tDiagnostic; } tDiagnostic;
void Diagnostic_Init(tDiagnostic *env, tLoggerInterface *logger); void Diagnostic_Init(tDiagnostic *env, tLoggerInterface *logger);
void set_NoBitsDTC(tDiagnostic *env, bool noBitsDTC); void set_NoBitsDTC(tDiagnostic *env, bool noBitsDTC);
void set_Dtc_state(tDiagnostic *env); void set_Dtc_state(tDiagnostic *env, uint8_t *dtc_state_error_model, char *VIN);
uint32_t diagnostic_ClearDiagnosticInformation_14(tDiagnostic *env); uint32_t diagnostic_ClearDiagnosticInformation_14(tDiagnostic *env);
uint32_t diagnostic_UDS_ReadDTCInformation_19_count(tDiagnostic *env, tDiagnosticDTC *diagnosticDTC); uint32_t diagnostic_UDS_ReadDTCInformation_19_count(tDiagnostic *env, tDiagnosticDTC *diagnosticDTC);

View File

@ -19,7 +19,6 @@
//uint8_t dtc_state_confirmed_error[COUNT_DTC_CODE_ERROR]; //uint8_t dtc_state_confirmed_error[COUNT_DTC_CODE_ERROR];
uint8_t dtc_state_error[COUNT_DTC_CODE_ERROR]; uint8_t dtc_state_error[COUNT_DTC_CODE_ERROR];
uint8_t dtc_state_FIX_error[COUNT_DTC_CODE_ERROR]; uint8_t dtc_state_FIX_error[COUNT_DTC_CODE_ERROR];
uint8_t dtc_state_FIX_error[COUNT_DTC_CODE_ERROR];
// Структура DTC кодов // Структура DTC кодов
const tDTC_Entry dtc_codes[COUNT_DTC_CODE_ERROR] = { const tDTC_Entry dtc_codes[COUNT_DTC_CODE_ERROR] = {
@ -150,4 +149,5 @@ const tDTC_Entry dtc_codes[COUNT_DTC_CODE_ERROR] = {
{0xE2, 0x60, 0x87, "DRS for front zone (LIN4) - Missing Message"}, {0xE2, 0x60, 0x87, "DRS for front zone (LIN4) - Missing Message"},
{0xE2, 0x61, 0x87, "DRS for rear zone (LIN4) - Missing Message"}, {0xE2, 0x61, 0x87, "DRS for rear zone (LIN4) - Missing Message"},
{0xF0, 0x02, 0x56, "Vehicle Identification Number - invalid / incompatible configuration"} {0xF0, 0x02, 0x56, "Vehicle Identification Number - invalid / incompatible configuration"}
}; };

View File

@ -42,6 +42,136 @@ extern const tDTC_Entry dtc_codes[COUNT_DTC_CODE_ERROR];
extern uint8_t dtc_state_error[COUNT_DTC_CODE_ERROR]; extern uint8_t dtc_state_error[COUNT_DTC_CODE_ERROR];
extern uint8_t dtc_state_FIX_error[COUNT_DTC_CODE_ERROR]; extern uint8_t dtc_state_FIX_error[COUNT_DTC_CODE_ERROR];
enum eDTC_Error_Code {
DTC_CCU_POWER_SUPPLY_VOLTAGE_OUT_OF_RANGE = 0, // 0xA0101C
DTC_IGNITION_VOLTAGE_OUT_OF_RANGE = 1, // 0xA0111C
DTC_REAR_HVAC_AROMA_CONFIG_INVALID = 2, // 0xA02056
DTC_INCAR_TEMP_FRONT_LEFT_SHORT_BAT_OPEN = 3, // 0xA03015
DTC_INCAR_TEMP_FRONT_LEFT_SHORT_GND = 4, // 0xA03011
DTC_INCAR_TEMP_FRONT_RIGHT_SHORT_BAT_OPEN = 5, // 0xA03115
DTC_INCAR_TEMP_FRONT_RIGHT_SHORT_GND = 6, // 0xA03111
DTC_INCAR_TEMP_REAR_LEFT_SHORT_BAT_OPEN = 7, // 0xA05415
DTC_INCAR_TEMP_REAR_LEFT_SHORT_GND = 8, // 0xA05411
DTC_INCAR_TEMP_REAR_RIGHT_SHORT_BAT_OPEN = 9, // 0xA05515
DTC_INCAR_TEMP_REAR_RIGHT_SHORT_GND = 10, // 0xA05511
DTC_AMBIENT_TEMP_SHORT_BAT_OPEN = 11, // 0xA03215
DTC_AMBIENT_TEMP_SHORT_GND = 12, // 0xA03211
DTC_FRONT_EVAP_TEMP_SHORT_BAT_OPEN = 13, // 0xA03315
DTC_FRONT_EVAP_TEMP_SHORT_GND = 14, // 0xA03311
DTC_REAR_EVAP_TEMP_SHORT_BAT_OPEN = 15, // 0xA03415
DTC_REAR_EVAP_TEMP_SHORT_GND = 16, // 0xA03411
DTC_DUCT_VENT_FL_SHORT_BAT_OPEN = 17, // 0xA03515
DTC_DUCT_VENT_FL_SHORT_GND = 18, // 0xA03511
DTC_DUCT_VENT_FR_SHORT_BAT_OPEN = 19, // 0xA03615
DTC_DUCT_VENT_FR_SHORT_GND = 20, // 0xA03611
DTC_DUCT_FOOT_FL_SHORT_BAT_OPEN = 21, // 0xA03715
DTC_DUCT_FOOT_FL_SHORT_GND = 22, // 0xA03711
DTC_DUCT_FOOT_FR_SHORT_BAT_OPEN = 23, // 0xA03815
DTC_DUCT_FOOT_FR_SHORT_GND = 24, // 0xA03811
DTC_DUCT_VENT_SIDE_FL_SHORT_BAT_OPEN = 25, // 0xA04115
DTC_DUCT_VENT_SIDE_FL_SHORT_GND = 26, // 0xA04111
DTC_DUCT_VENT_SIDE_FR_SHORT_BAT_OPEN = 27, // 0xA04215
DTC_DUCT_VENT_SIDE_FR_SHORT_GND = 28, // 0xA04211
DTC_DUCT_VENT_RL_SHORT_BAT_OPEN = 29, // 0xA03915
DTC_DUCT_VENT_RL_SHORT_GND = 30, // 0xA03911
DTC_DUCT_VENT_RR_SHORT_BAT_OPEN = 31, // 0xA04015
DTC_DUCT_VENT_RR_SHORT_GND = 32, // 0xA04011
DTC_DUCT_FOOT_RL_SHORT_BAT_OPEN = 33, // 0xA04515
DTC_DUCT_FOOT_RL_SHORT_GND = 34, // 0xA04511
DTC_DUCT_FOOT_RR_SHORT_BAT_OPEN = 35, // 0xA04615
DTC_DUCT_FOOT_RR_SHORT_GND = 36, // 0xA04611
DTC_UV_LAMP_OPEN_SHORT_BAT = 37, // 0xA04713
DTC_UV_LAMP_SHORT_GND = 38, // 0xA04711
DTC_AROMATIZATION_OPEN = 39, // 0xA04813
DTC_AROMATIZATION_SHORT_GND = 40, // 0xA04811
DTC_AROMATIZATION_MALFUNCTION = 41, // 0xA04896
DTC_IONIZER_OPEN = 42, // 0xA04913
DTC_IONIZER_SHORT_GND = 43, // 0xA04911
DTC_IONIZER_MALFUNCTION = 44, // 0xA04996
DTC_DRS_FRONT_ZONE_MALFUNCTION = 45, // 0xA05096
DTC_DRS_REAR_ZONE_MALFUNCTION = 46, // 0xA05196
DTC_AIR_QUALITY_SENSOR_OPEN = 47, // 0xA04315
DTC_AIR_QUALITY_SENSOR_SHORT_GND = 48, // 0xA04311
DTC_AIR_QUALITY_SENSOR_MALFUNCTION = 49, // 0xA04396
DTC_AC_PRESSURE_SHORT_BAT = 50, // 0xA04412
DTC_AC_PRESSURE_SHORT_GND_OPEN = 51, // 0xA04414
DTC_AC_PRESSURE_SIGNAL_BELOW_RANGE = 52, // 0xA04484
DTC_FRONT_BLOWER_TXV_PERFORMANCE = 53, // 0xA05692
DTC_REAR_BLOWER_TXV_PERFORMANCE = 54, // 0xA05892
DTC_DEFROSTER_GATE_POSITION_NOT_REACHED = 55, // 0xA07004
DTC_RECIRC_GATE_POSITION_NOT_REACHED = 56, // 0xA07104
DTC_RECIRC_OSA_GATE_POSITION_NOT_REACHED = 57, // 0xA09304
DTC_TEMP_UP_FL_GATE_POSITION_NOT_REACHED = 58, // 0xA07204
DTC_VENT_CFL_GATE_POSITION_NOT_REACHED = 59, // 0xA07304
DTC_VENT_SFL_GATE_POSITION_NOT_REACHED = 60, // 0xA07404
DTC_TEMP_DN_FL_GATE_POSITION_NOT_REACHED = 61, // 0xA07504
DTC_FOOT_FL_GATE_POSITION_NOT_REACHED = 62, // 0xA07604
DTC_REAR_FOOT_FL_GATE_POSITION_NOT_REACHED = 63, // 0xA07704
DTC_TEMP_UP_FR_GATE_POSITION_NOT_REACHED = 64, // 0xA07804
DTC_VENT_CFR_GATE_POSITION_NOT_REACHED = 65, // 0xA07904
DTC_VENT_SFR_GATE_POSITION_NOT_REACHED = 66, // 0xA08004
DTC_TEMP_DN_FR_GATE_POSITION_NOT_REACHED = 67, // 0xA08104
DTC_FOOT_FR_GATE_POSITION_NOT_REACHED = 68, // 0xA08204
DTC_REAR_FOOT_FR_GATE_POSITION_NOT_REACHED = 69, // 0xA08304
DTC_TEMP_RR_GATE_POSITION_NOT_REACHED = 70, // 0xA08404
DTC_TEMP_RL_GATE_POSITION_NOT_REACHED = 71, // 0xA08504
DTC_VENT_SRL_GATE_POSITION_NOT_REACHED = 72, // 0xA08604
DTC_FOOT_RL_GATE_POSITION_NOT_REACHED = 73, // 0xA08704
DTC_VENT_CRL_GATE_POSITION_NOT_REACHED = 74, // 0xA08804
DTC_VENT_CRR_GATE_POSITION_NOT_REACHED = 75, // 0xA08904
DTC_FOOT_RR_GATE_POSITION_NOT_REACHED = 76, // 0xA09004
DTC_VENT_SRR_GATE_POSITION_NOT_REACHED = 77, // 0xA09104
DTC_SEALING_VALVE_GATE_POSITION_NOT_REACHED = 78, // 0xA09204
DTC_BODY_CAN_BUS_OFF = 79, // 0xC02888
DTC_HVAC_CAN_BUS_OFF = 80, // 0xC03788
DTC_LOST_COMM_ECM_PCM = 81, // 0xC10087
DTC_LOST_COMM_ESP = 82, // 0xC12287
DTC_LOST_COMM_BCM = 83, // 0xC14187
DTC_LOST_COMM_AC_COMPRESSOR = 84, // 0xC16B87
DTC_LOST_COMM_DOOR_MODULE_A_DMFL = 85, // 0xC19987
DTC_LOST_COMM_DOOR_MODULE_B_DMFR = 86, // 0xC20087
DTC_LOST_COMM_SEAT_MODULE_A_SMFL = 87, // 0xC20887
DTC_LOST_COMM_SEAT_MODULE_B_SMFR = 88, // 0xC20987
DTC_LOST_COMM_SEAT_MODULE_C_SMRL = 89, // 0xC21087
DTC_LOST_COMM_SEAT_MODULE_D_SMRR = 90, // 0xC21187
DTC_LOST_COMM_TRUNK_CCPF_CCPR = 91, // 0xE2A187
DTC_LOST_COMM_CGW = 92, // 0xE2A287
DTC_LOST_COMM_DEFROSTER_GATE = 93, // 0xE23087
DTC_LOST_COMM_RECIRC_GATE = 94, // 0xE23187
DTC_LOST_COMM_RECIRC_OSA_GATE = 95, // 0xE26287
DTC_LOST_COMM_TEMP_UP_FL_GATE = 96, // 0xE23287
DTC_LOST_COMM_VENT_CFL_GATE = 97, // 0xE23387
DTC_LOST_COMM_FOOT_FR_GATE_LIN1 = 98, // 0xE23487
DTC_LOST_COMM_TEMP_DN_FL_GATE = 99, // 0xE23587
DTC_LOST_COMM_FOOT_FL_GATE = 100, // 0xE23687
DTC_LOST_COMM_REAR_FOOT_FL_GATE = 101, // 0xE23787
DTC_LOST_COMM_TEMP_UP_FR_GATE = 102, // 0xE23887
DTC_LOST_COMM_VENT_CFR_GATE = 103, // 0xE23987
DTC_LOST_COMM_VENT_SFR_GATE = 104, // 0xE24087
DTC_LOST_COMM_TEMP_DN_FR_GATE = 105, // 0xE24187
DTC_LOST_COMM_FOOT_FR_GATE = 106, // 0xE24287
DTC_LOST_COMM_REAR_FOOT_FR_GATE = 107, // 0xE24387
DTC_LOST_COMM_TEMP_RR_GATE = 108, // 0xE24487
DTC_LOST_COMM_TEMP_RL_GATE = 109, // 0xE24587
DTC_LOST_COMM_VENT_SRL_GATE = 110, // 0xE24687
DTC_LOST_COMM_TEMP_RL_GATE2 = 111, // 0xE24787
DTC_LOST_COMM_VENT_CRL_GATE = 112, // 0xE24887
DTC_LOST_COMM_VENT_CRR_GATE = 113, // 0xE24987
DTC_LOST_COMM_FOOT_RR_GATE = 114, // 0xE25087
DTC_LOST_COMM_VENT_SRR_GATE = 115, // 0xE25187
DTC_LOST_COMM_SEALING_VALVE_GATE = 116, // 0xE25287
DTC_LOST_COMM_AIR_QUALITY_SENSOR = 117, // 0xE25387
DTC_LOST_COMM_IONIZER = 118, // 0xE25487
DTC_LOST_COMM_AROMATIZATION = 119, // 0xE25587
DTC_LOST_COMM_FRONT_TXV = 120, // 0xE25687
DTC_LOST_COMM_REAR_TXV = 121, // 0xE25787
DTC_LOST_COMM_HV_BATTERY_CHILLER_TXV = 122, // 0xE25887
DTC_LOST_COMM_HEAT_PUMP_CHILLER_TXV = 123, // 0xE25987
DTC_LOST_COMM_DRS_FRONT = 124, // 0xE26087
DTC_LOST_COMM_DRS_REAR = 125, // 0xE26187
DTC_VIN_INVALID_CONFIG = 126 // 0xF00256
};
//# ErrorCode HexCode FTB SAE J2012 Symptom Description DTC description HW Comment Pre-Condtion Maturation Failure Threshold Maturation Time De-Maturation Failure Threshold De-Maturation Time Degrade mode / Fail-safe action Malfunction Indicator Remark Comment SW progress //# ErrorCode HexCode FTB SAE J2012 Symptom Description DTC description HW Comment Pre-Condtion Maturation Failure Threshold Maturation Time De-Maturation Failure Threshold De-Maturation Time Degrade mode / Fail-safe action Malfunction Indicator Remark Comment SW progress
//1 B20101C A0101C 0x1C Voltage Out of Range CCU Power supply (BATTERY) - circuit voltage out of range Possible T30d_state = "1" and T15_state = "1" 6.0v > VIN or VIN > 18.0V t > 3sec 6.0v < VIN and VIN < 18.0V t > 1 sec Only DTC Set * If voltage of battery is under 7.0v/7.5v or over 17.5v/18.0v, 1) Actuator Stop 2) Blower Stop 3) Seat Module Stop Request None Condition * If voltage of battery is under 7.0v/7.5v or over 17.5v/18.0v, --> * If voltage of battery is under 7.5v/8.0v or over 17.0v/17.5v OK : DTC / Fail-Safe //1 B20101C A0101C 0x1C Voltage Out of Range CCU Power supply (BATTERY) - circuit voltage out of range Possible T30d_state = "1" and T15_state = "1" 6.0v > VIN or VIN > 18.0V t > 3sec 6.0v < VIN and VIN < 18.0V t > 1 sec Only DTC Set * If voltage of battery is under 7.0v/7.5v or over 17.5v/18.0v, 1) Actuator Stop 2) Blower Stop 3) Seat Module Stop Request None Condition * If voltage of battery is under 7.0v/7.5v or over 17.5v/18.0v, --> * If voltage of battery is under 7.5v/8.0v or over 17.0v/17.5v OK : DTC / Fail-Safe
//2 B20111C A0111C 0x1C Voltage Out of Range Ignition(T30d) - circuit voltage out of range Possible T30d_state = "1" and T15_state = "1" 6.0v > VIN or VIN > 18.0V t > 3sec 6.0v < VIN and VIN < 18.0V t > 1 sec Only DTC Set None OK : DTC //2 B20111C A0111C 0x1C Voltage Out of Range Ignition(T30d) - circuit voltage out of range Possible T30d_state = "1" and T15_state = "1" 6.0v > VIN or VIN > 18.0V t > 3sec 6.0v < VIN and VIN < 18.0V t > 1 sec Only DTC Set None OK : DTC