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  * The applicable license agreement can be found at this pack's installation directory in the file
8  * license/IFX_SW_Licence_MOTIX_LITIX.txt
9  *
10  **********************************************************************************************************************/
22 /*******************************************************************************
23 ** Author(s) Identity **
24 ********************************************************************************
25 ** Initials Name **
26 ** ---------------------------------------------------------------------------**
27 ** DM Daniel Mysliwitz **
28 ** BG Blandine Guillot **
29 ** JO Julia Ott **
30 ** PS Patrik Schwarz **
31 *******************************************************************************/
32 
33 /*******************************************************************************
34 ** Revision Control History **
35 ********************************************************************************
36 ** V0.1.0: 2019-10-28, DM: Initial version **
37 ** V0.2.0: 2020-08-11, JO: Added devices TLE9881_2QTW60, TLE9883_2QTW62S, **
38 ** TLE9883QTA62, TLE9891QTA61, TLE9891_2QTW60, **
39 ** TLE9891_2QTW61, TLE9893QTW62, TLE9893QKW62S, **
40 ** TLE9893_2QTA62, TLE9893_2QKW62, TLE9893_2QTW62S, **
41 ** TLE9893_2QTA62S, TLE9893_2QKW62S **
42 ** V0.3.0: 2020-08-17, BG: Removed unnecessary series definitions **
43 ** V0.3.1: 2020-11-12, JO: EP-587: Added UC_FEATURE_48PIN/UC_FEATURE_64PIN **
44 ** V0.3.2: 2020-11-27, BG: EP-610: Corrected MISRA 2012 errors **
45 ** V0.3.3: 2021-03-17, BG: EP-746: Removed unofficial devices **
46 ** V0.4.0: 2021-04-21, JO: EP-776: Updated memory defines, values **
47 ** UC_FLASH0_UBSL_SIZE, UC_FLASH0_UDATA_START, **
48 ** UC_FLASH0_UDATA_SIZE can be accessed by **
49 ** including tle_device.h, updated function **
50 ** PtrRangeCheck to updated memory defines **
51 ** V0.4.1: 2021-04-29, JO: EP-789: Corrected UC_SERIES for TLE988x **
52 ** V0.4.2: 2021-07-30, BG: EP-877: Included header file for TLE988x **
53 ** V0.4.3: 2021-11-12, JO: EP-937: Updated copyright and branding **
54 ** V0.4.4: 2023-04-04, PS: EP-1141: Correct MISRA warnings **
55 ** V0.4.5: 2024-11-05, JO: EP-1494: Updated license **
56 *******************************************************************************/
57 
58 #ifndef _TLE_VARIANTS_H
59 #define _TLE_VARIANTS_H
60 
61 /* Family definitions */
62 #define TLE98 (98)
63 
64 /* Series definitions */
65 #define TLE988 (988)
66 #define TLE989 (989)
67 
68 /* Device definitions */
69 #define TLE9881 (9881)
70 #define TLE9883 (9883)
71 #define TLE9887 (9887)
72 #define TLE9889 (9889)
73 #define TLE9891 (9891)
74 #define TLE9893 (9893)
75 #define TLE9897 (9897)
76 #define TLE9899 (9899)
77 
78 /* Package definitions */
79 #define BGA144 (1)
80 #define LQFP144 (2)
81 #define LQFP100 (3)
82 #define BGA64 (4)
83 #define LQFP64 (5)
84 #define VQFN48 (6)
85 #define TSSOP38 (7)
86 #define TSSOP28 (8)
87 #define TSSOP16 (9)
88 #define VQFN24 (10)
89 #define VQFN40 (11)
90 #define TQFP48 (12)
91 
92 /* TLE988x/TLE989x devices */
93 /* supported features: */
94 /* UC_FEATURE_CRYPTO_LIB */
95 /* UC_FEATURE_DATAFLASH */
96 /* UC_FEATURE_SDADC */
97 /* UC_FEATURE_48PIN or UC_FEATURE_64PIN */
98 
99 /* TLE988x devices */
100 /* TLE9881_2QTW60: 48pin, 16K RAM, 120K Flash1 (no Crypto-Lib), 32K Flash0 (0...28k Data Flash in Flash0), CAN2.0, SDADC */
101 #if defined(TLE9881_2QTW60)
102  #define UC_FAMILY TLE98
103  #define UC_SERIES TLE988
104  #define UC_DEVICE TLE9893
105  #define UC_PACKAGE TQFP48
106  /* RAM */
107  /* UC_PSRAM_START, UC_PSRAM_SIZE, UC_DSRAM_START are identical for all devices */
108  #define UC_DSRAM_SIZE (0x2000U)
109  /* Flash */
110  #define UC_FLASH0_SIZE (0x8000U)
111  #define UC_FLASH1_SIZE (0x1E000U)
112  /* Features */
113  #define UC_FEATURE_DATAFLASH
114  #define UC_FEATURE_SDADC
115  #define UC_FEATURE_48PIN
116 
117  /* TLE9883_2QTW62S: 48pin, 31K RAM, 248K Flash1 (8K Crypto-Lib in Flash1), 32K Flash0 (0...28k Data Flash in Flash0), CAN FD, SDADC */
118 #elif defined(TLE9883_2QTW62S)
119  #define UC_FAMILY TLE98
120  #define UC_SERIES TLE988
121  #define UC_DEVICE TLE9893
122  #define UC_PACKAGE TQFP48
123  /* RAM */
124  /* UC_PSRAM_START, UC_PSRAM_SIZE, UC_DSRAM_START are identical for all devices */
125  #define UC_DSRAM_SIZE (0x5C00U)
126  /* Flash */
127  #define UC_FLASH0_SIZE (0x8000U)
128  #define UC_FLASH1_SIZE (0x3E000U)
129  /* Features */
130  #define UC_FEATURE_CRYPTO_LIB
131  #define UC_FEATURE_DATAFLASH
132  #define UC_FEATURE_SDADC
133  #define UC_FEATURE_48PIN
134 
135  /* TLE9883QTA62: 48pin, 31K RAM, 248K Flash1 (no Crypto-Lib), 32K Flash0 (0...28k Data Flash in Flash0), CAN FD, No SDADC */
136 #elif defined(TLE9883QTA62)
137  #define UC_FAMILY TLE98
138  #define UC_SERIES TLE988
139  #define UC_DEVICE TLE9893
140  #define UC_PACKAGE TQFP48
141  /* RAM */
142  /* UC_PSRAM_START, UC_PSRAM_SIZE, UC_DSRAM_START are identical for all devices */
143  #define UC_DSRAM_SIZE (0x5C00U)
144  /* Flash */
145  #define UC_FLASH0_SIZE (0x8000U)
146  #define UC_FLASH1_SIZE (0x3E000U)
147  /* Features */
148  #define UC_FEATURE_DATAFLASH
149  #define UC_FEATURE_48PIN
150 
151  /* TLE989x devices */
152  /* TLE9891QTA61: 48pin, 16K RAM, 120K Flash1 (no Crypto-Lib), 32K Flash0 (0...28k Data Flash in Flash0), CAN2.0, No SDADC */
153 #elif defined(TLE9891QTA61)
154  #define UC_FAMILY TLE98
155  #define UC_SERIES TLE989
156  #define UC_DEVICE TLE9893
157  #define UC_PACKAGE TQFP48
158  /* RAM */
159  /* UC_PSRAM_START, UC_PSRAM_SIZE, UC_DSRAM_START are identical for all devices */
160  #define UC_DSRAM_SIZE (0x2000U)
161  /* Flash */
162  #define UC_FLASH0_SIZE (0x8000U)
163  #define UC_FLASH1_SIZE (0x1E000U)
164  /* Features */
165  #define UC_FEATURE_DATAFLASH
166  #define UC_FEATURE_48PIN
167 
168  /* TLE9891_2QTW60: 48pin, 16K RAM, 120K Flash1 (no Crypto-Lib), 32K Flash0 (0...28k Data Flash in Flash0), CAN2.0, SDADC */
169 #elif defined(TLE9891_2QTW60)
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_SDADC
183  #define UC_FEATURE_48PIN
184 
185  /* TLE9891_2QTW61: 48pin, 16K RAM, 120K Flash1 (no Crypto-Lib), 32K Flash0 (0...28k Data Flash in Flash0), CAN2.0, SDADC */
186 #elif defined(TLE9891_2QTW61)
187  #define UC_FAMILY TLE98
188  #define UC_SERIES TLE989
189  #define UC_DEVICE TLE9893
190  #define UC_PACKAGE TQFP48
191  /* RAM */
192  /* UC_PSRAM_START, UC_PSRAM_SIZE, UC_DSRAM_START are identical for all devices */
193  #define UC_DSRAM_SIZE (0x2000U)
194  /* Flash */
195  #define UC_FLASH0_SIZE (0x8000U)
196  #define UC_FLASH1_SIZE (0x1E000U)
197  /* Features */
198  #define UC_FEATURE_DATAFLASH
199  #define UC_FEATURE_SDADC
200  #define UC_FEATURE_48PIN
201 
202  /* TLE9893QKW62S: 64pin, 31K RAM, 248K Flash1 (8K Crypto-Lib in Flash1), 32K Flash0 (0...28k Data Flash in Flash0), CAN FD, No SDADC */
203 #elif defined(TLE9893QKW62S)
204  #define UC_FAMILY TLE98
205  #define UC_SERIES TLE989
206  #define UC_DEVICE TLE9893
207  #define UC_PACKAGE LQFP64
208  /* RAM */
209  /* UC_PSRAM_START, UC_PSRAM_SIZE, UC_DSRAM_START are identical for all devices */
210  #define UC_DSRAM_SIZE (0x5C00U)
211  /* Flash */
212  #define UC_FLASH0_SIZE (0x8000U)
213  #define UC_FLASH1_SIZE (0x3E000U)
214  /* Features */
215  #define UC_FEATURE_CRYPTO_LIB
216  #define UC_FEATURE_DATAFLASH
217  #define UC_FEATURE_64PIN
218 
219  /* TLE9893_2QTA62: 48pin, 31K RAM, 248K Flash1 (no Crypto-Lib), 32K Flash0 (0...28k Data Flash in Flash0), CAN FD, SDADC */
220 #elif defined(TLE9893_2QTA62)
221  #define UC_FAMILY TLE98
222  #define UC_SERIES TLE989
223  #define UC_DEVICE TLE9893
224  #define UC_PACKAGE TQFP48
225  /* RAM */
226  /* UC_PSRAM_START, UC_PSRAM_SIZE, UC_DSRAM_START are identical for all devices */
227  #define UC_DSRAM_SIZE (0x5C00U)
228  /* Flash */
229  #define UC_FLASH0_SIZE (0x8000U)
230  #define UC_FLASH1_SIZE (0x3E000U)
231  /* Features */
232  #define UC_FEATURE_DATAFLASH
233  #define UC_FEATURE_SDADC
234  #define UC_FEATURE_48PIN
235 
236  /* TLE9893_2QTW62S: 48pin, 31K RAM, 248K Flash1 (8K Crypto-Lib in Flash1), 32K Flash0 (0...28k Data Flash in Flash0), CAN FD, SDADC */
237 #elif defined(TLE9893_2QTW62S)
238  #define UC_FAMILY TLE98
239  #define UC_SERIES TLE989
240  #define UC_DEVICE TLE9893
241  #define UC_PACKAGE TQFP48
242  /* RAM */
243  /* UC_PSRAM_START, UC_PSRAM_SIZE, UC_DSRAM_START are identical for all devices */
244  #define UC_DSRAM_SIZE (0x5C00U)
245  /* Flash */
246  #define UC_FLASH0_SIZE (0x8000U)
247  #define UC_FLASH1_SIZE (0x3E000U)
248  /* Features */
249  #define UC_FEATURE_CRYPTO_LIB
250  #define UC_FEATURE_DATAFLASH
251  #define UC_FEATURE_SDADC
252  #define UC_FEATURE_48PIN
253 
254  /* TLE9893_2QTA62S: 48pin, 31K RAM, 248K Flash1 (8K Crypto-Lib in Flash1), 32K Flash0 (0...28k Data Flash in Flash0), CAN FD, SDADC */
255 #elif defined(TLE9893_2QTA62S)
256  #define UC_FAMILY TLE98
257  #define UC_SERIES TLE989
258  #define UC_DEVICE TLE9893
259  #define UC_PACKAGE TQFP48
260  /* RAM */
261  /* UC_PSRAM_START, UC_PSRAM_SIZE, UC_DSRAM_START are identical for all devices */
262  #define UC_DSRAM_SIZE (0x5C00U)
263  /* Flash */
264  #define UC_FLASH0_SIZE (0x8000U)
265  #define UC_FLASH1_SIZE (0x3E000U)
266  /* Features */
267  #define UC_FEATURE_CRYPTO_LIB
268  #define UC_FEATURE_DATAFLASH
269  #define UC_FEATURE_SDADC
270  #define UC_FEATURE_48PIN
271 
272  /* TLE9893_2QKW62S: 64pin, 31K RAM, 248K Flash1 (8K Crypto-Lib in Flash1), 32K Flash0 (0...28k Data Flash in Flash0), CAN FD, SDADC */
273 #elif defined(TLE9893_2QKW62S)
274  #define UC_FAMILY TLE98
275  #define UC_SERIES TLE989
276  #define UC_DEVICE TLE9893
277  #define UC_PACKAGE LQFP64
278  /* RAM */
279  /* UC_PSRAM_START, UC_PSRAM_SIZE, UC_DSRAM_START are identical for all devices */
280  #define UC_DSRAM_SIZE (0x5C00U)
281  /* Flash */
282  #define UC_FLASH0_SIZE (0x8000U)
283  #define UC_FLASH1_SIZE (0x3E000U)
284  /* Features */
285  #define UC_FEATURE_CRYPTO_LIB
286  #define UC_FEATURE_DATAFLASH
287  #define UC_FEATURE_SDADC
288  #define UC_FEATURE_64PIN
289 
290  /* TLE9893_2QKW62S_internal: 64pin, 31K RAM, 248K Flash1 (8K Crypto-Lib in Flash1), 32K Flash0 (0...28k Data Flash in Flash0), CAN FD, SDADC */
291 #elif defined(TLE9893_2QKW62S_internal)
292  #define UC_FAMILY TLE98
293  #define UC_SERIES TLE989
294  #define UC_DEVICE TLE9893
295  #define UC_PACKAGE LQFP64
296  /* RAM */
297  /* UC_PSRAM_START, UC_PSRAM_SIZE, UC_DSRAM_START are identical for all devices */
298  #define UC_DSRAM_SIZE (0x5C00U)
299  /* Flash */
300  #define UC_FLASH0_SIZE (0x8000U)
301  #define UC_FLASH1_SIZE (0x3E000U)
302  /* Features */
303  #define UC_FEATURE_CRYPTO_LIB
304  #define UC_FEATURE_DATAFLASH
305  #define UC_FEATURE_SDADC
306  #define UC_FEATURE_64PIN
307 
308 #else
309  #error "tle_device.h: device not supported"
310 #endif
311 
312 /* Define Memory - common for all TLE988x/9x devices */
313 /* RAM */
314 #define UC_PSRAM_START (0x18000000U)
315 #define UC_PSRAM_SIZE (0x2000U)
316 #define UC_DSRAM_START (0x18002000U)
317 /* Flash */
318 #define UC_FLASH_PAGE_SIZE (128U)
319 #define UC_FLASH_SECTOR_SIZE (0x1000U)
320 #define UC_FLASH0_START (0x11000000U)
321 #define UC_FLASH0_UBSL_START (UC_FLASH0_START)
322 #define UC_FLASH1_START (0x12002000U)
323 /* UC_FLASH0_UBSL_SIZE, UC_FLASH0_UDATA_START, UC_FLASH0_UDATA_SIZE depend on UBSL size setting */
324 
325 /*******************************************************************************
326 ** Definition of first page in FLASH0 **
327 *******************************************************************************/
328 #define UC_SNAC_START ".ARM.__at_0x11000000"
329 
330 
331 #if (UC_SERIES == 988)
332  #include "tle989x.h"
333 #elif (UC_SERIES == 989)
334  #include "tle989x.h"
335 #endif
336 #include "types.h"
337 
338 INLINE bool PtrRangeCheck(const void *ptr)
339 {
340  //lint --e{9034}
341  bool b_res;
342  b_res = false;
343 
344  /* check is input pointer resides inside the RAM */
345  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))))
346  {
347  b_res = true;
348  }
349 
350  return (b_res);
351 }
352 #endif
#define UC_DSRAM_SIZE
Definition: tle_variants.h:280
INLINE bool PtrRangeCheck(const void *ptr)
Definition: tle_variants.h:338
#define UC_PSRAM_SIZE
Definition: tle_variants.h:315
#define UC_DSRAM_START
Definition: tle_variants.h:316
#define UC_PSRAM_START
Definition: tle_variants.h:314
General type declarations.
#define INLINE
Definition: types.h:151
uint32_t uint32
32 bit unsigned value
Definition: types.h:206