Обновление платы на V2
This commit is contained in:
parent
3b80538fef
commit
074f077809
156
AdcTasks.c
156
AdcTasks.c
|
|
@ -29,6 +29,69 @@ void Adc_0_Init(tAdcTask *env,
|
||||||
osPriorityNormal);
|
osPriorityNormal);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void BTS5180_120(tAdcTask *env, char *desc, uint16_t adc_value) {
|
||||||
|
float kILIS = 550.0f;
|
||||||
|
|
||||||
|
float ERROR_THRESHOLD_V = 4.9f;
|
||||||
|
uint16_t ERROR_THRESHOLD_CODE = (uint16_t) (ERROR_THRESHOLD_V * 4095.0f / 5.0f);
|
||||||
|
|
||||||
|
if (adc_value >= ERROR_THRESHOLD_CODE) {
|
||||||
|
LoggerFormatInfo(LOGGER, LOG_SIGN, "%s: Error !!! (adc = %d)", desc, adc_value)
|
||||||
|
} else {
|
||||||
|
// Преобразование в напряжение
|
||||||
|
float U = (float) adc_value * 5.0f / 4095.0f;
|
||||||
|
float I = U / 1200; // Ток диагностики R = 1200
|
||||||
|
float Iout = I * kILIS; // Ток устройства
|
||||||
|
LoggerFormatInfo(LOGGER, LOG_SIGN,
|
||||||
|
"%s: U = %f I = %f Iout = %f",
|
||||||
|
desc, U, I, Iout)
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
void VN7008AJ(tAdcTask *env, char *desc, uint16_t adc_value) {
|
||||||
|
|
||||||
|
float RSENSE = 2490.0f; // Сопротивление датчика, Ом (На схеме)
|
||||||
|
float K_TYPICAL = 5890.0f; // Типичный коэффициент из даташита на микросхему
|
||||||
|
|
||||||
|
float ERROR_THRESHOLD_V = 4.9f;
|
||||||
|
uint16_t ERROR_THRESHOLD_CODE = (uint16_t) (ERROR_THRESHOLD_V * 4095.0f / 5.0f);
|
||||||
|
|
||||||
|
// 1. Проверка на ошибку
|
||||||
|
if (adc_value >= ERROR_THRESHOLD_CODE) {
|
||||||
|
LoggerFormatInfo(LOGGER, LOG_SIGN, "%s: Error !!! (adc = %d)", desc, adc_value)
|
||||||
|
} else {
|
||||||
|
|
||||||
|
// 2. Преобразование в напряжение
|
||||||
|
float vsense = (float) adc_value * 5.0f / 4095.0f;
|
||||||
|
|
||||||
|
// 3. Вычисление тока
|
||||||
|
float Isense = vsense / RSENSE;
|
||||||
|
float Iout = Isense * K_TYPICAL;
|
||||||
|
|
||||||
|
LoggerFormatInfo(LOGGER, LOG_SIGN,
|
||||||
|
"%s: U = %f I = %f Iout = %f",
|
||||||
|
desc, vsense, Isense, Iout)
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
void ANALOG_SENSOR(tAdcTask *env, char *desc, uint16_t adc_value) {
|
||||||
|
float ERROR_THRESHOLD_V = 4.9f;
|
||||||
|
uint16_t ERROR_THRESHOLD_CODE = (uint16_t) (ERROR_THRESHOLD_V * 4095.0f / 5.0f);
|
||||||
|
|
||||||
|
// 1. Проверка на ошибку
|
||||||
|
if (adc_value >= ERROR_THRESHOLD_CODE) {
|
||||||
|
LoggerFormatInfo(LOGGER, LOG_SIGN, "%s: Error !!! (adc = %d)", desc, adc_value)
|
||||||
|
} else {
|
||||||
|
// Преобразование в напряжение
|
||||||
|
float U = (float) adc_value * 5.0f / 4095.0f;
|
||||||
|
|
||||||
|
LoggerFormatInfo(LOGGER, LOG_SIGN, "%s: U = %f (adc = %d)", desc, U, adc_value)
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
static _Noreturn void Adc0_Thread(tAdcTask *env) {
|
static _Noreturn void Adc0_Thread(tAdcTask *env) {
|
||||||
|
|
||||||
|
|
@ -86,8 +149,8 @@ static _Noreturn void Adc0_Thread(tAdcTask *env) {
|
||||||
rtDW.ADC_Data_Model.Pressure_DIAG = pData[23];
|
rtDW.ADC_Data_Model.Pressure_DIAG = pData[23];
|
||||||
rtDW.ADC_Data_Model.Reserve_Sensor_Duct_Temp_2 = pData[28];
|
rtDW.ADC_Data_Model.Reserve_Sensor_Duct_Temp_2 = pData[28];
|
||||||
|
|
||||||
//rtDW.ADC_Data_Model.Sensor_PT_rHVAC_P = pData[29];
|
rtDW.ADC_Data_Model.Sensor_PT_rHVAC_P = pData[29];
|
||||||
//rtDW.ADC_Data_Model.Sensor_A_T_reserve = pData[30];
|
rtDW.ADC_Data_Model.Sensor_A_T_reserve = pData[30];
|
||||||
|
|
||||||
if (env->ADC0_BTS5120_2EKA_Channel == 0) {
|
if (env->ADC0_BTS5120_2EKA_Channel == 0) {
|
||||||
env->ADC0_BTS5120_2EKA_Channel = 1;
|
env->ADC0_BTS5120_2EKA_Channel = 1;
|
||||||
|
|
@ -122,6 +185,66 @@ static _Noreturn void Adc0_Thread(tAdcTask *env) {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
//////////////////////////////////////----DEBUG----////////////////////////////////////////////////////////////////////
|
||||||
|
BTS5180_120(env, "BTS5120_2EKA_ShutoffValvePowerTXV1",
|
||||||
|
rtDW.ADC_Data_Model.BTS5120_2EKA_ShutoffValvePowerTXV1);
|
||||||
|
BTS5180_120(env, "BTS5120_2EKA_ShutoffValvePowerTXV2",
|
||||||
|
rtDW.ADC_Data_Model.BTS5120_2EKA_ShutoffValvePowerTXV2);
|
||||||
|
|
||||||
|
BTS5180_120(env, "BTS5180_2EKA_ShutOFFValveFront", rtDW.ADC_Data_Model.BTS5180_2EKA_ShutOFFValveFront);
|
||||||
|
BTS5180_120(env, "BTS5180_2EKA_ShutOFFValveRear", rtDW.ADC_Data_Model.BTS5180_2EKA_ShutOFFValveRear);
|
||||||
|
|
||||||
|
BTS5180_120(env, "BTS5180_2EKA_TwoWayValve", rtDW.ADC_Data_Model.BTS5180_2EKA_TwoWayValve);
|
||||||
|
BTS5180_120(env, "BTS5180_2EKA_ReservePowerSupply",
|
||||||
|
rtDW.ADC_Data_Model.BTS5180_2EKA_ReservePowerSupply);
|
||||||
|
|
||||||
|
BTS5180_120(env, "BTS5180_2EKA_FrontIncarMotor", rtDW.ADC_Data_Model.BTS5180_2EKA_FrontIncarMotor);
|
||||||
|
BTS5180_120(env, "BTS5180_2EKA_RearIncarMotor", rtDW.ADC_Data_Model.BTS5180_2EKA_RearIncarMotor);
|
||||||
|
|
||||||
|
BTS5180_120(env, "BTS5180_2EKA_ChannelPTCPower1", rtDW.ADC_Data_Model.BTS5180_2EKA_ChannelPTCPower1);
|
||||||
|
BTS5180_120(env, "BTS5180_2EKA_ChannelPTCPower2", rtDW.ADC_Data_Model.BTS5180_2EKA_ChannelPTCPower2);
|
||||||
|
|
||||||
|
|
||||||
|
ANALOG_SENSOR(env, "Sensor_Ambient_Temp", rtDW.ADC_Data_Model.Sensor_Ambient_Temp);
|
||||||
|
ANALOG_SENSOR(env, "Sensor_AC_Pressure", rtDW.ADC_Data_Model.Sensor_AC_Pressure);
|
||||||
|
ANALOG_SENSOR(env, "Sensor_Incar_Temp_FL", rtDW.ADC_Data_Model.Sensor_Incar_Temp_FL);
|
||||||
|
ANALOG_SENSOR(env, "Sensor_Incar_Temp_RL", rtDW.ADC_Data_Model.Sensor_Incar_Temp_RL);
|
||||||
|
ANALOG_SENSOR(env, "Sensor_Rear_Evap_Temp", rtDW.ADC_Data_Model.Sensor_Rear_Evap_Temp);
|
||||||
|
ANALOG_SENSOR(env, "Sensor_Evap_Temp", rtDW.ADC_Data_Model.Sensor_Evap_Temp);
|
||||||
|
ANALOG_SENSOR(env, "Sensor_Rear_Duct1", rtDW.ADC_Data_Model.Sensor_Rear_Duct1);
|
||||||
|
ANALOG_SENSOR(env, "Sensor_Rear_Duct2", rtDW.ADC_Data_Model.Sensor_Rear_Duct2);
|
||||||
|
ANALOG_SENSOR(env, "Sensor_Front_Duct1", rtDW.ADC_Data_Model.Sensor_Front_Duct1);
|
||||||
|
ANALOG_SENSOR(env, "Sensor_Front_Duct2", rtDW.ADC_Data_Model.Sensor_Front_Duct2);
|
||||||
|
ANALOG_SENSOR(env, "Sensor_Front_Duct3", rtDW.ADC_Data_Model.Sensor_Front_Duct3);
|
||||||
|
ANALOG_SENSOR(env, "Sensor_Front_Duct4", rtDW.ADC_Data_Model.Sensor_Front_Duct4);
|
||||||
|
ANALOG_SENSOR(env, "Sensor_Rear_Duct3", rtDW.ADC_Data_Model.Sensor_Rear_Duct3);
|
||||||
|
ANALOG_SENSOR(env, "Sensor_Rear_Duct4", rtDW.ADC_Data_Model.Sensor_Rear_Duct4);
|
||||||
|
ANALOG_SENSOR(env, "Sensor_Incar_Temp_FR", rtDW.ADC_Data_Model.Sensor_Incar_Temp_FR);
|
||||||
|
ANALOG_SENSOR(env, "Sensor_Incar_Temp_RR", rtDW.ADC_Data_Model.Sensor_Incar_Temp_RR);
|
||||||
|
ANALOG_SENSOR(env, "Sensor_Rear_Duct5", rtDW.ADC_Data_Model.Sensor_Rear_Duct5);
|
||||||
|
ANALOG_SENSOR(env, "Sensor_Rear_Duct6", rtDW.ADC_Data_Model.Sensor_Rear_Duct6);
|
||||||
|
ANALOG_SENSOR(env, "Reserve_Sensor_Duct_Temp_1", rtDW.ADC_Data_Model.Reserve_Sensor_Duct_Temp_1);
|
||||||
|
ANALOG_SENSOR(env, "Sensor_Front_Duct5", rtDW.ADC_Data_Model.Sensor_Front_Duct5);
|
||||||
|
ANALOG_SENSOR(env, "Sensor_Front_Duct6", rtDW.ADC_Data_Model.Sensor_Front_Duct6);
|
||||||
|
|
||||||
|
|
||||||
|
ANALOG_SENSOR(env, "Pressure_DIAG", rtDW.ADC_Data_Model.Pressure_DIAG);
|
||||||
|
|
||||||
|
ANALOG_SENSOR(env, "Sensor_PT_rHVAC_P", rtDW.ADC_Data_Model.Sensor_PT_rHVAC_P);
|
||||||
|
ANALOG_SENSOR(env, "Sensor_A_T_reserve", rtDW.ADC_Data_Model.Sensor_A_T_reserve);
|
||||||
|
//////////////////////////////////////----DEBUG----////////////////////////////////////////////////////////////////////
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
osMutexRelease(env->modelTaskAccess);
|
osMutexRelease(env->modelTaskAccess);
|
||||||
} else {
|
} else {
|
||||||
|
|
@ -199,9 +322,36 @@ static _Noreturn void Adc1_Thread(tAdcTask *env) {
|
||||||
rtDW.ADC_Data_Model.Sensor_HVBchiller_T = pData[12];
|
rtDW.ADC_Data_Model.Sensor_HVBchiller_T = pData[12];
|
||||||
rtDW.ADC_Data_Model.Sensor_PT_P_reserve = pData[13];
|
rtDW.ADC_Data_Model.Sensor_PT_P_reserve = pData[13];
|
||||||
rtDW.ADC_Data_Model.Sensor_PT_T_reserve = pData[14];
|
rtDW.ADC_Data_Model.Sensor_PT_T_reserve = pData[14];
|
||||||
rtDW.ADC_Data_Model.Sensor_B_T_reserve = pData[15];
|
rtDW.ADC_Data_Model.Sensor_B_T_reserve = pData[15];
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
//////////////////////////////////////----DEBUG----////////////////////////////////////////////////////////////////////
|
||||||
|
ANALOG_SENSOR(env, "PT_F_HVAC_VCC_DIAG", rtDW.ADC_Data_Model.PT_F_HVAC_VCC_DIAG);
|
||||||
|
ANALOG_SENSOR(env, "PT_HVBchiller_VCC_DIAG", rtDW.ADC_Data_Model.PT_HVBchiller_VCC_DIAG);
|
||||||
|
ANALOG_SENSOR(env, "PT_R_HVAC_VCC_DIAG", rtDW.ADC_Data_Model.PT_R_HVAC_VCC_DIAG);
|
||||||
|
|
||||||
|
|
||||||
|
ANALOG_SENSOR(env, "Sensor_PT_fHVAC_P", rtDW.ADC_Data_Model.Sensor_PT_fHVAC_P);
|
||||||
|
ANALOG_SENSOR(env, "Sensor_PT_rHVAC_T", rtDW.ADC_Data_Model.Sensor_PT_rHVAC_T);
|
||||||
|
ANALOG_SENSOR(env, "Sensor_HVBchiller_P", rtDW.ADC_Data_Model.Sensor_HVBchiller_P);
|
||||||
|
ANALOG_SENSOR(env, "Sensor_HVBchiller_T", rtDW.ADC_Data_Model.Sensor_HVBchiller_T);
|
||||||
|
ANALOG_SENSOR(env, "Sensor_PT_P_reserve", rtDW.ADC_Data_Model.Sensor_PT_P_reserve);
|
||||||
|
ANALOG_SENSOR(env, "Sensor_PT_T_reserve", rtDW.ADC_Data_Model.Sensor_PT_T_reserve);
|
||||||
|
ANALOG_SENSOR(env, "Sensor_B_T_reserve", rtDW.ADC_Data_Model.Sensor_B_T_reserve);
|
||||||
|
|
||||||
|
|
||||||
|
ANALOG_SENSOR(env, "VN7008AJ_DIAG_FrontLINActuatorPowerDriverAB", rtDW.ADC_Data_Model.VN7008AJ_DIAG_FrontLINActuatorPowerDriverAB);
|
||||||
|
ANALOG_SENSOR(env, "VN7008AJ_DIAG_RearLINActuatorPowerDriverC", rtDW.ADC_Data_Model.VN7008AJ_DIAG_RearLINActuatorPowerDriverC);
|
||||||
|
|
||||||
|
VN7008AJ(env, "VN7008AJ_FrontLINActuatorPowerDriverAB",
|
||||||
|
rtDW.ADC_Data_Model.VN7008AJ_FrontLINActuatorPowerDriverAB);
|
||||||
|
VN7008AJ(env, "VN7008AJ_RearLINActuatorPowerDriverC",
|
||||||
|
rtDW.ADC_Data_Model.VN7008AJ_RearLINActuatorPowerDriverC);
|
||||||
|
//////////////////////////////////////----DEBUG----////////////////////////////////////////////////////////////////////
|
||||||
|
*/
|
||||||
|
|
||||||
osMutexRelease(env->modelTaskAccess);
|
osMutexRelease(env->modelTaskAccess);
|
||||||
} else {
|
} else {
|
||||||
LoggerErrorStatic(LOGGER, LOG_SIGN, "Access error Adc1_Thread");
|
LoggerErrorStatic(LOGGER, LOG_SIGN, "Access error Adc1_Thread");
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue