This commit is contained in:
cfif 2024-12-04 13:10:48 +03:00
commit 78a0cd6f3a
3 changed files with 202 additions and 0 deletions

120
Gpios.c Normal file
View File

@ -0,0 +1,120 @@
//
// Created by xemon on 29.08.22.
//
#include "Gpios.h"
#include <SpiPorts.h>
#include "SystemDelayInterface.h"
tGpios GPIOS;
static void Gpios_InitAudio(tAudioPower *env) {
env->shutdownB = GpioPin_Init(GPIOE, GPIO_PIN_8, GPIO_Mode_Out_PP, GPIO_Speed_50MHz, GPIO_PIN_NOREVERSE);
env->shutdownD = GpioPin_Init(GPIOE, GPIO_PIN_9, GPIO_Mode_Out_PP, GPIO_Speed_50MHz, GPIO_PIN_NOREVERSE);
env->gain = GpioPin_Init(GPIOE, GPIO_PIN_10, GPIO_Mode_Out_PP, GPIO_Speed_50MHz, GPIO_PIN_NOREVERSE);
env->mic = GpioPin_Init(GPIOE, GPIO_PIN_11, GPIO_Mode_Out_PP, GPIO_Speed_50MHz, GPIO_PIN_NOREVERSE);
}
#ifdef USE_GSM_AND_GNSS_TELIT
static void Gpios_InitTelit(tTelitPower *env) {
//env->charge.ChargeC = GpioPin_Init(GPIOD, GPIO_PIN_1, GPIO_Mode_Out_PP, GPIO_Speed_50MHz, GPIO_PIN_REVERSE);
env->charge.power = GpioPin_Init(GPIOC, GPIO_PIN_6, GPIO_Mode_Out_PP, GPIO_Speed_50MHz, GPIO_PIN_NOREVERSE);
env->charge.onOff = GpioPin_Init(GPIOA, GPIO_PIN_10, GPIO_Mode_Out_PP, GPIO_Speed_50MHz, GPIO_PIN_NOREVERSE);
env->ring = GpioPin_Init(GPIOE, GPIO_PIN_12, GPIO_Mode_IN_FLOATING, GPIO_Speed_50MHz, GPIO_PIN_REVERSE);
// env->discharge.chargeCapacitors = InitGpioPin(GPIO?, GPIO_PIN_?, GPIO_Mode_Out_PP, GPIO_Speed_50MHz, GPIO_PIN_NOREVERSE);
// env->discharge.chargeCapacitorsDNI = InitGpioPin(GPIO?, GPIO_PIN_?, GPIO_Mode_Out_PP, GPIO_Speed_50MHz, GPIO_PIN_NOREVERSE);
}
#endif
static void Gpios_InitBIP(tBipPins *env) {
#if USE_POLAR_DEPENDENT_BIP
env->uiLeds.red.positiv = GpioPin_Init(GPIOE, GPIO_PIN_13, GPIO_Mode_Out_PP, GPIO_Speed_50MHz, GPIO_PIN_NOREVERSE); //-
env->uiLeds.red.negativ = GpioPin_Init(GPIOE, GPIO_PIN_2, GPIO_Mode_Out_PP, GPIO_Speed_50MHz, GPIO_PIN_NOREVERSE); //+
env->uiLeds.green.positiv = GpioPin_Init(GPIOE, GPIO_PIN_14, GPIO_Mode_Out_PP, GPIO_Speed_50MHz, GPIO_PIN_NOREVERSE);
env->uiLeds.green.negativ = GpioPin_Init(GPIOE, GPIO_PIN_3, GPIO_Mode_Out_PP, GPIO_Speed_50MHz, GPIO_PIN_NOREVERSE);
env->powerBip.ignitionOn = GpioPin_Init(GPIOC, GPIO_PIN_7, GPIO_Mode_Out_PP, GPIO_Speed_50MHz, GPIO_PIN_NOREVERSE);
// env->powerBip.bacLightOn = GpioPin_Init(GPIOE, GPIO_PIN_4, GPIO_Mode_Out_PP, GPIO_Speed_50MHz, GPIO_PIN_NOREVERSE);
#else
env->led.green = GpioPin_Init(GPIOE, GPIO_PIN_3, GPIO_Mode_Out_PP, GPIO_Speed_50MHz, GPIO_PIN_NOREVERSE);
env->led.red = GpioPin_Init(GPIOE, GPIO_PIN_2, GPIO_Mode_Out_PP, GPIO_Speed_50MHz, GPIO_PIN_NOREVERSE);
#endif
env->powerMicLed = GpioPin_Init(GPIOA, GPIO_PIN_9, GPIO_Mode_Out_PP, GPIO_Speed_50MHz, GPIO_PIN_NOREVERSE);
env->buttons.additional = GpioPin_Init(
GPIOE, GPIO_PIN_6, GPIO_Mode_IN_FLOATING, GPIO_Speed_50MHz, GPIO_PIN_NOREVERSE
);
env->buttons.emergency = GpioPin_Init(
GPIOE, GPIO_PIN_5, GPIO_Mode_IN_FLOATING, GPIO_Speed_50MHz, GPIO_PIN_NOREVERSE
);
}
static void Gpios_InitComInt485(tRs485DirectionPins *env) {
env->transmit = GpioPin_Init(GPIOC, GPIO_PIN_12, GPIO_Mode_Out_PP, GPIO_Speed_50MHz, GPIO_PIN_NOREVERSE);
env->receive = GpioPin_Init(GPIOE, GPIO_PIN_0, GPIO_Mode_Out_PP, GPIO_Speed_50MHz, GPIO_PIN_REVERSE);
}
static void Gpios_InitOnBoardLed(tOnBoardLed *env) {
env->green = GpioPin_Init(GPIOD, GPIO_PIN_13, GPIO_Mode_Out_PP, GPIO_Speed_50MHz, GPIO_PIN_NOREVERSE);
env->blue = GpioPin_Init(GPIOD, GPIO_PIN_14, GPIO_Mode_Out_PP, GPIO_Speed_50MHz, GPIO_PIN_NOREVERSE);
env->red = GpioPin_Init(GPIOD, GPIO_PIN_15, GPIO_Mode_Out_PP, GPIO_Speed_50MHz, GPIO_PIN_NOREVERSE);
}
static void Gpios_InitAccelPower(tAccelPins *env) {
env->spiChipSelect = GpioPin_Init(GPIOB, GPIO_PIN_12, GPIO_Mode_Out_PP, GPIO_Speed_50MHz, GPIO_PIN_REVERSE);
env->int1 = GpioPin_Init(GPIOB, GPIO_PIN_10, GPIO_Mode_IN_FLOATING, GPIO_Speed_50MHz, GPIO_PIN_NOREVERSE);
}
static void Gpios_InitFlashPower(tFlashPins *env) {
env->spiChipSelect = GpioPin_Init(GPIOD, GPIO_PIN_0, GPIO_Mode_Out_PP, GPIO_Speed_50MHz, GPIO_PIN_REVERSE);
}
static void Gpios_InitMainPower(tMainPower *env) {
GPIO_ConfigPinRemap(GPIO_RMP_SW_JTAG_SW_ENABLE, ENABLE);
///======== var_01
// env->garage = GpioPin_Init(GPIOB, GPIO_PIN_3, GPIO_Mode_Out_PP, GPIO_Speed_50MHz, GPIO_PIN_NOREVERSE);
// env->ecall = GpioPin_Init(GPIOB, GPIO_PIN_4, GPIO_Mode_Out_PP, GPIO_Speed_50MHz, GPIO_PIN_NOREVERSE);
///======== var_02
env->garage = GpioPin_Init(GPIOA, GPIO_PIN_3, GPIO_Mode_Out_PP, GPIO_Speed_50MHz, GPIO_PIN_NOREVERSE);
env->ecall = GpioPin_Init(GPIOA, GPIO_PIN_4, GPIO_Mode_Out_PP, GPIO_Speed_50MHz, GPIO_PIN_NOREVERSE);
env->muteP = GpioPin_Init(GPIOB, GPIO_PIN_5, GPIO_Mode_Out_PP, GPIO_Speed_50MHz, GPIO_PIN_NOREVERSE);
env->muteN = GpioPin_Init(GPIOB, GPIO_PIN_2, GPIO_Mode_Out_PP, GPIO_Speed_50MHz, GPIO_PIN_NOREVERSE);
env->ignition = GpioPin_Init(GPIOE, GPIO_PIN_1, GPIO_Mode_IN_FLOATING, GPIO_Speed_50MHz, GPIO_PIN_NOREVERSE);
env->standby = GpioPin_Init(GPIOD, GPIO_PIN_12, GPIO_Mode_Out_PP, GPIO_Speed_50MHz, GPIO_PIN_NOREVERSE);
env->inAnt = GpioPin_Init(GPIOC, GPIO_PIN_5, GPIO_Mode_Out_OD, GPIO_Speed_50MHz, GPIO_PIN_NOREVERSE);
}
static void Gpios_InitBattery(tBatteryPower *env) {
env->enable = GpioPin_Init(GPIOC, GPIO_PIN_8, GPIO_Mode_Out_PP, GPIO_Speed_50MHz, GPIO_PIN_NOREVERSE);
env->charge = GpioPin_Init(GPIOB, GPIO_PIN_0, GPIO_Mode_Out_PP, GPIO_Speed_50MHz, GPIO_PIN_NOREVERSE);
}
static void Gpios_InitPower(tPowerPins *env) {
env->comInt485 = GpioPin_Init(GPIOE, GPIO_PIN_7, GPIO_Mode_Out_PP, GPIO_Speed_50MHz, GPIO_PIN_NOREVERSE);
env->bip = GpioPin_Init(GPIOA, GPIO_PIN_9, GPIO_Mode_Out_PP, GPIO_Speed_50MHz, GPIO_PIN_NOREVERSE);
env->usb = GpioPin_Init(GPIOA, GPIO_PIN_15, GPIO_Mode_IN_FLOATING, GPIO_Speed_50MHz, GPIO_PIN_NOREVERSE);
Gpios_InitTelit(&env->telit);
Gpios_InitAudio(&env->audio);
Gpios_InitMainPower(&env->main);
Gpios_InitBattery(&env->battery);
}
void Gpios_Init() {
tGpios *env = &GPIOS;
Gpios_InitFlashPower(&env->flash);
Gpios_InitAccelPower(&env->accel);
Gpios_InitOnBoardLed(&env->onBoardLed);
Gpios_InitComInt485(&env->comIntDir);
Gpios_InitBIP(&env->bip);
Gpios_InitPower(&env->power);
}

