commit fe883bcc37c57489ba516cbb6bebf6c17d298900 Author: cfif Date: Fri Jan 24 13:22:32 2025 +0300 Перенос на новую организацию GONEC diff --git a/Gpios.c b/Gpios.c new file mode 100644 index 0000000..c7d3575 --- /dev/null +++ b/Gpios.c @@ -0,0 +1,100 @@ +// +// Created by xemon on 29.08.22. +// +#include "Gpios.h" +#include +#include "SystemDelayInterface.h" + +tGpios GPIOS; + +static void vPowerManagementInitComInt485(tRs485DirectionPins *env) { + env->transmit = InitGpioPin(GPIOD, GPIO_PINS_4, GPIO_MODE_OUTPUT, GPIO_PIN_NOREVERSE); + env->receive = InitGpioPin(GPIOD, GPIO_PINS_4, GPIO_MODE_OUTPUT, GPIO_PIN_REVERSE); +} + +static void Gpios_InitFlash(tFlashPins *env) { + env->spiChipSelect1 = InitGpioPin(GPIOD, GPIO_PINS_15, GPIO_MODE_OUTPUT, GPIO_PIN_REVERSE); + env->spiChipSelect2 = InitGpioPin(GPIOD, GPIO_PINS_14, GPIO_MODE_OUTPUT, GPIO_PIN_REVERSE); + env->spiHold = InitGpioPin(GPIOG, GPIO_PINS_6, GPIO_MODE_OUTPUT, GPIO_PIN_REVERSE); + env->spiWp = InitGpioPin(GPIOG, GPIO_PINS_4, GPIO_MODE_OUTPUT, GPIO_PIN_REVERSE); + +} + +static void Gpios_InitSIM800F(tSIM800FPower *env) { + env->pwrkey = InitGpioPin(GPIOF, GPIO_PINS_10, GPIO_MODE_OUTPUT, GPIO_PIN_NOREVERSE); + env->reset = InitGpioPin(GPIOA, GPIO_PINS_4, GPIO_MODE_OUTPUT, GPIO_PIN_NOREVERSE); + env->pwr_en = InitGpioPin(GPIOG, GPIO_PINS_0, GPIO_MODE_OUTPUT, GPIO_PIN_NOREVERSE); + env->dtr_sleep = InitGpioPin(GPIOA, GPIO_PINS_5, GPIO_MODE_OUTPUT, GPIO_PIN_NOREVERSE); +} + +static void Gpios_InitPRO04(tPRO04Power *env) { + env->onOff = InitGpioPin(GPIOF, GPIO_PINS_1, GPIO_MODE_OUTPUT, GPIO_PIN_NOREVERSE); + env->reset = InitGpioPin(GPIOF, GPIO_PINS_0, GPIO_MODE_OUTPUT, GPIO_PIN_NOREVERSE); + env->pwr_en = InitGpioPin(GPIOC, GPIO_PINS_13, GPIO_MODE_OUTPUT, GPIO_PIN_NOREVERSE); +} + +static void Gpios_Power(tPower *env) { + +// env->gpio1 = InitGpioPin(GPIOE, GPIO_PINS_4, GPIO_MODE_INPUT, GPIO_PIN_NOREVERSE); +// env->gpio4 = InitGpioPin(GPIOE, GPIO_PINS_2, GPIO_MODE_INPUT, GPIO_PIN_NOREVERSE); +/* + gpio_init_type GPIOInit; + gpio_default_para_init(&GPIOInit); + + GPIOInit.gpio_mode = GPIO_MODE_INPUT; + GPIOInit.gpio_pull = GPIO_PULL_NONE; + GPIOInit.gpio_pins = GPIO_PINS_4; + gpio_init(GPIOE, &GPIOInit); + + GPIOInit.gpio_mode = GPIO_MODE_INPUT; + GPIOInit.gpio_pull = GPIO_PULL_NONE; + GPIOInit.gpio_pins = GPIO_PINS_2; + gpio_init(GPIOE, &GPIOInit); +*/ + + + + env->gonec_pwr_amp = InitGpioPinPull(GPIOE, GPIO_PINS_6, GPIO_MODE_INPUT, GPIO_PIN_NOREVERSE, GPIO_PULL_DOWN); + env->gonec_boot = InitGpioPin(GPIOE, GPIO_PINS_5, GPIO_MODE_OUTPUT, GPIO_PIN_NOREVERSE); + env->gonec_reset = InitGpioPinPull(GPIOE, GPIO_PINS_3, GPIO_MODE_OUTPUT, GPIO_PIN_NOREVERSE, GPIO_PULL_UP); + + + +// env->gonec_reset = InitGpioPin(GPIOE, GPIO_PINS_3, GPIO_MODE_OUTPUT, GPIO_PIN_NOREVERSE); +// env->gonec_reset = InitGpioPinOpenDrain(GPIOE, GPIO_PINS_3, GPIO_MODE_INPUT, GPIO_PIN_NOREVERSE); + + env->tx_pwr_5 = InitGpioPin(GPIOB, GPIO_PINS_6, GPIO_MODE_OUTPUT, GPIO_PIN_NOREVERSE); + env->tx_pwr_en = InitGpioPin(GPIOB, GPIO_PINS_9, GPIO_MODE_OUTPUT, GPIO_PIN_NOREVERSE); + env->tx_pwr_good = InitGpioPin(GPIOB, GPIO_PINS_5, GPIO_MODE_INPUT, GPIO_PIN_NOREVERSE); + + env->discretOut1_pd3 = InitGpioPin(GPIOD, GPIO_PINS_3, GPIO_MODE_OUTPUT, GPIO_PIN_NOREVERSE); + env->discretOut1_pd0 = InitGpioPin(GPIOD, GPIO_PINS_2, GPIO_MODE_OUTPUT, GPIO_PIN_NOREVERSE); + +// env->discretIn1_pg2 = InitGpioPinPull(GPIOG, GPIO_PINS_2, GPIO_MODE_INPUT, GPIO_PIN_NOREVERSE, GPIO_PULL_UP); + env->discretIn1_pg2 = InitGpioPin(GPIOG, GPIO_PINS_2, GPIO_MODE_INPUT, GPIO_PIN_NOREVERSE); + + + env->discretIn1_pg3 = InitGpioPin(GPIOG, GPIO_PINS_3, GPIO_MODE_INPUT, GPIO_PIN_NOREVERSE); + +} + + +void Gpios_Init() { + crm_periph_clock_enable(CRM_GPIOA_PERIPH_CLOCK, TRUE); + crm_periph_clock_enable(CRM_GPIOB_PERIPH_CLOCK, TRUE); + crm_periph_clock_enable(CRM_GPIOC_PERIPH_CLOCK, TRUE); + crm_periph_clock_enable(CRM_GPIOD_PERIPH_CLOCK, TRUE); + crm_periph_clock_enable(CRM_GPIOE_PERIPH_CLOCK, TRUE); + crm_periph_clock_enable(CRM_GPIOF_PERIPH_CLOCK, TRUE); + crm_periph_clock_enable(CRM_GPIOH_PERIPH_CLOCK, TRUE); + crm_periph_clock_enable(CRM_GPIOG_PERIPH_CLOCK, TRUE); + + tGpios *env = &GPIOS; + + vPowerManagementInitComInt485(&env->comIntDir); + Gpios_InitFlash(&env->flashSPI); + Gpios_InitSIM800F(&env->SIM800FPower); + Gpios_InitPRO04(&env->PRO04Power); + Gpios_Power(&env->Power); + +} \ No newline at end of file diff --git a/Gpios.h b/Gpios.h new file mode 100644 index 0000000..a629d5d --- /dev/null +++ b/Gpios.h @@ -0,0 +1,26 @@ +// +// Created by xemon on 29.08.22. +// + +#ifndef UVEOS_DEMO_GONEC_ARTERY_Gpios_H +#define UVEOS_DEMO_GONEC_ARTERY_Gpios_H + +#include +#include +#include "GpioPin.h" +#include "SpiPorts.h" + + +typedef struct { + tRs485DirectionPins comIntDir; + tFlashPins flashSPI; + tSIM800FPower SIM800FPower; + tPRO04Power PRO04Power; + tPower Power; +} tGpios; + +extern tGpios GPIOS; + +void Gpios_Init(); + +#endif //UVEOS_DEMO_GONEC_ARTERY_Gpios_H diff --git a/modular.json b/modular.json new file mode 100644 index 0000000..dddcee5 --- /dev/null +++ b/modular.json @@ -0,0 +1,27 @@ +{ + "dep": [ + { + "type": "git", + "provider": "GONEC", + "repo": "GpioPin_ARTERY_AT32" + }, + { + "type": "git", + "provider": "GONEC", + "repo": "SystemDelay_CMSIS_RTOS" + }, + { + "type": "git", + "provider": "GONEC", + "repo": "GONEC_ARTERY_SerialPorts" + } + ], + "cmake": { + "inc_dirs": [ + "./" + ], + "srcs": [ + "Gpios.c" + ] + } +} \ No newline at end of file