foxBMS  1.6.0
The foxBMS Battery Management System API Documentation
nxp_mc33775a_cfg.c
Go to the documentation of this file.
1 /**
2  *
3  * @copyright © 2010 - 2023, 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 nxp_mc33775a_cfg.c
44  * @author foxBMS Team
45  * @date 2020-05-08 (date of creation)
46  * @updated 2023-10-12 (date of last update)
47  * @version v1.6.0
48  * @ingroup DRIVERS_CONFIGURATION
49  * @prefix N775
50  *
51  * @brief Configuration for the MC33775A analog front-end
52  *
53  */
54 
55 /*========== Includes =======================================================*/
56 #include "nxp_mc33775a_cfg.h"
57 
58 #include "tsi.h"
59 
60 #include <stdint.h>
61 
62 /*========== Macros and Definitions =========================================*/
63 
64 /*========== Static Constant and Variable Definitions =======================*/
65 
66 /*========== Extern Constant and Variable Definitions =======================*/
67 
68 /**
69  * Default multiplexer measurement sequence
70  * Must be adapted to the application
71  */
73  /* multiplexer 0 measurement */
74  {
75  .muxId = 0,
76  .muxChannel = 0,
77  },
78  {
79  .muxId = 0,
80  .muxChannel = 1,
81  },
82  {
83  .muxId = 0,
84  .muxChannel = 2,
85  },
86  {
87  .muxId = 0,
88  .muxChannel = 3,
89  },
90  {
91  .muxId = 0,
92  .muxChannel = 4,
93  },
94  {
95  .muxId = 0,
96  .muxChannel = 5,
97  },
98  {
99  .muxId = 0,
100  .muxChannel = 6,
101  },
102  {
103  .muxId = 0,
104  .muxChannel = 7,
105  },
106  /* ,
107  multiplexer 2 and 3 measurement
108  {
109  .muxId = 0,
110  .muxChannel = 0xFF, disable enabled mux
111  },
112  {
113  .muxId = 1,
114  .muxChannel = 0,
115  },
116  {
117  .muxId = 1,
118  .muxChannel = 1,
119  },
120  {
121  .muxId = 1,
122  .muxChannel = 2,
123  },
124  {
125  .muxId = 1,
126  .muxChannel = 3,
127  },
128  {
129  .muxId = 1,
130  .muxChannel = 4,
131  },
132  {
133  .muxId = 1,
134  .muxChannel = 5,
135  },
136  {
137  .muxId = 1,
138  .muxChannel = 6,
139  },
140  {
141  .muxId = 1,
142  .muxChannel = 7,
143  },
144  {
145  .muxId = 1,
146  .muxChannel = 0xFF, disable enabled mux
147  },
148 
149  {
150  .muxId = 2,
151  .muxChannel = 0,
152  },
153  {
154  .muxId = 2,
155  .muxChannel = 1,
156  },
157  {
158  .muxId = 2,
159  .muxChannel = 2,
160  },
161  {
162  .muxId = 2,
163  .muxChannel = 3,
164  },
165  {
166  .muxId = 2,
167  .muxChannel = 4,
168  },
169  {
170  .muxId = 2,
171  .muxChannel = 5,
172  },
173  {
174  .muxId = 2,
175  .muxChannel = 6,
176  },
177  {
178  .muxId = 2,
179  .muxChannel = 7,
180  }*/
181 };
182 
183 /*========== Static Function Prototypes =====================================*/
184 
185 /*========== Static Function Implementations ================================*/
186 
187 /*========== Extern Function Implementations ================================*/
188 int16_t N775_ConvertVoltagesToTemperatures(uint16_t adcVoltage_mV) {
189  return TSI_GetTemperature(adcVoltage_mV); /* Convert degree celsius to deci degree celsius */
190 }
191 
192 /*========== Externalized Static Function Implementations (Unit Test) =======*/
193 #ifdef UNITY_UNIT_TEST
194 #endif
N775_MUX_CH_CFG_s n775_muxSequence[N775_MUX_SEQUENCE_LENGTH]
int16_t N775_ConvertVoltagesToTemperatures(uint16_t adcVoltage_mV)
converts a raw voltage from multiplexer to a temperature value in deci °C.
Header for the configuration for the MC33775A analog front-end.
#define N775_MUX_SEQUENCE_LENGTH
Temperature Sensor Interface on Slave Unit driver header.
int16_t TSI_GetTemperature(uint16_t adcVoltage_mV)
translate a voltage to a temperature