// // Created by cfif on 05.05.23. // #ifndef HVAC_M7_GPIOS_H #define HVAC_M7_GPIOS_H #include "GpioPin.h" //#include "PowerManagement.h" typedef struct { tGpioPin LED1; tGpioPin LED2; tGpioPin LED3; } tLed; typedef struct { tGpioPin WD_EN; // Разрешение работы WD (0 - ВКЛ) tGpioPin WDO; // При возникновении ошибки сторожевого таймера этот вывод подтягивается к низкому уровню напряжения (OpenDrain HIGH) tGpioPin WD; // Watchdog service-signal (подавать меандр не менее 100 мкс) } tTPS7B6850QPWPRQ1; // Допустим, вы выбрали R_резистора = 1.2 кОм (1200 Ом). Микроконтроллер измерил U_на_резисторе = 1.1 В (U_на_резисторе = ADC_reading * (Vref / 4095)). // Сначала находим ток диагностики: I_IS = U / R = 1.1 В / 1200 Ом ≈ 0.000917 А (0.917 мА). // Затем находим ток нагрузки: I_мотора = I_IS * kILIS = 0.000917 А * 550 ≈ 0.504 А. // kILIS = 550 (константа микросхемы из документации) // Результат: ток через мотор составляет примерно 0.5 А. // IL(NOM)1 - номинальный ток нагрузки при активном одном канале (2А) // IL(NOM)2 - номинальный ток нагрузки при активных двух каналах (1.5А) // IL(SC) — ток нагрузки в режиме короткого замыкания (ограниченный схемой защиты) // 5 В Минимум 8 А (типично ~10 А) // 28 В Типично 4 А (IL28(SC)) // IL(OL) (5-30 mA) — пороговый ток для обнаружения обрыва нагрузки (Open Load), когда канал включен. Если IL < IL(OL), система диагностирует обрыв typedef struct { tGpioPin Incar_Motor_Front_EN; // Канал 0 (1 - ВКЛ) tGpioPin Incar_EN_Diag; // Разрешение диагностики (1 - ВКЛ) tGpioPin Incar_SEL_Diag; // Вывод диагностики (0 - Канал 0; 1 - Канал 1) tGpioPin Incar_Motor_Rear_EN; // Канал 1 (1 - ВКЛ) } tBTS5180_2EKA_FrontAndRearIncarMotor; typedef struct { tGpioPin TwoWayValve_EN; // Канал 0 (1 - ВКЛ) tGpioPin TwoWayValve_EN_Diag; // Разрешение диагностики (1 - ВКЛ) tGpioPin TwoWayValve_SEL_Diag; // Вывод диагностики (0 - Канал 0; 1 - Канал 1) tGpioPin ReservePower_EN; // Канал 1 (1 - ВКЛ) } tBTS5180_2EKA_TwoWayValveAndReservePowerSupply; typedef struct { tGpioPin PtcRelayDriver1_EN; // Канал 0 (1 - ВКЛ) tGpioPin PtcRelayDriver_EN_Diag; // Разрешение диагностики (1 - ВКЛ) tGpioPin PtcRelayDriver_SEL_Diag; // Вывод диагностики (0 - Канал 0; 1 - Канал 1) tGpioPin PtcRelayDriver2_EN; // Канал 1 (1 - ВКЛ) } tBTS5180_2EKA_2xChannelPTCPowerControl; typedef struct { tGpioPin ShutOffFront_EN; // Канал 0 (1 - ВКЛ) tGpioPin ShutOff_EN_Diag; // Разрешение диагностики (1 - ВКЛ) tGpioPin ShutSel_SEL_Diag; // Вывод диагностики (0 - Канал 0; 1 - Канал 1) tGpioPin ShutOffRear_EN; // Канал 1 (1 - ВКЛ) } tBTS5180_2EKA_ShutOFFValveFrontRear; typedef struct { tTPS7B6850QPWPRQ1 TPS7B6850QPWPRQ1; tBTS5180_2EKA_FrontAndRearIncarMotor BTS5180_2EKA_FrontRearIncarMotor; tBTS5180_2EKA_TwoWayValveAndReservePowerSupply BTS5180_2EKA_TwoWayValveAndReservePowerSupply; tBTS5180_2EKA_2xChannelPTCPowerControl BTS5180_2EKA_2xChannelPTCPower; tBTS5180_2EKA_ShutOFFValveFrontRear BTS5180_2EKA_ShutOFFValveFrontRear; tGpioPin PBATT_CK_EN; // Контроль напряжения борт-сети (0 - ВКЛ) tGpioPin SW5V_EN; // Включение 5V (0 - ВКЛ) } tPower; typedef struct { tLed led; tPower power; } tGpios; extern tGpios GPIOS; void Gpios_Init(); #endif //HVAC_M7_GPIOS_H