40
Gpios.h Normal file
View File

@ -0,0 +1,40 @@
//
// Created by xemon on 29.08.22.
//
#ifndef UVEOS_DEMO_ON_NIIET_MCU_Gpios_H
#define UVEOS_DEMO_ON_NIIET_MCU_Gpios_H
#include <SerialPorts.h>
#include <PowerManagement.h>
#include "GpioPin.h"
#include "UserInput.h"
#include "UserIndication.h"
#include "SpiPorts.h"
typedef struct {
tGpioPin powerMicLed;
#if USE_POLAR_DEPENDENT_BIP
tIndicationBip uiLeds;
tPowerBip powerBip;
#else
tBipLed led;
#endif
tUserInputPins buttons;
} tBipPins;
typedef struct {
tAccelPins accel;
tFlashPins flash;
tOnBoardLed onBoardLed;
tBipPins bip;
tRs485DirectionPins comIntDir;
tPowerPins power;
} tGpios;
extern tGpios GPIOS;
void Gpios_Init();
#endif //UVEOS_DEMO_ON_NIIET_MCU_Gpios_H

42
modular.json Normal file
View File

@ -0,0 +1,42 @@
{
"dep": [
{
"type": "git",
"provider": "NAVIGATOR_UVEOS_NATION_TELIT",
"repo": "GpioPin_NATION_N32G45X"
},
{
"type": "git",
"provider": "NAVIGATOR_UVEOS_NATION_TELIT",
"repo": "SystemDelay_CMSIS_RTOS"
},
{
"type": "git",
"provider": "NAVIGATOR_UVEOS_NATION_TELIT",
"repo": "UveosOnNation_VEGA_SerialPorts"
},
{
"type": "git",
"provider": "NAVIGATOR_UVEOS_NATION_TELIT",
"repo": "UveosOnNation_VEGA_UserIndication"
},
{
"type": "git",
"provider": "NAVIGATOR_UVEOS_NATION_TELIT",
"repo": "UveosOnNation_VEGA_UserInput"
},
{
"type": "git",
"provider": "NAVIGATOR_UVEOS_NATION_TELIT",
"repo": "UveosOnNation_VEGA_SpiPorts"
}
],
"cmake": {
"inc_dirs": [
"./"
],
"srcs": [
"Gpios.c"
]
}
}