mirror of
https://github.com/RIOT-OS/RIOT.git
synced 2025-12-24 22:13:52 +01:00
common/particle-mesh: add support for saul_bat_voltage
This commit is contained in:
parent
7698aca566
commit
d892c2cc8f
@ -1,5 +1,6 @@
|
||||
ifneq (,$(filter saul_default,$(USEMODULE)))
|
||||
USEMODULE += saul_gpio
|
||||
USEMODULE += saul_bat_voltage
|
||||
USEMODULE += saul_pwm
|
||||
endif
|
||||
|
||||
|
||||
@ -1,6 +1,7 @@
|
||||
CPU_MODEL = nrf52840xxaa
|
||||
|
||||
# Put defined MCU peripherals here (in alphabetical order)
|
||||
FEATURES_PROVIDED += board_bat_voltage
|
||||
FEATURES_PROVIDED += periph_i2c
|
||||
FEATURES_PROVIDED += periph_pwm
|
||||
FEATURES_PROVIDED += periph_spi
|
||||
|
||||
31
boards/common/particle-mesh/bat_voltage.c
Normal file
31
boards/common/particle-mesh/bat_voltage.c
Normal file
@ -0,0 +1,31 @@
|
||||
/*
|
||||
* Copyright (C) 2024 TU Dresden
|
||||
*
|
||||
* This file is subject to the terms and conditions of the GNU Lesser
|
||||
* General Public License v2.1. See the file LICENSE in the top level
|
||||
* directory for more details.
|
||||
*/
|
||||
|
||||
/**
|
||||
* @ingroup boards_feather-nrf52840
|
||||
* @ingroup saul_bat_voltage
|
||||
* @{
|
||||
* @file
|
||||
* @brief Implementation of battery voltage convert function
|
||||
*
|
||||
* @author Martine S. Lenders <martine.lenders@tu-dresden.de>
|
||||
*
|
||||
* @}
|
||||
*/
|
||||
|
||||
#ifdef MODULE_SAUL_BAT_VOLTAGE
|
||||
#include "saul/bat_voltage.h"
|
||||
|
||||
int16_t saul_bat_voltage_convert(int32_t adc_sample)
|
||||
{
|
||||
/* See https://community.particle.io/t/can-argon-or-xenon-read-the-battery-state/45554/6
|
||||
* and https://docs.particle.io/assets/images/xenon/schematic-main.png */
|
||||
return (int16_t)((adc_sample * 33L * 1403L) / 10000L);
|
||||
}
|
||||
|
||||
#endif /* MODULE_SAUL_BAT_VOLTAGE */
|
||||
56
boards/common/particle-mesh/include/bat_voltage_params.h
Normal file
56
boards/common/particle-mesh/include/bat_voltage_params.h
Normal file
@ -0,0 +1,56 @@
|
||||
/*
|
||||
* Copyright (C) 2024 TU Dresden
|
||||
*
|
||||
* This file is subject to the terms and conditions of the GNU Lesser
|
||||
* General Public License v2.1. See the file LICENSE in the top level
|
||||
* directory for more details.
|
||||
*/
|
||||
|
||||
/**
|
||||
* @ingroup boards_common_particle-mesh
|
||||
* @{
|
||||
*
|
||||
* @file
|
||||
* @brief Configuration of SAUL mapped battery voltage information
|
||||
*
|
||||
* @author Martine S. Lenders <martine.lenders@tu-dresden.de>
|
||||
*/
|
||||
|
||||
#ifndef BAT_VOLTAGE_PARAMS_H
|
||||
#define BAT_VOLTAGE_PARAMS_H
|
||||
|
||||
#include "saul/bat_voltage.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/**
|
||||
* @brief Conversion function to convert ADC sample to battery voltage
|
||||
*
|
||||
* @param[in] adc_sample The raw ADC sample.
|
||||
*
|
||||
* @return Voltage value for phydat.
|
||||
*/
|
||||
int16_t saul_bat_voltage_convert(int32_t adc_sample);
|
||||
|
||||
/**
|
||||
* @brief Battery voltage configuration
|
||||
*/
|
||||
static const saul_bat_voltage_params_t saul_bat_voltage_params[] =
|
||||
{
|
||||
{
|
||||
.name = "BAT",
|
||||
.phydat_scale = -3,
|
||||
.line = ADC_LINE(3),
|
||||
.res = ADC_RES_10BIT,
|
||||
.convert = saul_bat_voltage_convert,
|
||||
},
|
||||
};
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* BAT_VOLTAGE_PARAMS_H */
|
||||
/** @} */
|
||||
Loading…
x
Reference in New Issue
Block a user