UveosOnNation_VEGA_GpioPins/Gpios.c

120 lines
6.0 KiB
C

//
// 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);
}