foxBMS  1.1.0
The foxBMS Battery Management System API Documentation
pana_ncr18650bd.h
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 pana_ncr18650bd.h
44  * @author foxBMS Team
45  * @date 2018-10-02 (date of creation)
46  * @updated 2020-12-09 (date of last update)
47  * @ingroup BATTERY_CELL_CONF
48  * @prefix BC
49  *
50  * @brief Configuration of the battery cell (e.g., minimum and maximum cell voltage)
51  *
52  * This files contains basic macros of the battery cell in order to derive needed inputs
53  * in other parts of the software. These macros are all depended on the hardware.
54  *
55  */
56 
57 #ifndef FOXBMS__PANA_NCR18650BD_H_
58 #define FOXBMS__PANA_NCR18650BD_H_
59 
60 /*========== Includes =======================================================*/
61 #include "general.h"
62 
63 /*========== Macros and Definitions =========================================*/
64 /**
65  * @ingroup CONFIG_BATTERY_CELL
66  * Maximum temperature limit during discharge.
67  * When maximum safety limit (MSL) is violated, error state is requested and
68  * contactors will open. When recommended safety limit (RSL) or maximum
69  * operating limit (MOL) is violated, the respective flag will be set.
70  * @ptype int
71  * @unit deci °C
72  * @{
73  */
74 #define BC_TEMPERATURE_MAX_DISCHARGE_MSL_ddegC (600)
75 #define BC_TEMPERATURE_MAX_DISCHARGE_RSL_ddegC (550)
76 #define BC_TEMPERATURE_MAX_DISCHARGE_MOL_ddegC (500)
77 /**@}*/
78 
79 /**
80  * @ingroup CONFIG_BATTERY_CELL
81  * Minimum temperature limit during discharge.
82  * When maximum safety limit (MSL) is violated, error state is requested and
83  * contactors will open. When recommended safety limit (RSL) or maximum
84  * operating limit (MOL) is violated, the respective flag will be set.
85  * @ptype int
86  * @unit deci °C
87  * @{
88  */
89 #define BC_TEMPERATURE_MIN_DISCHARGE_MSL_ddegC (-200)
90 #define BC_TEMPERATURE_MIN_DISCHARGE_RSL_ddegC (-180)
91 #define BC_TEMPERATURE_MIN_DISCHARGE_MOL_ddegC (-150)
92 /**@}*/
93 
94 /**
95  * @ingroup CONFIG_BATTERY_CELL
96  * Maximum temperature limit during charge.
97  * When maximum safety limit (MSL) is violated, error state is requested and
98  * contactors will open. When recommended safety limit (RSL) or maximum
99  * operating limit (MOL) is violated, the respective flag will be set.
100  * @ptype int
101  * @unit deci °C
102  * @{
103  */
104 #define BC_TEMPERATURE_MAX_CHARGE_MSL_ddegC (450)
105 #define BC_TEMPERATURE_MAX_CHARGE_RSL_ddegC (400)
106 #define BC_TEMPERATURE_MAX_CHARGE_MOL_ddegC (350)
107 /**@}*/
108 
109 /**
110  * @ingroup CONFIG_BATTERY_CELL
111  * Minimum temperature limit during discharge.
112  * When maximum safety limit (MSL) is violated, error state is requested and
113  * contactors will open. When recommended safety limit (RSL) or maximum
114  * operating limit (MOL) is violated, the respective flag will be set.
115  * @ptype int
116  * @unit deci °C
117  * @{
118  */
119 #define BC_TEMPERATURE_MIN_CHARGE_MSL_ddegC (100)
120 #define BC_TEMPERATURE_MIN_CHARGE_RSL_ddegC (120)
121 #define BC_TEMPERATURE_MIN_CHARGE_MOL_ddegC (150)
122 /**@}*/
123 
124 /**
125  * @ingroup CONFIG_BATTERY_CELL
126  * Maximum cell voltage limit.
127  * When maximum safety limit (MSL) is violated, error state is requested and
128  * contactors will open. When recommended safety limit (RSL) or maximum
129  * operating limit (MOL) is violated, the respective flag will be set.
130  * @ptype int
131  * @unit mV
132  * @{
133  */
134 #define BC_VOLTAGE_MAX_MSL_mV (4200u)
135 #define BC_VOLTAGE_MAX_RSL_mV (4150u)
136 #define BC_VOLTAGE_MAX_MOL_mV (4100u)
137 /**@}*/
138 
139 /**
140  * @ingroup CONFIG_BATTERY_CELL
141  * nominal cell voltage according to datasheet
142  * @ptype int
143  * @unit mV
144  */
145 #define BC_VOLTAGE_NOMINAL_mV (3600u)
146 /**
147  * @ingroup CONFIG_BATTERY_CELL
148  * Minimum cell voltage limit.
149  * When maximum safety limit (MSL) is violated, error state is requested and
150  * contactors will open. When recommended safety limit (RSL) or maximum
151  * operating limit (MOL) is violated, the respective flag will be set.
152  * @ptype int
153  * @unit mV
154  * @{
155  */
156 #define BC_VOLTAGE_MIN_MSL_mV (2500u)
157 #define BC_VOLTAGE_MIN_RSL_mV (2550u)
158 #define BC_VOLTAGE_MIN_MOL_mV (2600u)
159 /**@}*/
160 
161 /**
162  * @ingroup CONFIG_BATTERY_CELL
163  * Deep-discharge cell voltage limit.
164  * If this voltage limit is violated, the cell is faulty. The BMS won't allow
165  * a closing of the contactors until this cell is replaced. a replacement of
166  * the cell is confirmed by sending the respective CAN debug message
167  * @ptype int
168  * @unit mV
169  */
170 #define BC_VOLTAGE_DEEP_DISCHARGE_mV (BC_VOLTAGE_MIN_MSL_mV - 100u)
171 
172 /**
173  * @ingroup CONFIG_BATTERY_CELL
174  * Maximum discharge current limit.
175  * When maximum safety limit (MSL) is violated, error state is requested and
176  * contactors will open. When recommended safety limit (RSL) or maximum
177  * operating limit (MOL) is violated, the respective flag will be set.
178  * @ptype int
179  * @unit mA
180  * @{
181  */
182 #define BC_CURRENT_MAX_DISCHARGE_MSL_mA (550000u) /*!< 6 modules (7s20p) in series, 3 strings in parallel */
183 #define BC_CURRENT_MAX_DISCHARGE_RSL_mA (525000u) /*!< current reduced by 50 A because of imbalances between */
184 #define BC_CURRENT_MAX_DISCHARGE_MOL_mA (500000u) /*!< the different strings */
185 /**@}*/
186 
187 /**
188  * @ingroup CONFIG_BATTERY_CELL
189  * Maximum charge current limit.
190  * When maximum safety limit (MSL) is violated, error state is requested and
191  * contactors will open. When recommended safety limit (RSL) or maximum
192  * operating limit (MOL) is violated, the respective flag will be set.
193  * @ptype int
194  * @unit mA
195  * @{
196  */
197 #define BC_CURRENT_MAX_CHARGE_MSL_mA (50000u) /*!< 6 modules (7s20p) in series, 3 strings in parallel */
198 #define BC_CURRENT_MAX_CHARGE_RSL_mA (47500u) /*!< current reduced by 4,54 A because of imbalances between */
199 #define BC_CURRENT_MAX_CHARGE_MOL_mA (45000u) /*!< the different strings */
200 /**@}*/
201 
202 /**
203  * @brief the cell capacity used for SOC calculation, in this case Ah counting
204  * @ptype int
205  * @unit mAh
206  */
207 #define BC_CAPACITY_mAh (3180u)
208 
209 #if BC_VOLTAGE_MIN_MSL_mV < BC_VOLTAGE_DEEP_DISCHARGE_mV
210 #error "Configuration error! - Maximum safety limit for under voltage can't be lower than deep-discharge limit"
211 #endif
212 
213 /*========== Extern Constant and Variable Declarations ======================*/
214 
215 /*========== Extern Function Prototypes =====================================*/
216 
217 /*========== Externalized Static Functions Prototypes (Unit Test) ===========*/
218 
219 #endif /* FOXBMS__PANA_NCR18650BD_H_ */
General macros and definitions for the whole platform.