2 * @brief System Driver Source File
\r
3 * @date 05.November.2010
\r
6 * This file contains:
\r
9 * which are relevant for the System driver.
\r
12 /* (c) Texas Instruments 2010, All rights reserved. */
\r
17 #include "sys_system.h"
\r
20 /** @fn void systemInit(void)
\r
21 * @brief Initializes System Driver
\r
23 * This function initializes the System driver.
\r
28 void systemInit(void)
\r
30 /** @b Initialize @b Flash @b Wrapper: */
\r
32 /** - Setup flash read mode, address wait states and data wait states */
\r
33 flashWREG->FRDCNTL = 0x01000000U
\r
37 /** @b Initialize @b Pll: */
\r
39 /** - Setup pll control register 1:
\r
40 * - Setup reset on oscillator slip
\r
41 * - Setup bypass on pll slip
\r
42 * - Setup Pll output clock divider
\r
43 * - Setup reset on oscillator fail
\r
44 * - Setup reference clock divider
\r
45 * - Setup Pll multiplier
\r
50 systemREG1->PLLCTL1 = 0x00000000U
\r
60 systemREG1->PLLCTL1 = 0x00000000U
\r
68 /** - Setup pll control register 1
\r
69 * - Enable/Disable frequency modulation
\r
70 * - Setup spreading rate
\r
71 * - Setup bandwidth adjustment
\r
72 * - Setup internal Pll output divider
\r
73 * - Setup spreading amount
\r
75 systemREG1->PLLCTL2 = 0x00000000U
\r
82 /** @b Initialize @b Clock @b Tree: */
\r
84 /** - Start clock source lock */
\r
85 systemREG1->CSDISCLR = 0x00000000U
\r
91 /** - Wait for until clocks are locked */
\r
92 while ((systemREG1->CSVSTAT & 0x00000002U) == 0x00); /* wait for PLL */
\r
94 /** - Setup GCLK, HCLK and VCLK clock source for normal operation, power down mode and after wakeup */
\r
95 systemREG1->GHVSRC = (SYS_PLL << 24U)
\r
99 /** - Power-up all peripharals */
\r
100 pcrREG->PSPWRDWNCLR0 = 0xFFFFFFFFU;
\r
101 pcrREG->PSPWRDWNCLR1 = 0xFFFFFFFFU;
\r
102 pcrREG->PSPWRDWNCLR2 = 0xFFFFFFFFU;
\r
103 pcrREG->PSPWRDWNCLR3 = 0xFFFFFFFFU;
\r
105 /** - Setup synchronous peripheral clock dividers for VCLK1 and VCLK2 */
\r
106 systemREG1->PENA = 0U;
\r
107 systemREG1->VCLKR = 15U;
\r
108 systemREG1->VCLK2R = 1U;
\r
109 systemREG1->VCLKR = 1U;
\r
111 systemREG2->CLK2CNTRL = (1U << 8U)
\r
114 /** - Setup RTICLK1 and RTICLK2 clocks */
\r
115 systemREG1->RCLKSRC = (1U << 24U)
\r
116 | (SYS_VCLK << 16U)
\r
120 /** - Setup asynchronous peripheral clock sources for AVCLK1 and AVCLK2 */
\r
121 systemREG1->VCLKASRC = (SYS_FR_PLL << 8U)
\r
124 /** - Setup asynchronous peripheral clock sources for AVCLK3 and AVCLK4 */
\r
125 systemREG2->VCLKACON1 = (0U << 24U)
\r
127 | (SYS_EXTERNAL2 << 16U)
\r
132 /** - Enable Peripherals */
\r
133 systemREG1->PENA = 1U;
\r
135 /** @note: HCLK >= VCLK2 >= VCLK_sys */
\r