Infineon MOTIX™ MCU TLE988x/9x Device Family SDK
tle_variants.h
Go to the documentation of this file.
1 /*
2  ***********************************************************************************************************************
3  *
4  * Copyright (c) Infineon Technologies AG
5  * All rights reserved.
6  *
7  * Redistribution and use in source and binary forms, with or without modification,are permitted provided that the
8  * following conditions are met:
9  *
10  * Redistributions of source code must retain the above copyright notice, this list of conditions and the following
11  * disclaimer.
12  *
13  * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the
14  * following disclaimer in the documentation and/or other materials provided with the distribution.
15  *
16  * Neither the name of the copyright holders nor the names of its contributors may be used to endorse or promote
17  * products derived from this software without specific prior written permission.
18  *
19  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
20  * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
21  * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
22  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
23  * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
24  * WHETHER IN CONTRACT, STRICT LIABILITY,OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
25  * USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26  *
27  **********************************************************************************************************************/
39 /*******************************************************************************
40 ** Author(s) Identity **
41 ********************************************************************************
42 ** Initials Name **
43 ** ---------------------------------------------------------------------------**
44 ** DM Daniel Mysliwitz **
45 ** BG Blandine Guillot **
46 ** JO Julia Ott **
47 ** PS Patrik Schwarz **
48 *******************************************************************************/
49 
50 /*******************************************************************************
51 ** Revision Control History **
52 ********************************************************************************
53 ** V0.1.0: 2019-10-28, DM: Initial version **
54 ** V0.2.0: 2020-08-11, JO: Added devices TLE9881_2QTW60, TLE9883_2QTW62S, **
55 ** TLE9883QTA62, TLE9891QTA61, TLE9891_2QTW60, **
56 ** TLE9891_2QTW61, TLE9893QTW62, TLE9893QKW62S, **
57 ** TLE9893_2QTA62, TLE9893_2QKW62, TLE9893_2QTW62S, **
58 ** TLE9893_2QTA62S, TLE9893_2QKW62S **
59 ** V0.3.0: 2020-08-17, BG: Removed unnecessary series definitions **
60 ** V0.3.1: 2020-11-12, JO: EP-587: Added UC_FEATURE_48PIN/UC_FEATURE_64PIN **
61 ** V0.3.2: 2020-11-27, BG: EP-610: Corrected MISRA 2012 errors **
62 ** V0.3.3: 2021-03-17, BG: EP-746: Removed unofficial devices **
63 ** V0.4.0: 2021-04-21, JO: EP-776: Updated memory defines, values **
64 ** UC_FLASH0_UBSL_SIZE, UC_FLASH0_UDATA_START, **
65 ** UC_FLASH0_UDATA_SIZE can be accessed by **
66 ** including tle_device.h, updated function **
67 ** PtrRangeCheck to updated memory defines **
68 ** V0.4.1: 2021-04-29, JO: EP-789: Corrected UC_SERIES for TLE988x **
69 ** V0.4.2: 2021-07-30, BG: EP-877: Included header file for TLE988x **
70 ** V0.4.3: 2021-11-12, JO: EP-937: Updated copyright and branding **
71 ** V0.4.4: 2023-04-04, PS: EP-1141: Correct MISRA warnings **
72 *******************************************************************************/
73 
74 #ifndef _TLE_VARIANTS_H
75 #define _TLE_VARIANTS_H
76 
77 /* Family definitions */
78 #define TLE98 (98)
79 
80 /* Series definitions */
81 #define TLE988 (988)
82 #define TLE989 (989)
83 
84 /* Device definitions */
85 #define TLE9881 (9881)
86 #define TLE9883 (9883)
87 #define TLE9887 (9887)
88 #define TLE9889 (9889)
89 #define TLE9891 (9891)
90 #define TLE9893 (9893)
91 #define TLE9897 (9897)
92 #define TLE9899 (9899)
93 
94 /* Package definitions */
95 #define BGA144 (1)
96 #define LQFP144 (2)
97 #define LQFP100 (3)
98 #define BGA64 (4)
99 #define LQFP64 (5)
100 #define VQFN48 (6)
101 #define TSSOP38 (7)
102 #define TSSOP28 (8)
103 #define TSSOP16 (9)
104 #define VQFN24 (10)
105 #define VQFN40 (11)
106 #define TQFP48 (12)
107 
108 /* TLE988x/TLE989x devices */
109 /* supported features: */
110 /* UC_FEATURE_CRYPTO_LIB */
111 /* UC_FEATURE_DATAFLASH */
112 /* UC_FEATURE_SDADC */
113 /* UC_FEATURE_48PIN or UC_FEATURE_64PIN */
114 
115 /* TLE988x devices */
116 /* TLE9881_2QTW60: 48pin, 16K RAM, 120K Flash1 (no Crypto-Lib), 32K Flash0 (0...28k Data Flash in Flash0), CAN2.0, SDADC */
117 #if defined(TLE9881_2QTW60)
118  #define UC_FAMILY TLE98
119  #define UC_SERIES TLE988
120  #define UC_DEVICE TLE9893
121  #define UC_PACKAGE TQFP48
122  /* RAM */
123  /* UC_PSRAM_START, UC_PSRAM_SIZE, UC_DSRAM_START are identical for all devices */
124  #define UC_DSRAM_SIZE (0x2000U)
125  /* Flash */
126  #define UC_FLASH0_SIZE (0x8000U)
127  #define UC_FLASH1_SIZE (0x1E000U)
128  /* Features */
129  #define UC_FEATURE_DATAFLASH
130  #define UC_FEATURE_SDADC
131  #define UC_FEATURE_48PIN
132 
133  /* TLE9883_2QTW62S: 48pin, 31K RAM, 248K Flash1 (8K Crypto-Lib in Flash1), 32K Flash0 (0...28k Data Flash in Flash0), CAN FD, SDADC */
134 #elif defined(TLE9883_2QTW62S)
135  #define UC_FAMILY TLE98
136  #define UC_SERIES TLE988
137  #define UC_DEVICE TLE9893
138  #define UC_PACKAGE TQFP48
139  /* RAM */
140  /* UC_PSRAM_START, UC_PSRAM_SIZE, UC_DSRAM_START are identical for all devices */
141  #define UC_DSRAM_SIZE (0x5C00U)
142  /* Flash */
143  #define UC_FLASH0_SIZE (0x8000U)
144  #define UC_FLASH1_SIZE (0x3E000U)
145  /* Features */
146  #define UC_FEATURE_CRYPTO_LIB
147  #define UC_FEATURE_DATAFLASH
148  #define UC_FEATURE_SDADC
149  #define UC_FEATURE_48PIN
150 
151  /* TLE9883QTA62: 48pin, 31K RAM, 248K Flash1 (no Crypto-Lib), 32K Flash0 (0...28k Data Flash in Flash0), CAN FD, No SDADC */
152 #elif defined(TLE9883QTA62)
153  #define UC_FAMILY TLE98
154  #define UC_SERIES TLE988
155  #define UC_DEVICE TLE9893
156  #define UC_PACKAGE TQFP48
157  /* RAM */
158  /* UC_PSRAM_START, UC_PSRAM_SIZE, UC_DSRAM_START are identical for all devices */
159  #define UC_DSRAM_SIZE (0x5C00U)
160  /* Flash */
161  #define UC_FLASH0_SIZE (0x8000U)
162  #define UC_FLASH1_SIZE (0x3E000U)
163  /* Features */
164  #define UC_FEATURE_DATAFLASH
165  #define UC_FEATURE_48PIN
166 
167  /* TLE989x devices */
168  /* TLE9891QTA61: 48pin, 16K RAM, 120K Flash1 (no Crypto-Lib), 32K Flash0 (0...28k Data Flash in Flash0), CAN2.0, No SDADC */
169 #elif defined(TLE9891QTA61)
170  #define UC_FAMILY TLE98
171  #define UC_SERIES TLE989
172  #define UC_DEVICE TLE9893
173  #define UC_PACKAGE TQFP48
174  /* RAM */
175  /* UC_PSRAM_START, UC_PSRAM_SIZE, UC_DSRAM_START are identical for all devices */
176  #define UC_DSRAM_SIZE (0x2000U)
177  /* Flash */
178  #define UC_FLASH0_SIZE (0x8000U)
179  #define UC_FLASH1_SIZE (0x1E000U)
180  /* Features */
181  #define UC_FEATURE_DATAFLASH
182  #define UC_FEATURE_48PIN
183 
184  /* TLE9891_2QTW60: 48pin, 16K RAM, 120K Flash1 (no Crypto-Lib), 32K Flash0 (0...28k Data Flash in Flash0), CAN2.0, SDADC */
185 #elif defined(TLE9891_2QTW60)
186  #define UC_FAMILY TLE98
187  #define UC_SERIES TLE989
188  #define UC_DEVICE TLE9893
189  #define UC_PACKAGE TQFP48
190  /* RAM */
191  /* UC_PSRAM_START, UC_PSRAM_SIZE, UC_DSRAM_START are identical for all devices */
192  #define UC_DSRAM_SIZE (0x2000U)
193  /* Flash */
194  #define UC_FLASH0_SIZE (0x8000U)
195  #define UC_FLASH1_SIZE (0x1E000U)
196  /* Features */
197  #define UC_FEATURE_DATAFLASH
198  #define UC_FEATURE_SDADC
199  #define UC_FEATURE_48PIN
200 
201  /* TLE9891_2QTW61: 48pin, 16K RAM, 120K Flash1 (no Crypto-Lib), 32K Flash0 (0...28k Data Flash in Flash0), CAN2.0, SDADC */
202 #elif defined(TLE9891_2QTW61)
203  #define UC_FAMILY TLE98
204  #define UC_SERIES TLE989
205  #define UC_DEVICE TLE9893
206  #define UC_PACKAGE TQFP48
207  /* RAM */
208  /* UC_PSRAM_START, UC_PSRAM_SIZE, UC_DSRAM_START are identical for all devices */
209  #define UC_DSRAM_SIZE (0x2000U)
210  /* Flash */
211  #define UC_FLASH0_SIZE (0x8000U)
212  #define UC_FLASH1_SIZE (0x1E000U)
213  /* Features */
214  #define UC_FEATURE_DATAFLASH
215  #define UC_FEATURE_SDADC
216  #define UC_FEATURE_48PIN
217 
218  /* TLE9893QKW62S: 64pin, 31K RAM, 248K Flash1 (8K Crypto-Lib in Flash1), 32K Flash0 (0...28k Data Flash in Flash0), CAN FD, No SDADC */
219 #elif defined(TLE9893QKW62S)
220  #define UC_FAMILY TLE98
221  #define UC_SERIES TLE989
222  #define UC_DEVICE TLE9893
223  #define UC_PACKAGE LQFP64
224  /* RAM */
225  /* UC_PSRAM_START, UC_PSRAM_SIZE, UC_DSRAM_START are identical for all devices */
226  #define UC_DSRAM_SIZE (0x5C00U)
227  /* Flash */
228  #define UC_FLASH0_SIZE (0x8000U)
229  #define UC_FLASH1_SIZE (0x3E000U)
230  /* Features */
231  #define UC_FEATURE_CRYPTO_LIB
232  #define UC_FEATURE_DATAFLASH
233  #define UC_FEATURE_64PIN
234 
235  /* TLE9893_2QTA62: 48pin, 31K RAM, 248K Flash1 (no Crypto-Lib), 32K Flash0 (0...28k Data Flash in Flash0), CAN FD, SDADC */
236 #elif defined(TLE9893_2QTA62)
237  #define UC_FAMILY TLE98
238  #define UC_SERIES TLE989
239  #define UC_DEVICE TLE9893
240  #define UC_PACKAGE TQFP48
241  /* RAM */
242  /* UC_PSRAM_START, UC_PSRAM_SIZE, UC_DSRAM_START are identical for all devices */
243  #define UC_DSRAM_SIZE (0x5C00U)
244  /* Flash */
245  #define UC_FLASH0_SIZE (0x8000U)
246  #define UC_FLASH1_SIZE (0x3E000U)
247  /* Features */
248  #define UC_FEATURE_DATAFLASH
249  #define UC_FEATURE_SDADC
250  #define UC_FEATURE_48PIN
251 
252  /* TLE9893_2QTW62S: 48pin, 31K RAM, 248K Flash1 (8K Crypto-Lib in Flash1), 32K Flash0 (0...28k Data Flash in Flash0), CAN FD, SDADC */
253 #elif defined(TLE9893_2QTW62S)
254  #define UC_FAMILY TLE98
255  #define UC_SERIES TLE989
256  #define UC_DEVICE TLE9893
257  #define UC_PACKAGE TQFP48
258  /* RAM */
259  /* UC_PSRAM_START, UC_PSRAM_SIZE, UC_DSRAM_START are identical for all devices */
260  #define UC_DSRAM_SIZE (0x5C00U)
261  /* Flash */
262  #define UC_FLASH0_SIZE (0x8000U)
263  #define UC_FLASH1_SIZE (0x3E000U)
264  /* Features */
265  #define UC_FEATURE_CRYPTO_LIB
266  #define UC_FEATURE_DATAFLASH
267  #define UC_FEATURE_SDADC
268  #define UC_FEATURE_48PIN
269 
270  /* TLE9893_2QTA62S: 48pin, 31K RAM, 248K Flash1 (8K Crypto-Lib in Flash1), 32K Flash0 (0...28k Data Flash in Flash0), CAN FD, SDADC */
271 #elif defined(TLE9893_2QTA62S)
272  #define UC_FAMILY TLE98
273  #define UC_SERIES TLE989
274  #define UC_DEVICE TLE9893
275  #define UC_PACKAGE TQFP48
276  /* RAM */
277  /* UC_PSRAM_START, UC_PSRAM_SIZE, UC_DSRAM_START are identical for all devices */
278  #define UC_DSRAM_SIZE (0x5C00U)
279  /* Flash */
280  #define UC_FLASH0_SIZE (0x8000U)
281  #define UC_FLASH1_SIZE (0x3E000U)
282  /* Features */
283  #define UC_FEATURE_CRYPTO_LIB
284  #define UC_FEATURE_DATAFLASH
285  #define UC_FEATURE_SDADC
286  #define UC_FEATURE_48PIN
287 
288  /* TLE9893_2QKW62S: 64pin, 31K RAM, 248K Flash1 (8K Crypto-Lib in Flash1), 32K Flash0 (0...28k Data Flash in Flash0), CAN FD, SDADC */
289 #elif defined(TLE9893_2QKW62S)
290  #define UC_FAMILY TLE98
291  #define UC_SERIES TLE989
292  #define UC_DEVICE TLE9893
293  #define UC_PACKAGE LQFP64
294  /* RAM */
295  /* UC_PSRAM_START, UC_PSRAM_SIZE, UC_DSRAM_START are identical for all devices */
296  #define UC_DSRAM_SIZE (0x5C00U)
297  /* Flash */
298  #define UC_FLASH0_SIZE (0x8000U)
299  #define UC_FLASH1_SIZE (0x3E000U)
300  /* Features */
301  #define UC_FEATURE_CRYPTO_LIB
302  #define UC_FEATURE_DATAFLASH
303  #define UC_FEATURE_SDADC
304  #define UC_FEATURE_64PIN
305 
306  /* TLE9893_2QKW62S_internal: 64pin, 31K RAM, 248K Flash1 (8K Crypto-Lib in Flash1), 32K Flash0 (0...28k Data Flash in Flash0), CAN FD, SDADC */
307 #elif defined(TLE9893_2QKW62S_internal)
308  #define UC_FAMILY TLE98
309  #define UC_SERIES TLE989
310  #define UC_DEVICE TLE9893
311  #define UC_PACKAGE LQFP64
312  /* RAM */
313  /* UC_PSRAM_START, UC_PSRAM_SIZE, UC_DSRAM_START are identical for all devices */
314  #define UC_DSRAM_SIZE (0x5C00U)
315  /* Flash */
316  #define UC_FLASH0_SIZE (0x8000U)
317  #define UC_FLASH1_SIZE (0x3E000U)
318  /* Features */
319  #define UC_FEATURE_CRYPTO_LIB
320  #define UC_FEATURE_DATAFLASH
321  #define UC_FEATURE_SDADC
322  #define UC_FEATURE_64PIN
323 
324 #else
325  #error "tle_device.h: device not supported"
326 #endif
327 
328 /* Define Memory - common for all TLE988x/9x devices */
329 /* RAM */
330 #define UC_PSRAM_START (0x18000000U)
331 #define UC_PSRAM_SIZE (0x2000U)
332 #define UC_DSRAM_START (0x18002000U)
333 /* Flash */
334 #define UC_FLASH_PAGE_SIZE (128U)
335 #define UC_FLASH_SECTOR_SIZE (0x1000U)
336 #define UC_FLASH0_START (0x11000000U)
337 #define UC_FLASH0_UBSL_START (UC_FLASH0_START)
338 #define UC_FLASH1_START (0x12002000U)
339 /* UC_FLASH0_UBSL_SIZE, UC_FLASH0_UDATA_START, UC_FLASH0_UDATA_SIZE depend on UBSL size setting */
340 
341 /*******************************************************************************
342 ** Definition of first page in FLASH0 **
343 *******************************************************************************/
344 #define UC_SNAC_START ".ARM.__at_0x11000000"
345 
346 
347 #if (UC_SERIES == 988)
348  #include "tle989x.h"
349 #elif (UC_SERIES == 989)
350  #include "tle989x.h"
351 #endif
352 #include "types.h"
353 
354 INLINE bool PtrRangeCheck(const void *ptr)
355 {
356  //lint --e{9034}
357  bool b_res;
358  b_res = false;
359 
360  /* check is input pointer resides inside the RAM */
361  if ((((uint32)ptr >= UC_PSRAM_START) && ((uint32)ptr < (UC_PSRAM_START + UC_PSRAM_SIZE))) || (((uint32)ptr >= UC_DSRAM_START) && ((uint32)ptr < (UC_DSRAM_START + UC_DSRAM_SIZE))))
362  {
363  b_res = true;
364  }
365 
366  return (b_res);
367 }
368 #endif
#define UC_DSRAM_SIZE
Definition: tle_variants.h:296
INLINE bool PtrRangeCheck(const void *ptr)
Definition: tle_variants.h:354
#define UC_PSRAM_SIZE
Definition: tle_variants.h:331
#define UC_DSRAM_START
Definition: tle_variants.h:332
#define UC_PSRAM_START
Definition: tle_variants.h:330
General type declarations.
#define INLINE
Definition: types.h:167
uint32_t uint32
32 bit unsigned value
Definition: types.h:222