HVAC_M7_GpioPins/Gpios.h

126 lines
6.1 KiB
C
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

//
// 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 {
tGpioPin EN_ReservePower; // Резервный источник разрешение (1 - ВКЛ)
tGpioPin ST_ReservePower; // Резервный источник состояния состояние (1 - ошибок нет)
} tBTS4175SGAXUMA1_ReservePowerOutput;
typedef struct {
tGpioPin LIN_ActPower_AB; // Основной сигнал включения/выключения силового канала (выхода OUTPUT) (1 - ВКЛ)
tGpioPin Fault_RST_AB;
tGpioPin EN_CurrentSensing_AB; // Разрешение диагностики
} tVN7008AJ_FrontLINActuatorPowerDriverAB;
typedef struct {
tGpioPin LIN_ActPower_C; // Основной сигнал включения/выключения силового канала (выхода OUTPUT) (1 - ВКЛ)
tGpioPin Fault_RST_C;
tGpioPin EN_CurrentSensing_C; // Разрешение диагностики
} tVN7008AJ_RearLINActuatorPowerDriverC;
typedef struct {
tGpioPin ShutOffTXV1_EN; // Канал 0 (1 - ВКЛ)
tGpioPin ShutOffTXV_EN_Diag; // Разрешение диагностики (1 - ВКЛ)
tGpioPin ShutSelTXV_SEL_Diag; // Вывод диагностики (0 - Канал 0; 1 - Канал 1)
tGpioPin ShutOffTXV2_EN; // Канал 1 (1 - ВКЛ)
} tBTS5120_2EKA_ShutoffValvePowerTXV;
typedef struct {
tGpioPin EN_BATTChiller; // Холодильник разрешение (1 - ВКЛ)
tGpioPin ST_BATTChiller; // Холодильник состояния (1 - ошибок нет)
} tBTS4175SGAXUMA1_ShutOFFValveBatteryChiller;
typedef struct {
tTPS7B6850QPWPRQ1 TPS7B6850QPWPRQ1;
tGpioPin PBATT_CK_EN; // Контроль напряжения борт-сети (0 - ВКЛ)
tGpioPin SW5V_EN; // Включение 5V (0 - ВКЛ)
tBTS5180_2EKA_FrontAndRearIncarMotor BTS5180_2EKA_FrontRearIncarMotor;
tBTS5180_2EKA_TwoWayValveAndReservePowerSupply BTS5180_2EKA_TwoWayValveAndReservePowerSupply;
tBTS5180_2EKA_2xChannelPTCPowerControl BTS5180_2EKA_2xChannelPTCPower;
tBTS5180_2EKA_ShutOFFValveFrontRear BTS5180_2EKA_ShutOFFValveFrontRear;
tBTS4175SGAXUMA1_ReservePowerOutput BTS4175SGAXUMA1_ReservePowerOutput;
tBTS4175SGAXUMA1_ShutOFFValveBatteryChiller BTS4175SGAXUMA1_ShutOFFValveBatteryChiller;
tVN7008AJ_FrontLINActuatorPowerDriverAB VN7008AJ_FrontLINActuatorPowerDriverAB;
tVN7008AJ_RearLINActuatorPowerDriverC VN7008AJ_RearLINActuatorPowerDriverC;
tBTS5120_2EKA_ShutoffValvePowerTXV BTS5120_2EKA_ShutoffValvePowerTXV;
} tPower;
typedef struct {
tLed led;
tPower power;
} tGpios;
extern tGpios GPIOS;
void Gpios_Init();
#endif //HVAC_M7_GPIOS_H