89 lines
4.1 KiB
C
89 lines
4.1 KiB
C
//
|
||
// 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
|