]> git.sur5r.net Git - freertos/blob - FreeRTOS/Demo/CORTEX_M4F_Infineon_XMC4500_Keil/System_XMC4500.h
73eb6d5900764e0f029be2f8be42aa90c4127be3
[freertos] / FreeRTOS / Demo / CORTEX_M4F_Infineon_XMC4500_Keil / System_XMC4500.h
1 /**************************************************************************//**\r
2  * @file     system_XMC4500.h\r
3  * @brief    Header file for the XMC4500-Series systeminit\r
4  *           \r
5  * @version  V1.6\r
6  * @date     23. October 2012\r
7  *\r
8  * @note\r
9  * Copyright (C) 2011 Infineon Technologies AG. All rights reserved.\r
10 \r
11  *\r
12  * @par\r
13  * Infineon Technologies AG (Infineon) is supplying this software for use with Infineon\92s microcontrollers.  \r
14  * This file can be freely distributed within development tools that are supporting such microcontrollers. \r
15 \r
16  *\r
17  * @par\r
18  * THIS SOFTWARE IS PROVIDED "AS IS".  NO WARRANTIES, WHETHER EXPRESS, IMPLIED\r
19  * OR STATUTORY, INCLUDING, BUT NOT LIMITED TO, IMPLIED WARRANTIES OF\r
20  * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE.\r
21  * INFINEON SHALL NOT, IN ANY CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR\r
22  * CONSEQUENTIAL DAMAGES, FOR ANY REASON WHATSOEVER.\r
23  *\r
24  *\r
25  ******************************************************************************/\r
26 \r
27 \r
28 #ifndef __SYSTEM_XMC4500_H\r
29 #define __SYSTEM_XMC4500_H\r
30 \r
31 #ifdef __cplusplus\r
32 extern "C" {\r
33 #endif\r
34 \r
35 #include <stdint.h>\r
36 \r
37 extern uint32_t SystemCoreClock;     /*!< System Clock Frequency (Core Clock)  */\r
38 \r
39 /**\r
40  * Initialize the system\r
41  *\r
42  * @param  none\r
43  * @return none\r
44  *\r
45  * @brief  Setup the microcontroller system.\r
46  *         Initialize the System.\r
47  */\r
48 extern void SystemInit (void);\r
49 \r
50 \r
51 /**\r
52  * Update SystemCoreClock variable\r
53  *\r
54  * @param  none\r
55  * @return none\r
56  *\r
57  * @brief  Updates the SystemCoreClock with current core Clock\r
58  *         retrieved from cpu registers.\r
59  */\r
60 extern void SystemCoreClockUpdate (void);\r
61 \r
62 /* this weak function enables DAVE3 clock App usage */          \r
63 extern uint32_t AllowPLLInitByStartup(void);                            \r
64 \r
65 \r
66 /* clock definitions, do not modify! */\r
67 #define SCU_CLOCK_CRYSTAL              1\r
68 \r
69                                 \r
70                                 \r
71 /*                              \r
72  * mandatory clock parameters **************************************************                                \r
73  */                             \r
74 /* source for clock generation                          \r
75  * range: SCU_CLOCK_CRYSTAL (crystal or external clock at crystal input)                                \r
76  * mandatory for old system_xmc4500.c files - please do not remove!!!                                   \r
77  **************************************************************************************/                                \r
78                                 \r
79 #define SCU_PLL_CLOCK_INPUT     SCU_CLOCK_CRYSTAL\r
80 #define CLOCK_OSC_HP    24000000\r
81 #define CLOCK_BACK_UP   24000000                 \r
82 #define CLOCK_CRYSTAL_FREQUENCY 12000000                \r
83 #define SYSTEM_FREQUENCY        120000000               \r
84                                 \r
85 /* OSC_HP setup parameters */                           \r
86 #define OSC_HP_MODE     0               \r
87 #define OSCHPWDGDIV 2\r
88                                 \r
89 /* MAIN PLL setup parameters */                         \r
90                                 \r
91                                 \r
92 #define         PLL_K1DIV       1               \r
93 #define         PLL_K2DIV       3               \r
94 #define         PLL_PDIV        1               \r
95 #define         PLL_NDIV        79\r
96                 \r
97                                 \r
98                                 \r
99 #define         PLL_K2DIV_STEP_1        19      //PLL output is 24Mhz   \r
100 #define         PLL_K2DIV_STEP_2        7       //PLL output to 60Mhz   \r
101 #define         PLL_K2DIV_STEP_3        4       //PLL output to 96Mhz   \r
102                                 \r
103                                 \r
104                 \r
105 #define         USBPLL_PDIV     1               \r
106 #define         USBPLL_NDIV     15              \r
107 \r
108 \r
109 #ifdef __cplusplus\r
110 }\r
111 #endif\r
112 \r
113 \r
114 #endif\r