--- VBAT detection solved ----

This commit is contained in:
Yunhorn 2024-07-08 14:50:30 +08:00
parent 0ac5eaec3b
commit 0d05a65822
8 changed files with 25280 additions and 25197 deletions

View File

@ -90,6 +90,12 @@ int16_t SYS_GetTemperatureLevel(void);
*/ */
uint16_t SYS_GetBatteryLevel(void); uint16_t SYS_GetBatteryLevel(void);
/**
* @brief YUNHORN-STS Get the current VBAT--INPUT level
* @return value battery level in linear scale
*/
uint16_t STS_GetBatteryLevel(void);
/* USER CODE BEGIN EFP */ /* USER CODE BEGIN EFP */
/* USER CODE END EFP */ /* USER CODE END EFP */

View File

@ -173,6 +173,41 @@ uint16_t SYS_GetBatteryLevel(void)
/* USER CODE END SYS_GetBatteryLevel_2 */ /* USER CODE END SYS_GetBatteryLevel_2 */
} }
uint16_t STS_GetBatteryLevel(void)
{
/* USER CODE BEGIN SYS_GetBatteryLevel_1 */
/* USER CODE END SYS_GetBatteryLevel_1 */
uint16_t batteryLevelmV = 0;
uint32_t measuredLevel = 0;
measuredLevel = ADC_ReadChannels(LL_ADC_CHANNEL_11); //VBAT_DETECT PA15 ADC VIN11
if (measuredLevel == 0)
{
batteryLevelmV = 0;
}
else
{
if ((uint32_t)*VREFINT_CAL_ADDR != (uint32_t)0xFFFFU)
{
/* Device with Reference voltage calibrated in production:
use device optimized parameters */
batteryLevelmV = __LL_ADC_CALC_VREFANALOG_VOLTAGE(measuredLevel,
ADC_RESOLUTION_12B);
}
else
{
/* Device with Reference voltage not calibrated in production:
use generic parameters */
batteryLevelmV = (VREFINT_CAL_VREF * 1510) / measuredLevel;
}
}
return batteryLevelmV;
/* USER CODE BEGIN SYS_GetBatteryLevel_2 */
/* USER CODE END SYS_GetBatteryLevel_2 */
}
/* Private Functions Definition -----------------------------------------------*/ /* Private Functions Definition -----------------------------------------------*/
/* USER CODE BEGIN PrFD */ /* USER CODE BEGIN PrFD */

View File

@ -97,6 +97,12 @@ void MX_GPIO_Init(void)
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH; GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
HAL_GPIO_Init(GPIOB, &GPIO_InitStruct); HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
__HAL_RCC_GPIOA_CLK_ENABLE();
GPIO_InitStruct.Pin = GPIO_PIN_15; //VBAT_DETECT_PIN
GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
GPIO_InitStruct.Pull = GPIO_NOPULL;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
/* EXTI interrupt init*/ /* EXTI interrupt init*/
#if 0 #if 0

View File

