3 /*******************************************************************************
\r
5 * This software is supplied by Renesas Electronics Corporation and is only
\r
6 * intended for use with Renesas products. No other uses are authorized. This
\r
7 * software is owned by Renesas Electronics Corporation and is protected under
\r
8 * all applicable laws, including copyright laws.
\r
9 * THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIES REGARDING
\r
10 * THIS SOFTWARE, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING BUT NOT
\r
11 * LIMITED TO WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE
\r
12 * AND NON-INFRINGEMENT. ALL SUCH WARRANTIES ARE EXPRESSLY DISCLAIMED.
\r
13 * TO THE MAXIMUM EXTENT PERMITTED NOT PROHIBITED BY LAW, NEITHER RENESAS
\r
14 * ELECTRONICS CORPORATION NOR ANY OF ITS AFFILIATED COMPANIES SHALL BE LIABLE
\r
15 * FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR
\r
16 * ANY REASON RELATED TO THIS SOFTWARE, EVEN IF RENESAS OR ITS AFFILIATES HAVE
\r
17 * BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
\r
18 * Renesas reserves the right, without notice, to make changes to this software
\r
19 * and to discontinue the availability of this software. By using this software,
\r
20 * you agree to the additional terms and conditions found by accessing the
\r
22 * http://www.renesas.com/disclaimer
\r
23 *******************************************************************************/
\r
29 * Created on: 01 Oct 2011
\r
31 * Reneses Electronics Europe Ltd
\r
35 /******************************************************************************
\r
37 ******************************************************************************/
\r
40 /******************************************************************************
\r
42 ******************************************************************************/
\r
43 #include "iodefine.h"
\r
47 /*****************************************************************************/
\r
49 /* Configure the CGC (Clock Generation Circuit) of the RX630 using the */
\r
50 /* using the 7 STEPS specified in cgc.h */
\r
52 /*****************************************************************************/
\r
55 /******************************************************************************
\r
57 Description : Initialises the CGC registers based upon the settings
\r
61 ******************************************************************************/
\r
67 SYSTEM.SOSCCR.BYTE = 0x00; /* Sub-clock oscillator ON */
\r
69 SYSTEM.SOSCCR.BYTE = 0x01; /* Sub-clock oscillator OFF */
\r
73 SYSTEM.HOCOPCR.BYTE = 0x00; /* HOCO PSU ON */
\r
74 SYSTEM.HOCOCR.BYTE = 0x00; /* HOCO ON */
\r
76 SYSTEM.HOCOPCR.BYTE = 0x01; /* HOCO PSU OFF */
\r
77 SYSTEM.HOCOCR.BYTE = 0x01; /* HOCO OFF */
\r
83 SYSTEM.MOSCWTCR.BYTE = 0x0e; /* Main Clock Oscillator Wait Control Register */
\r
85 SYSTEM.MOSCCR.BYTE = 0x00; /* EXTAL ON */
\r
87 SYSTEM.MOSCCR.BYTE = 0x01; /* EXTAL OFF */
\r
92 SYSTEM.MOSCWTCR.BYTE = 0x0e; /* Main Clock Oscillator Wait Control Register */
\r
94 SYSTEM.MOSCCR.BYTE = 0x00; /* EXTAL ON */
\r
96 SYSTEM.PLLWTCR.BYTE = 0x0e; /* PLL Wait Control Register */
\r
97 /* 2097152 states */
\r
99 SYSTEM.PLLCR2.BYTE = 0x01; /* PLL OFF */
\r
101 #if (PLL_INPUT_FREQ_DIV == 1)
\r
102 SYSTEM.PLLCR.BIT.PLIDIV = 0;
\r
103 #elif (PLL_INPUT_FREQ_DIV == 2)
\r
104 SYSTEM.PLLCR.BIT.PLIDIV = 1;
\r
105 #elif (PLL_INPUT_FREQ_DIV == 4)
\r
106 SYSTEM.PLLCR.BIT.PLIDIV = 2;
\r
108 SYSTEM.PLLCR.BIT.PLIDIV = 0;
\r
110 SYSTEM.PLLCR.BIT.STC = (PLL_MUL - 1);
\r
112 /* External oscillation input selection */
\r
113 SYSTEM.PLLCR2.BYTE = 0x00; /* PLL ON */
\r
115 SYSTEM.PLLCR2.BYTE = 0x01; /* PLL OFF */
\r
118 for(i = 0; i<2500; i++) /* Wait for stabilisation of */
\r
119 { /* HOCO, LOCO, PLL and main clock */
\r
121 /* (2500 x 1/125kHz = 20ms) */
\r
124 SYSTEM.SCKCR.LONG = FCLK_SCKCR |
\r
134 SYSTEM.SCKCR2.WORD = UCK_SCKCR2 |
\r
138 SYSTEM.SCKCR3.WORD = CLK_SOURCE;
\r