Mercurial > public > ostc4
changeset 938:df87dbfc9c21 Evo_2_23
Update GPIO:
Splitted the init function and moved GPS deactivation into the sleep loop (deep sleep)
author | Ideenmodellierer |
---|---|
date | Tue, 10 Dec 2024 21:00:55 +0100 |
parents | d461d9e89e3c |
children | f41974734268 |
files | Small_CPU/Inc/gpio.h Small_CPU/Src/baseCPU2.c Small_CPU/Src/gpio.c |
diffstat | 3 files changed, 15 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- a/Small_CPU/Inc/gpio.h Tue Dec 10 20:59:37 2024 +0100 +++ b/Small_CPU/Inc/gpio.h Tue Dec 10 21:00:55 2024 +0100 @@ -33,6 +33,7 @@ #define GPS_BCKP_CONTROL_PIN GPIO_PIN_14 /* PortB */ void GPIO_LEDs_VIBRATION_Init(void); +void GPIO_GNSS_Init(); void GPIO_Power_MainCPU_Init(void); void GPIO_Power_MainCPU_ON(void); void GPIO_Power_MainCPU_OFF(void);
--- a/Small_CPU/Src/baseCPU2.c Tue Dec 10 20:59:37 2024 +0100 +++ b/Small_CPU/Src/baseCPU2.c Tue Dec 10 21:00:55 2024 +0100 @@ -147,6 +147,7 @@ #include "uart_Internal.h" #include "uartProtocol_GNSS.h" #include "GNSS.h" +#include "configuration.h" // From Common/Inc: @@ -287,6 +288,7 @@ MX_RTC_init(); GPIO_LEDs_VIBRATION_Init(); + GPIO_GNSS_Init(); GPIO_new_DEBUG_Init(); // added 170322 hw initGlobals(); @@ -506,6 +508,7 @@ if((uartGnss_GetState() == UART_GNSS_INACTIVE) || (time_elapsed_ms(shutdownTick,HAL_GetTick()) > 5000)) { global.mode = MODE_SLEEP; + uartGnss_ReqPowerDown(0); /* release power down request */ } #else global.mode = MODE_SLEEP; @@ -894,7 +897,7 @@ GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Pin = GPIO_PIN_All; HAL_GPIO_Init( GPIOH, &GPIO_InitStruct); -#ifdef DEBUGMODE +#ifdef ENABLE_SLEEP_DEBUG GPIO_InitStruct.Pin = GPIO_PIN_All ^ ( GPIO_PIN_3 | GPIO_PIN_8 | GPIO_PIN_9); /* debug */ #endif @@ -907,7 +910,7 @@ HAL_GPIO_Init( GPIOC, &GPIO_InitStruct); GPIO_InitStruct.Pin = GPIO_PIN_All ^ ( GPIO_PIN_0 | VIBRATION_CONTROL_PIN | LED_CONTROL_PIN_RED | LED_CONTROL_PIN_GREEN); -#ifdef DEBUGMODE +#ifdef ENABLE_SLEEP_DEBUG GPIO_InitStruct.Pin = GPIO_PIN_All ^ ( GPIO_PIN_0 | GPIO_PIN_13 | GPIO_PIN_14); /* wake up button & debug */ #endif HAL_GPIO_Init( GPIOA, &GPIO_InitStruct); @@ -921,12 +924,14 @@ GPIO_LED_RED_OFF(); GPIO_VIBRATION_OFF(); GPIO_GPS_BCKP_ON(); // mH : costs 100µA in sleep - beware -/* GPIO_GPS_OFF(); will be done in transition slleep => deep sleep */ +/* GPIO_GPS_OFF(); will be done in transition sleep => deep sleep */ MX_USART6_UART_DeInit(); #endif -#ifndef DEBUGMODE +#ifndef ENABLE_SLEEP_DEBUG +/* __HAL_RCC_GPIOB_CLK_DISABLE(); +*/ #endif __HAL_RCC_GPIOH_CLK_DISABLE();
--- a/Small_CPU/Src/gpio.c Tue Dec 10 20:59:37 2024 +0100 +++ b/Small_CPU/Src/gpio.c Tue Dec 10 21:00:55 2024 +0100 @@ -56,6 +56,11 @@ GPIO_InitStructure.Speed = GPIO_SPEED_LOW; HAL_GPIO_Init( GPIOA, &GPIO_InitStructure); HAL_GPIO_WritePin( GPIOA, VIBRATION_CONTROL_PIN, GPIO_PIN_RESET); +} + +void GPIO_GNSS_Init() +{ + GPIO_InitTypeDef GPIO_InitStructure; __GPIOB_CLK_ENABLE(); GPIO_InitStructure.Pin = GPS_POWER_CONTROL_PIN;