@ -554,7 +554,7 @@ static void SendTxData(void)
/* USER CODE BEGIN SendTxData_1 */ /* USER CODE BEGIN SendTxData_1 */
LmHandlerErrorStatus_t status = LORAMAC_HANDLER_ERROR; LmHandlerErrorStatus_t status = LORAMAC_HANDLER_ERROR;
uint8_t batteryLevel = GetBatteryLevel(); uint8_t batteryLevel = GetBatteryLevel();
uint16_t batteryLevelmV = (uint16_t) SYS_GetBatteryLevel(); uint16_t batteryLevelmV = (uint16_t) STS_GetBatteryLevel();
sensor_t sensor_data; sensor_t sensor_data;
UTIL_TIMER_Time_t nextTxIn = 0; UTIL_TIMER_Time_t nextTxIn = 0;
//HAL_GPIO_WritePin(GPIOB, GPIO_PIN_4, GPIO_PIN_RESET); /* PME OFF */ //HAL_GPIO_WritePin(GPIOB, GPIO_PIN_4, GPIO_PIN_RESET); /* PME OFF */
@ -678,17 +678,17 @@ static void OnTxTimerEvent(void *context)
/* USER CODE END OnTxTimerEvent_1 */ /* USER CODE END OnTxTimerEvent_1 */
//__HAL_RCC_GPIOB_CLK_ENABLE(); //__HAL_RCC_GPIOB_CLK_ENABLE();
//HAL_GPIO_WritePin(GPIOB,GPIO_PIN_4,GPIO_PIN_SET);
STS_PME_ON; STS_PME_ON;
STS_LED1_ON; STS_LED1_ON;
//HAL_GPIO_WritePin(GPIOB,GPIO_PIN_2,GPIO_PIN_SET);
UTIL_SEQ_SetTask((1 << CFG_SEQ_Task_LoRaSendOnTxTimerOrButtonEvent), CFG_SEQ_Prio_0); UTIL_SEQ_SetTask((1 << CFG_SEQ_Task_LoRaSendOnTxTimerOrButtonEvent), CFG_SEQ_Prio_0);
HAL_Delay(3000); HAL_Delay(3000);
STS_LED1_OFF; STS_LED1_OFF;
STS_PME_OFF; STS_PME_OFF;
//HAL_GPIO_WritePin(GPIOB,GPIO_PIN_2,GPIO_PIN_RESET);
//HAL_GPIO_WritePin(GPIOB,GPIO_PIN_4,GPIO_PIN_RESET);
//HAL_Delay(2000);
/*Wait for next tx slot*/ /*Wait for next tx slot*/
UTIL_TIMER_Start(&TxTimer); UTIL_TIMER_Start(&TxTimer);
@ -772,6 +772,7 @@ static void OnJoinRequest(LmHandlerJoinParams_t *joinParams)
APP_LOG(TS_OFF, VLEVEL_H, "###### U/L FRAME:JOIN | DR:%d | PWR:%d\r\n", joinParams->Datarate, joinParams->TxPower); APP_LOG(TS_OFF, VLEVEL_H, "###### U/L FRAME:JOIN | DR:%d | PWR:%d\r\n", joinParams->Datarate, joinParams->TxPower);
} }
/* USER CODE END OnJoinRequest_1 */ /* USER CODE END OnJoinRequest_1 */
SendTxData();
} }
static void OnBeaconStatusChange(LmHandlerBeaconParams_t *params) static void OnBeaconStatusChange(LmHandlerBeaconParams_t *params)

View File

