4 * Copyright 2010 Texas Instruments, Inc.
\r
5 ******************************************************************************/
\r
7 #include "hal_MSP-EXP430F5438.h"
\r
9 /**********************************************************************//**
\r
10 * @brief Initializes ACLK, MCLK, SMCLK outputs on P11.0, P11.1,
\r
11 * and P11.2, respectively.
\r
16 *************************************************************************/
\r
17 void halBoardOutputSystemClock(void) //outputs clock to testpoints
\r
19 CLK_PORT_DIR |= 0x07;
\r
20 CLK_PORT_SEL |= 0x07;
\r
23 /**********************************************************************//**
\r
24 * @brief Stops the output of ACLK, MCLK, SMCLK on P11.0, P11.1, and P11.2.
\r
29 *************************************************************************/
\r
30 void halBoardStopOutputSystemClock(void)
\r
32 CLK_PORT_OUT &= ~0x07;
\r
33 CLK_PORT_DIR |= 0x07;
\r
34 CLK_PORT_SEL &= ~0x07;
\r
37 /**********************************************************************//**
\r
38 * @brief Initializes all GPIO configurations.
\r
43 *************************************************************************/
\r
44 void halBoardInit(void)
\r
60 PEDIR = 0xFEFF; // P10.0 to USB RST pin,
\r
61 // ...if enabled with J5
\r
70 /**********************************************************************//**
\r
71 * @brief Set function for MCLK frequency.
\r
75 *************************************************************************/
\r
76 void hal430SetSystemClock(unsigned long req_clock_rate, unsigned long ref_clock_rate)
\r
78 /* Convert a Hz value to a KHz value, as required
\r
79 * by the Init_FLL_Settle() function. */
\r
80 unsigned long ulCPU_Clock_KHz = req_clock_rate / 1000UL;
\r
82 //Make sure we aren't overclocking
\r
83 if(ulCPU_Clock_KHz > 25000L)
\r
85 ulCPU_Clock_KHz = 25000L;
\r
88 //Set VCore to a level sufficient for the requested clock speed.
\r
89 if(ulCPU_Clock_KHz <= 8000L)
\r
91 SetVCore(PMMCOREV_0);
\r
93 else if(ulCPU_Clock_KHz <= 12000L)
\r
95 SetVCore(PMMCOREV_1);
\r
97 else if(ulCPU_Clock_KHz <= 20000L)
\r
99 SetVCore(PMMCOREV_2);
\r
103 SetVCore(PMMCOREV_3);
\r
107 Init_FLL_Settle( ( unsigned short )ulCPU_Clock_KHz, req_clock_rate / ref_clock_rate );
\r