kopia lustrzana https://github.com/OpenRTX/OpenRTX
Increased MK22FN512xx clock frequency to ~120MHz
rodzic
18709607b3
commit
7b442047ec
|
@ -94,7 +94,7 @@ extern "C" {
|
||||||
|
|
||||||
/* Define clock source values */
|
/* Define clock source values */
|
||||||
|
|
||||||
#define CPU_XTAL_CLK_HZ 8000000u /* Value of the external crystal or oscillator clock frequency in Hz */
|
#define CPU_XTAL_CLK_HZ 12288000u /* Value of the external crystal or oscillator clock frequency in Hz */
|
||||||
#define CPU_XTAL32k_CLK_HZ 32768u /* Value of the external 32k crystal or oscillator clock frequency in Hz */
|
#define CPU_XTAL32k_CLK_HZ 32768u /* Value of the external 32k crystal or oscillator clock frequency in Hz */
|
||||||
#define CPU_INT_SLOW_CLK_HZ 32768u /* Value of the slow internal oscillator clock frequency in Hz */
|
#define CPU_INT_SLOW_CLK_HZ 32768u /* Value of the slow internal oscillator clock frequency in Hz */
|
||||||
#define CPU_INT_FAST_CLK_HZ 4000000u /* Value of the fast internal oscillator clock frequency in Hz */
|
#define CPU_INT_FAST_CLK_HZ 4000000u /* Value of the fast internal oscillator clock frequency in Hz */
|
||||||
|
@ -108,7 +108,7 @@ extern "C" {
|
||||||
/* SMC_PMPROT: AHSRUN=1,AVLP=1,ALLS=1,AVLLS=1 */
|
/* SMC_PMPROT: AHSRUN=1,AVLP=1,ALLS=1,AVLLS=1 */
|
||||||
#define SYSTEM_SMC_PMPROT_VALUE 0xAAU /* SMC_PMPROT */
|
#define SYSTEM_SMC_PMPROT_VALUE 0xAAU /* SMC_PMPROT */
|
||||||
|
|
||||||
#define DEFAULT_SYSTEM_CLOCK 20971520u /* Default System clock value */
|
#define DEFAULT_SYSTEM_CLOCK 119808000u //20971520u /* Default System clock value */
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -20,6 +20,7 @@
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include "MK22F51212.h"
|
#include "MK22F51212.h"
|
||||||
|
#include "system_MK22F51212.h"
|
||||||
|
|
||||||
///< Entry point for system bootstrap after initial configurations.
|
///< Entry point for system bootstrap after initial configurations.
|
||||||
void systemBootstrap();
|
void systemBootstrap();
|
||||||
|
@ -31,9 +32,38 @@ void Reset_Handler()
|
||||||
__disable_irq();
|
__disable_irq();
|
||||||
|
|
||||||
// Call CMSIS init function, it's safe to do it here.
|
// Call CMSIS init function, it's safe to do it here.
|
||||||
// This function initialises VTOR, clock-tree and flash memory wait states.
|
// This function initialises VTOR.
|
||||||
SystemInit();
|
SystemInit();
|
||||||
|
|
||||||
|
// Initialise clock tree for full speed run, since SystemInit by NXP does not.
|
||||||
|
//
|
||||||
|
// Clock tree configuration:
|
||||||
|
// - External clock input: 12.288MHz from HR_C6000 resonator
|
||||||
|
// - PLL input divider: 4 -> PLL reference clock is 3.072MHz
|
||||||
|
// - PLL multiplier: 39 -> PLL output clock is 119.808MHz
|
||||||
|
//
|
||||||
|
// - Core and system clock @ 119.808MHz
|
||||||
|
// - Bus clock @ 59.904MHz
|
||||||
|
// - FlexBus clock @ 29.952MHz
|
||||||
|
// - Flash clock @ 23.962MHz
|
||||||
|
|
||||||
|
SIM->CLKDIV1 = SIM_CLKDIV1_OUTDIV2(1) // Bus clock divider = 2
|
||||||
|
| SIM_CLKDIV1_OUTDIV3(3) // FlexBus clock divider = 4
|
||||||
|
| SIM_CLKDIV1_OUTDIV4(4); // Flash clock divider = 5
|
||||||
|
|
||||||
|
MCG->C2 |= MCG_C2_RANGE(2); // Very high frequency range
|
||||||
|
OSC->CR |= OSC_CR_ERCLKEN(1); // Enable external reference clock
|
||||||
|
|
||||||
|
MCG->C6 |= MCG_C6_VDIV0(15); // PLL multiplier set to 39
|
||||||
|
MCG->C5 |= MCG_C5_PRDIV0(3) // Divide PLL ref clk by 4
|
||||||
|
| MCG_C5_PLLCLKEN0(1); // Enable PLL clock
|
||||||
|
|
||||||
|
SMC->PMPROT = SMC_PMPROT_AHSRUN(1); // Allow HSRUN mode
|
||||||
|
SMC->PMCTRL = SMC_PMCTRL_RUNM(3); // Switch to HSRUN mode
|
||||||
|
while((SMC->PMSTAT & 0x80) == 0) ; // Wait till switch to HSRUN is effective
|
||||||
|
|
||||||
|
MCG->C6 |= MCG_C6_PLLS(1); // Connect PLL to MCG source
|
||||||
|
|
||||||
//These are defined in the linker script
|
//These are defined in the linker script
|
||||||
extern unsigned char _etext asm("_etext");
|
extern unsigned char _etext asm("_etext");
|
||||||
extern unsigned char _data asm("_data");
|
extern unsigned char _data asm("_data");
|
||||||
|
|
Ładowanie…
Reference in New Issue