@ -52,7 +52,7 @@ extern "C" {
* Defines the application data transmission duty cycle. 10s, value in [ms]. * Defines the application data transmission duty cycle. 10s, value in [ms].
*/ */
#define APP_TX_DUTYCYCLE 180000 #define APP_TX_DUTYCYCLE 120000
/*! /*!

View File

@ -1,24 +1,24 @@
D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/LoRaWAN_End_Node_E5CC/LoRaWAN/App/lora_app.c:777:13:OnBeaconStatusChange 1 D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/LoRaWAN_End_Node_E5CC/LoRaWAN/App/lora_app.c:778:13:OnBeaconStatusChange 1
D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/LoRaWAN_End_Node_E5CC/LoRaWAN/App/lora_app.c:812:13:OnSysTimeUpdate 1 D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/LoRaWAN_End_Node_E5CC/LoRaWAN/App/lora_app.c:813:13:OnSysTimeUpdate 1
D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/LoRaWAN_End_Node_E5CC/LoRaWAN/App/lora_app.c:819:13:OnClassChange 1 D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/LoRaWAN_End_Node_E5CC/LoRaWAN/App/lora_app.c:820:13:OnClassChange 1
D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/LoRaWAN_End_Node_E5CC/LoRaWAN/App/lora_app.c:860:13:OnTxFrameCtrlChanged 1 D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/LoRaWAN_End_Node_E5CC/LoRaWAN/App/lora_app.c:861:13:OnTxFrameCtrlChanged 1
D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/LoRaWAN_End_Node_E5CC/LoRaWAN/App/lora_app.c:871:13:OnPingSlotPeriodicityChanged 1 D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/LoRaWAN_End_Node_E5CC/LoRaWAN/App/lora_app.c:872:13:OnPingSlotPeriodicityChanged 1
D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/LoRaWAN_End_Node_E5CC/LoRaWAN/App/lora_app.c:706:13:OnRxTimerLedEvent 1 D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/LoRaWAN_End_Node_E5CC/LoRaWAN/App/lora_app.c:706:13:OnRxTimerLedEvent 1
D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/LoRaWAN_End_Node_E5CC/LoRaWAN/App/lora_app.c:701:13:OnTxTimerLedEvent 1 D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/LoRaWAN_End_Node_E5CC/LoRaWAN/App/lora_app.c:701:13:OnTxTimerLedEvent 1
D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/LoRaWAN_End_Node_E5CC/LoRaWAN/App/lora_app.c:826:13:OnMacProcessNotify 1 D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/LoRaWAN_End_Node_E5CC/LoRaWAN/App/lora_app.c:827:13:OnMacProcessNotify 1
D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/LoRaWAN_End_Node_E5CC/LoRaWAN/App/lora_app.c:933:13:OnStopJoinTimerEvent 2 D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/LoRaWAN_End_Node_E5CC/LoRaWAN/App/lora_app.c:934:13:OnStopJoinTimerEvent 2
D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/LoRaWAN_End_Node_E5CC/LoRaWAN/App/lora_app.c:674:13:OnTxTimerEvent 1 D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/LoRaWAN_End_Node_E5CC/LoRaWAN/App/lora_app.c:674:13:OnTxTimerEvent 1
D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/LoRaWAN_End_Node_E5CC/LoRaWAN/App/lora_app.c:838:13:OnTxPeriodicityChanged 1 D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/LoRaWAN_End_Node_E5CC/LoRaWAN/App/lora_app.c:839:13:OnTxPeriodicityChanged 1
D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/LoRaWAN_End_Node_E5CC/LoRaWAN/App/lora_app.c:1004:13:OnRestoreContextRequest 1 D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/LoRaWAN_End_Node_E5CC/LoRaWAN/App/lora_app.c:1005:13:OnRestoreContextRequest 1
D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/LoRaWAN_End_Node_E5CC/LoRaWAN/App/lora_app.c:896:13:StopJoin 2 D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/LoRaWAN_End_Node_E5CC/LoRaWAN/App/lora_app.c:897:13:StopJoin 2
D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/LoRaWAN_End_Node_E5CC/LoRaWAN/App/lora_app.c:949:13:StoreContext 1 D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/LoRaWAN_End_Node_E5CC/LoRaWAN/App/lora_app.c:950:13:StoreContext 1
D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/LoRaWAN_End_Node_E5CC/LoRaWAN/App/lora_app.c:552:13:SendTxData 7 D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/LoRaWAN_End_Node_E5CC/LoRaWAN/App/lora_app.c:552:13:SendTxData 7
D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/LoRaWAN_End_Node_E5CC/LoRaWAN/App/lora_app.c:747:13:OnJoinRequest 3
D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/LoRaWAN_End_Node_E5CC/LoRaWAN/App/lora_app.c:711:13:OnJoinTimerLedEvent 1 D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/LoRaWAN_End_Node_E5CC/LoRaWAN/App/lora_app.c:711:13:OnJoinTimerLedEvent 1
D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/LoRaWAN_End_Node_E5CC/LoRaWAN/App/lora_app.c:718:13:OnTxData 3 D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/LoRaWAN_End_Node_E5CC/LoRaWAN/App/lora_app.c:718:13:OnTxData 3
D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/LoRaWAN_End_Node_E5CC/LoRaWAN/App/lora_app.c:882:13:OnSystemReset 3 D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/LoRaWAN_End_Node_E5CC/LoRaWAN/App/lora_app.c:883:13:OnSystemReset 3
D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/LoRaWAN_End_Node_E5CC/LoRaWAN/App/lora_app.c:747:13:OnJoinRequest 3
D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/LoRaWAN_End_Node_E5CC/LoRaWAN/App/lora_app.c:472:13:OnRxData 13 D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/LoRaWAN_End_Node_E5CC/LoRaWAN/App/lora_app.c:472:13:OnRxData 13
D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/LoRaWAN_End_Node_E5CC/LoRaWAN/App/lora_app.c:989:13:OnStoreContextRequest 2 D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/LoRaWAN_End_Node_E5CC/LoRaWAN/App/lora_app.c:990:13:OnStoreContextRequest 2
D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/LoRaWAN_End_Node_E5CC/LoRaWAN/App/lora_app.c:971:13:OnNvmDataChange 1 D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/LoRaWAN_End_Node_E5CC/LoRaWAN/App/lora_app.c:972:13:OnNvmDataChange 1
D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/LoRaWAN_End_Node_E5CC/LoRaWAN/App/lora_app.c:348:6:LoRaWAN_Init 2 D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/LoRaWAN_End_Node_E5CC/LoRaWAN/App/lora_app.c:348:6:LoRaWAN_Init 2
D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/LoRaWAN_End_Node_E5CC/LoRaWAN/App/lora_app.c:443:6:HAL_GPIO_EXTI_Callback 3 D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/LoRaWAN_End_Node_E5CC/LoRaWAN/App/lora_app.c:443:6:HAL_GPIO_EXTI_Callback 3

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff