每种芯片都有一套时钟方案,提供多种时钟供内部或外部电路使用。K60的时钟模式有八种,大体分为六种正常模式和两种省电模式,其中原始的时钟有内部和外部两种。
内部:Slow IRC 32.768khz, Fast IRC 4Mhz
外部:Crystal 50Mhz, RTC clock 32.768khz
K60芯片内部还提供有两种倍频方式,PLL和FLL。PLL称为锁相环,主要通过鉴相器元件实现输出时钟,对参考时钟的相位锁定。FLL称为锁频环,主要是通过鉴频器实现频率的输出。
FLL相关的时钟模式:FEI, FEE, FBI, FBE
PLL相关的时钟模式:PEE, PBE
FEI:由IRC提供时钟给FLL后,FLL倍频后提供给系统
FEE:由ERC提供时钟给FLL后,FLL倍频后提供给系统
FBI:由IRC提供时钟给系统
FBE:由ERC提供时钟给系统
PEE:由ERC提供时钟给PLL,PLL经倍频后提供给系统
PBE:由ERC作为时钟源提供给系统
上图是K60系统的Clock分配图,从图上可以得到以下信息:
1.系统内部或外部时钟主要有四个,Core/System Clock, Bus Clock, Flexbus Clock, Flash Clock。它们都是由SIM模式控制启用状态
2.以上时钟由MCGOUTCLK提供,而MCGOUTCLK的源时钟有三个,IRC, FLL/PLL, ERC。
3.FLL的时钟源有两个IRC(Fast Clock)和ERC。PLL的时钟源只有一个ERC。
MCG模块功能是Clock Selection和Multiplexing Clock。SIM模块的功能是Clock Divider和Clock Gating。这样就明白为什么会有八种时钟模式了。这八种模式需要通过相互间的转换才能使用,芯片上电复位后,会自动进入FEI模式,实际使用PEE械时,转换步骤如下:
FEI->FBE->PBE->PEE
上电时时钟源是由IRC提供,最终要切换到PLL,在切换至PLL前需要配置好ERC和PLL,PLL配置好后,只有在最后时才切换为MCGOUTCLK提供Clock,然后为MCGOUTCLK配置Divider,这样各部分电路就有了不同的频率。
开发板的外接时钟有两个,整个系统的50Mhz和RTC上的32.768Khz。目标是系统中的Core = 100Mhz, Bus = 50Mhz, FlexBus = 50Mhz, Flash = 25Mhz。