Integrate STM32 battery monitoring into AnalogBatteryLevel, supporting external GPIO ADC pins as well as internal VBAT channel. Features: - ADC reading using STM32 LL (Lower Layer) macros supporting external ADC channels and internal VBAT channel (AVBAT) - ADC compensation using STM32 LL macros with factory-calibrated VREFINT (AVREF) for accurate voltage measurement - LFP battery OCV curve for STM32WL using AVBAT (STM32 VDD absolute maximum supply voltage 3.9V, direct connection of Li-Po batteries is not supported) Internal VBAT channel implemented in: - Russell - RAK3172 In these variants, ADC_MULTIPLIER = (1.01f * 3) = 3.30 as there is a 3:1 internal divider (DS13105 Rev 12 §5.3.21), and a bit of tolerance as the actual 10% spec leads to readings much too high. Assisted-by: Claude:sonnet-4-5 Signed-off-by: Andrew Yong <me@ndoo.sg>
28 lines
600 B
C
28 lines
600 B
C
/*
|
|
STM32WLE5 Core Module for LoRaWAN® RAK3372
|
|
https://store.rakwireless.com/products/wisblock-core-module-rak3372
|
|
*/
|
|
|
|
/*
|
|
This variant is a work in progress.
|
|
Do not expect a working Meshtastic device with this target.
|
|
*/
|
|
|
|
#ifndef _VARIANT_RAK3172_
|
|
#define _VARIANT_RAK3172_
|
|
|
|
#define USE_STM32WLx
|
|
|
|
#define LED_POWER PA0 // Green LED
|
|
#define LED_STATE_ON 1
|
|
|
|
#define BATTERY_PIN AVBAT
|
|
// ADC_MULTIPLIER: 3.0 = internal 1:3 bridge divider (DS13105§3.18.3)
|
|
// Margin: 1.10 = AVBAT divider tolerance ±10% (Table 82)
|
|
#define ADC_MULTIPLIER (1.01f * 3)
|
|
|
|
#define RAK3172
|
|
#define SERIAL_PRINT_PORT 1
|
|
|
|
#endif
|