foxBMS  1.2.0
The foxBMS Battery Management System API Documentation
sof_cfg.c
Go to the documentation of this file.
1 /**
2  *
3  * @copyright © 2010 - 2021, Fraunhofer-Gesellschaft zur Foerderung der angewandten Forschung e.V.
4  * All rights reserved.
5  *
6  * SPDX-License-Identifier: BSD-3-Clause
7  *
8  * Redistribution and use in source and binary forms, with or without
9  * modification, are permitted provided that the following conditions are met:
10  *
11  * 1. Redistributions of source code must retain the above copyright notice, this
12  * list of conditions and the following disclaimer.
13  *
14  * 2. Redistributions in binary form must reproduce the above copyright notice,
15  * this list of conditions and the following disclaimer in the documentation
16  * and/or other materials provided with the distribution.
17  *
18  * 3. Neither the name of the copyright holder nor the names of its
19  * contributors may be used to endorse or promote products derived from
20  * this software without specific prior written permission.
21  *
22  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
23  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
24  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
25  * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
26  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
27  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
28  * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
29  * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
30  * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
31  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
32  *
33  * We kindly request you to use one or more of the following phrases to refer to
34  * foxBMS in your hardware, software, documentation or advertising materials:
35  *
36  * - ″This product uses parts of foxBMS®″
37  * - ″This product includes parts of foxBMS®″
38  * - ″This product is derived from foxBMS®″
39  *
40  */
41 
42 /**
43  * @file sof_cfg.c
44  * @author foxBMS Team
45  * @date 2020-10-07 (date of creation)
46  * @updated 2020-10-07 (date of last update)
47  * @ingroup APPLICATION
48  * @prefix SOF
49  *
50  * @brief SOF module configuration file
51  *
52  */
53 
54 /*========== Includes =======================================================*/
55 #include "sof_cfg.h"
56 
57 /*========== Macros and Definitions =========================================*/
58 
59 /*========== Static Constant and Variable Definitions =======================*/
60 
61 /*========== Extern Constant and Variable Definitions =======================*/
62 
65  .maximumDischargeCurrent_mA = SOF_STRING_CURRENT_CONTINUOUS_DISCHARGE_mA,
66  .limpHomeCurrent_mA = SOF_STRING_CURRENT_LIMP_HOME_mA,
67  .cutoffLowTemperatureDischarge_ddegC = SOF_TEMPERATURE_LOW_CUTOFF_DISCHARGE_ddegC,
68  .limitLowTemperatureDischarge_ddegC = SOF_TEMPERATURE_LOW_LIMIT_DISCHARGE_ddegC,
69  .cutoffLowTemperatureCharge_ddegC = SOF_TEMPERATURE_LOW_CUTOFF_CHARGE_ddegC,
70  .limitLowTemperatureCharge_ddegC = SOF_TEMPERATURE_LOW_LIMIT_CHARGE_ddegC,
71  .cutoffHighTemperatureDischarge_ddegC = SOF_TEMPERATURE_HIGH_CUTOFF_DISCHARGE_ddegC,
72  .limitHighTemperatureDischarge_ddegC = SOF_TEMPERATURE_HIGH_LIMIT_DISCHARGE_ddegC,
73  .cutoffHighTemperatureCharge_ddegC = SOF_TEMPERATURE_HIGH_CUTOFF_CHARGE_ddegC,
74  .limitHighTemperatureCharge_ddegC = SOF_TEMPERATURE_HIGH_LIMIT_CHARGE_ddegC,
75  .limitUpperCellVoltage_mV = SOF_VOLTAGE_LIMIT_CHARGE_mV,
76  .cutoffUpperCellVoltage_mV = SOF_VOLTAGE_CUTOFF_CHARGE_mV,
77  .limitLowerCellVoltage_mV = SOF_VOLTAGE_LIMIT_DISCHARGE_mV,
78  .cutoffLowerCellVoltage_mV = SOF_VOLTAGE_CUTOFF_DISCHARGE_mV};
79 
82  .maximumDischargeCurrent_mA = SOF_MOL_STRING_CURRENT_CONTINUOUS_DISCHARGE_mA,
83  .limpHomeCurrent_mA = SOF_MOL_STRING_CURRENT_LIMP_HOME_mA,
84  .cutoffLowTemperatureDischarge_ddegC = SOF_MOL_TEMPERATURE_LOW_CUTOFF_DISCHARGE_ddegC,
85  .limitLowTemperatureDischarge_ddegC = SOF_MOL_TEMPERATURE_LOW_LIMIT_DISCHARGE_ddegC,
86  .cutoffLowTemperatureCharge_ddegC = SOF_MOL_TEMPERATURE_LOW_CUTOFF_CHARGE_ddegC,
87  .limitLowTemperatureCharge_ddegC = SOF_MOL_TEMPERATURE_LOW_LIMIT_CHARGE_ddegC,
88  .cutoffHighTemperatureDischarge_ddegC = SOF_MOL_TEMPERATURE_HIGH_CUTOFF_DISCHARGE_ddegC,
89  .limitHighTemperatureDischarge_ddegC = SOF_MOL_TEMPERATURE_HIGH_LIMIT_DISCHARGE_ddegC,
90  .cutoffHighTemperatureCharge_ddegC = SOF_MOL_TEMPERATURE_HIGH_CUTOFF_CHARGE_ddegC,
91  .limitHighTemperatureCharge_ddegC = SOF_MOL_TEMPERATURE_HIGH_LIMIT_CHARGE_ddegC,
92  .limitUpperCellVoltage_mV = SOF_MOL_VOLTAGE_LIMIT_CHARGE_mV,
93  .cutoffUpperCellVoltage_mV = SOF_MOL_VOLTAGE_CUTOFF_CHARGE_mV,
94  .limitLowerCellVoltage_mV = SOF_MOL_VOLTAGE_LIMIT_DISCHARGE_mV,
95  .cutoffLowerCellVoltage_mV = SOF_MOL_VOLTAGE_CUTOFF_DISCHARGE_mV};
96 
99  .maximumDischargeCurrent_mA = SOF_RSL_STRING_CURRENT_CONTINUOUS_DISCHARGE_mA,
100  .limpHomeCurrent_mA = SOF_RSL_STRING_CURRENT_LIMP_HOME_mA,
101  .cutoffLowTemperatureDischarge_ddegC = SOF_RSL_TEMPERATURE_LOW_CUTOFF_DISCHARGE_ddegC,
102  .limitLowTemperatureDischarge_ddegC = SOF_RSL_TEMPERATURE_LOW_LIMIT_DISCHARGE_ddegC,
103  .cutoffLowTemperatureCharge_ddegC = SOF_RSL_TEMPERATURE_LOW_CUTOFF_CHARGE_ddegC,
104  .limitLowTemperatureCharge_ddegC = SOF_RSL_TEMPERATURE_LOW_LIMIT_CHARGE_ddegC,
105  .cutoffHighTemperatureDischarge_ddegC = SOF_RSL_TEMPERATURE_HIGH_CUTOFF_DISCHARGE_ddegC,
106  .limitHighTemperatureDischarge_ddegC = SOF_RSL_TEMPERATURE_HIGH_LIMIT_DISCHARGE_ddegC,
107  .cutoffHighTemperatureCharge_ddegC = SOF_RSL_TEMPERATURE_HIGH_CUTOFF_CHARGE_ddegC,
108  .limitHighTemperatureCharge_ddegC = SOF_RSL_TEMPERATURE_HIGH_LIMIT_CHARGE_ddegC,
109  .limitUpperCellVoltage_mV = SOF_RSL_VOLTAGE_LIMIT_CHARGE_mV,
110  .cutoffUpperCellVoltage_mV = SOF_RSL_VOLTAGE_CUTOFF_CHARGE_mV,
111  .limitLowerCellVoltage_mV = SOF_RSL_VOLTAGE_LIMIT_DISCHARGE_mV,
112  .cutoffLowerCellVoltage_mV = SOF_RSL_VOLTAGE_CUTOFF_DISCHARGE_mV};
113 
116  .maximumDischargeCurrent_mA = SOF_MSL_STRING_CURRENT_CONTINUOUS_DISCHARGE_mA,
117  .limpHomeCurrent_mA = SOF_MSL_STRING_CURRENT_LIMP_HOME_mA,
118  .cutoffLowTemperatureDischarge_ddegC = SOF_MSL_TEMPERATURE_LOW_CUTOFF_DISCHARGE_ddegC,
119  .limitLowTemperatureDischarge_ddegC = SOF_MSL_TEMPERATURE_LOW_LIMIT_DISCHARGE_ddegC,
120  .cutoffLowTemperatureCharge_ddegC = SOF_MSL_TEMPERATURE_LOW_CUTOFF_CHARGE_ddegC,
121  .limitLowTemperatureCharge_ddegC = SOF_MSL_TEMPERATURE_LOW_LIMIT_CHARGE_ddegC,
122  .cutoffHighTemperatureDischarge_ddegC = SOF_MSL_TEMPERATURE_HIGH_CUTOFF_DISCHARGE_ddegC,
123  .limitHighTemperatureDischarge_ddegC = SOF_MSL_TEMPERATURE_HIGH_LIMIT_DISCHARGE_ddegC,
124  .cutoffHighTemperatureCharge_ddegC = SOF_MSL_TEMPERATURE_HIGH_CUTOFF_CHARGE_ddegC,
125  .limitHighTemperatureCharge_ddegC = SOF_MSL_TEMPERATURE_HIGH_LIMIT_CHARGE_ddegC,
126  .limitUpperCellVoltage_mV = SOF_MSL_VOLTAGE_LIMIT_CHARGE_mV,
127  .cutoffUpperCellVoltage_mV = SOF_MSL_VOLTAGE_CUTOFF_CHARGE_mV,
128  .limitLowerCellVoltage_mV = SOF_MSL_VOLTAGE_LIMIT_DISCHARGE_mV,
129  .cutoffLowerCellVoltage_mV = SOF_MSL_VOLTAGE_CUTOFF_DISCHARGE_mV};
130 
131 /*========== Static Function Prototypes =====================================*/
132 
133 /*========== Static Function Implementations ================================*/
134 
135 /*========== Extern Function Implementations ================================*/
136 
137 /*========== Externalized Static Function Implementations (Unit Test) =======*/
const SOF_CONFIG_s sof_recommendedCurrent
Definition: sof_cfg.c:63
const SOF_CONFIG_s sof_recommendedSafetyLimit
Definition: sof_cfg.c:97
const SOF_CONFIG_s sof_configMaximumSafetyLimit
Definition: sof_cfg.c:114
const SOF_CONFIG_s sof_maximumOperatingLimit
Definition: sof_cfg.c:80
Header for SOF configuration.
#define SOF_MOL_VOLTAGE_LIMIT_DISCHARGE_mV
Definition: sof_cfg.h:313
#define SOF_MOL_VOLTAGE_LIMIT_CHARGE_mV
Definition: sof_cfg.h:281
#define SOF_VOLTAGE_CUTOFF_DISCHARGE_mV
Definition: sof_cfg.h:289
#define SOF_RSL_TEMPERATURE_LOW_LIMIT_CHARGE_ddegC
Definition: sof_cfg.h:177
#define SOF_TEMPERATURE_HIGH_LIMIT_DISCHARGE_ddegC
Definition: sof_cfg.h:204
#define SOF_RSL_TEMPERATURE_HIGH_CUTOFF_DISCHARGE_ddegC
Definition: sof_cfg.h:195
#define SOF_RSL_TEMPERATURE_HIGH_LIMIT_DISCHARGE_ddegC
Definition: sof_cfg.h:214
#define SOF_MOL_TEMPERATURE_LOW_LIMIT_CHARGE_ddegC
Definition: sof_cfg.h:176
#define SOF_STRING_CURRENT_CONTINUOUS_DISCHARGE_mA
Definition: sof_cfg.h:81
#define SOF_TEMPERATURE_LOW_CUTOFF_CHARGE_ddegC
Definition: sof_cfg.h:150
#define SOF_RSL_TEMPERATURE_HIGH_LIMIT_CHARGE_ddegC
Definition: sof_cfg.h:250
#define SOF_MOL_STRING_CURRENT_CONTINUOUS_DISCHARGE_mA
Definition: sof_cfg.h:87
#define SOF_STRING_CURRENT_CONTINUOUS_CHARGE_mA
Definition: sof_cfg.h:66
#define SOF_MOL_TEMPERATURE_HIGH_LIMIT_CHARGE_ddegC
Definition: sof_cfg.h:249
#define SOF_TEMPERATURE_LOW_LIMIT_CHARGE_ddegC
Definition: sof_cfg.h:168
#define SOF_MSL_VOLTAGE_LIMIT_CHARGE_mV
Definition: sof_cfg.h:283
#define SOF_MOL_TEMPERATURE_LOW_LIMIT_DISCHARGE_ddegC
Definition: sof_cfg.h:140
#define SOF_MSL_STRING_CURRENT_CONTINUOUS_DISCHARGE_mA
Definition: sof_cfg.h:89
#define SOF_MSL_TEMPERATURE_LOW_CUTOFF_CHARGE_ddegC
Definition: sof_cfg.h:160
#define SOF_MSL_TEMPERATURE_HIGH_CUTOFF_CHARGE_ddegC
Definition: sof_cfg.h:233
#define SOF_RSL_VOLTAGE_CUTOFF_DISCHARGE_mV
Definition: sof_cfg.h:298
#define SOF_STRING_CURRENT_LIMP_HOME_mA
Definition: sof_cfg.h:97
#define SOF_MOL_VOLTAGE_CUTOFF_CHARGE_mV
Definition: sof_cfg.h:265
#define SOF_RSL_STRING_CURRENT_CONTINUOUS_CHARGE_mA
Definition: sof_cfg.h:73
#define SOF_TEMPERATURE_LOW_LIMIT_DISCHARGE_ddegC
Definition: sof_cfg.h:131
#define SOF_MSL_TEMPERATURE_HIGH_LIMIT_CHARGE_ddegC
Definition: sof_cfg.h:251
#define SOF_MSL_TEMPERATURE_LOW_LIMIT_CHARGE_ddegC
Definition: sof_cfg.h:178
#define SOF_VOLTAGE_LIMIT_CHARGE_mV
Definition: sof_cfg.h:273
#define SOF_MOL_STRING_CURRENT_LIMP_HOME_mA
Definition: sof_cfg.h:103
#define SOF_TEMPERATURE_HIGH_CUTOFF_CHARGE_ddegC
Definition: sof_cfg.h:223
#define SOF_MSL_TEMPERATURE_LOW_CUTOFF_DISCHARGE_ddegC
Definition: sof_cfg.h:123
#define SOF_MSL_STRING_CURRENT_CONTINUOUS_CHARGE_mA
Definition: sof_cfg.h:74
#define SOF_MSL_TEMPERATURE_HIGH_LIMIT_DISCHARGE_ddegC
Definition: sof_cfg.h:215
#define SOF_MOL_TEMPERATURE_LOW_CUTOFF_CHARGE_ddegC
Definition: sof_cfg.h:158
#define SOF_MSL_TEMPERATURE_LOW_LIMIT_DISCHARGE_ddegC
Definition: sof_cfg.h:142
#define SOF_MSL_STRING_CURRENT_LIMP_HOME_mA
Definition: sof_cfg.h:105
#define SOF_RSL_VOLTAGE_LIMIT_DISCHARGE_mV
Definition: sof_cfg.h:314
#define SOF_MSL_VOLTAGE_CUTOFF_CHARGE_mV
Definition: sof_cfg.h:267
#define SOF_TEMPERATURE_HIGH_CUTOFF_DISCHARGE_ddegC
Definition: sof_cfg.h:186
#define SOF_MOL_STRING_CURRENT_CONTINUOUS_CHARGE_mA
Definition: sof_cfg.h:72
#define SOF_MOL_TEMPERATURE_HIGH_LIMIT_DISCHARGE_ddegC
Definition: sof_cfg.h:213
#define SOF_RSL_TEMPERATURE_HIGH_CUTOFF_CHARGE_ddegC
Definition: sof_cfg.h:232
#define SOF_MOL_TEMPERATURE_HIGH_CUTOFF_DISCHARGE_ddegC
Definition: sof_cfg.h:194
#define SOF_RSL_TEMPERATURE_LOW_CUTOFF_DISCHARGE_ddegC
Definition: sof_cfg.h:122
#define SOF_TEMPERATURE_HIGH_LIMIT_CHARGE_ddegC
Definition: sof_cfg.h:241
#define SOF_RSL_STRING_CURRENT_CONTINUOUS_DISCHARGE_mA
Definition: sof_cfg.h:88
#define SOF_MOL_TEMPERATURE_HIGH_CUTOFF_CHARGE_ddegC
Definition: sof_cfg.h:231
#define SOF_VOLTAGE_CUTOFF_CHARGE_mV
Definition: sof_cfg.h:257
#define SOF_TEMPERATURE_LOW_CUTOFF_DISCHARGE_ddegC
Definition: sof_cfg.h:113
#define SOF_MOL_TEMPERATURE_LOW_CUTOFF_DISCHARGE_ddegC
Definition: sof_cfg.h:121
#define SOF_RSL_VOLTAGE_LIMIT_CHARGE_mV
Definition: sof_cfg.h:282
#define SOF_MSL_VOLTAGE_LIMIT_DISCHARGE_mV
Definition: sof_cfg.h:315
#define SOF_RSL_VOLTAGE_CUTOFF_CHARGE_mV
Definition: sof_cfg.h:266
#define SOF_RSL_TEMPERATURE_LOW_CUTOFF_CHARGE_ddegC
Definition: sof_cfg.h:159
#define SOF_RSL_TEMPERATURE_LOW_LIMIT_DISCHARGE_ddegC
Definition: sof_cfg.h:141
#define SOF_MSL_VOLTAGE_CUTOFF_DISCHARGE_mV
Definition: sof_cfg.h:299
#define SOF_MSL_TEMPERATURE_HIGH_CUTOFF_DISCHARGE_ddegC
Definition: sof_cfg.h:196
#define SOF_VOLTAGE_LIMIT_DISCHARGE_mV
Definition: sof_cfg.h:305
#define SOF_RSL_STRING_CURRENT_LIMP_HOME_mA
Definition: sof_cfg.h:104
#define SOF_MOL_VOLTAGE_CUTOFF_DISCHARGE_mV
Definition: sof_cfg.h:297
float maximumChargeCurrent_mA
Definition: sof_cfg.h:324