foxBMS-UnitTests
1.0.0
The foxBMS Unit Tests API Documentation
beta.h
Go to the documentation of this file.
1
/**
2
*
3
* @copyright © 2010 - 2021, Fraunhofer-Gesellschaft zur Foerderung der
4
* angewandten Forschung e.V. All rights reserved.
5
*
6
* BSD 3-Clause License
7
* Redistribution and use in source and binary forms, with or without
8
* modification, are permitted provided that the following conditions are met:
9
* 1. Redistributions of source code must retain the above copyright notice,
10
* this list of conditions and the following disclaimer.
11
* 2. Redistributions in binary form must reproduce the above copyright
12
* notice, this list of conditions and the following disclaimer in the
13
* documentation and/or other materials provided with the distribution.
14
* 3. Neither the name of the copyright holder nor the names of its
15
* contributors may be used to endorse or promote products derived from
16
* this software without specific prior written permission.
17
*
18
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
19
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
20
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
21
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
22
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
23
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
24
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
25
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
26
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
27
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
28
* POSSIBILITY OF SUCH DAMAGE.
29
*
30
* We kindly request you to use one or more of the following phrases to refer
31
* to foxBMS in your hardware, software, documentation or advertising
32
* materials:
33
*
34
* ″This product uses parts of foxBMS®″
35
*
36
* ″This product includes parts of foxBMS®″
37
*
38
* ″This product is derived from foxBMS®″
39
*
40
*/
41
42
/**
43
* @file beta.h
44
* @author foxBMS Team
45
* @date 2020-01-17 (date of creation)
46
* @updated 2021-02-24 (date of last update)
47
* @ingroup TEMPERATURE_SENSORS
48
* @prefix BETA
49
*
50
* @brief Resistive divider used for measuring temperature
51
*
52
* V_supply
53
* --.--
54
* |
55
* +-.-+
56
* | |
57
* | | R_1
58
* | |
59
* +-.-+
60
* |
61
* .--- V_adc
62
* |
63
* +-.-+
64
* | |
65
* | | R_2
66
* | |
67
* +-.-+
68
* |
69
* --.--
70
* GND
71
*
72
*/
73
74
#ifndef FOXBMS__BETA_H_
75
#define FOXBMS__BETA_H_
76
77
/*========== Includes =======================================================*/
78
#include "
general.h
"
79
80
/*========== Macros and Definitions =========================================*/
81
/**
82
* Position of the NTC in the voltage resistor
83
* true: NTC is positioned above the voltage tap for the ADC voltage.
84
* This equals resistor R_1 in the above circuit diagram
85
*
86
* false: NTC is positioned below the voltage tap for the ADC voltage.
87
* This equals resistor R2 in the above circuit diagram
88
*/
89
#define BETA_POSITION_IN_RESISTOR_DIVIDER_IS_R_1 (false)
90
91
/** Resistor divider supply voltage in volt */
92
#define BETA_RESISTOR_DIVIDER_SUPPLY_VOLTAGE_V (4.096f)
93
94
/**
95
* Resistance value of the other resistor (not the NTC) in the resistor
96
* divider in kOhm.
97
*/
98
#define BETA_RESISTOR_DIVIDER_RESISTANCE_R_1_R_2_Ohm (10000.0f)
99
100
/** Reference temperature */
101
#define BETA_T_REF_C (25.0f)
102
103
/** NTC resistance at reference temperature */
104
#define BETA_R_REF_Ohm (10000.0f)
105
106
/** BEta coefficient of the NTC */
107
#define BETA_BETACOEFFICIENT (3984.0f)
108
109
/*========== Extern Constant and Variable Declarations ======================*/
110
111
/*========== Extern Function Prototypes =====================================*/
112
/**
113
* @brief returns temperature based on measured ADC voltage
114
* @param adcVoltage_mV voltage in mV
115
* @return corresponding temperature in deci °C or FLT_MAX/FLT_MIN if NTC
116
* is shorted or got disconnected. The caller of this functions needs
117
* to check for these return values to prevent invalid data.
118
*/
119
extern
int16_t
BETA_GetTemperatureFromBeta
(uint16_t adcVoltage_mV);
120
121
/**
122
* @brief returns temperature corresponding to NTC resistance
123
* @param resistance_Ohm resistance in Ohm
124
* @return corresponding temperature in deci °C
125
*
126
*/
127
extern
int16_t
BETA_TemperatureFromResistance
(
float
resistance_Ohm);
128
129
/**
130
* @brief returns NTC resistance corresponding to temperature,
131
* used to compute Vmin and Vmax of the divider
132
* @param temperature_ddegC in deci °C
133
* @return corresponding resistance in Ohm
134
*
135
*/
136
extern
float
BETA_ResistanceFromTemperature
(int16_t temperature_ddegC);
137
138
/*========== Externalized Static Functions Prototypes (Unit Test) ===========*/
139
140
#endif
/* FOXBMS__BETA_H_ */
general.h
TODO.
BETA_GetTemperatureFromBeta
int16_t BETA_GetTemperatureFromBeta(uint16_t adcVoltage_mV)
returns temperature based on measured ADC voltage
Definition:
beta.c:95
BETA_TemperatureFromResistance
int16_t BETA_TemperatureFromResistance(float resistance_Ohm)
returns temperature corresponding to NTC resistance
Definition:
beta.c:126
BETA_ResistanceFromTemperature
float BETA_ResistanceFromTemperature(int16_t temperature_ddegC)
returns NTC resistance corresponding to temperature, used to compute Vmin and Vmax of the divider
Definition:
beta.c:140
src
app
driver
ts
beta.h
Generated by
1.8.20