KEA系列MCU时钟简介
一、片上时钟源(主要有三个)
1、Internal Clock Source (ICS) module(内部时钟源)
2、System Oscillator (OSC) module(系统振荡器)
3、Low-Power Oscillator (LPO) module(低功耗振荡器),多为RTC和看门狗使用。
二、KEA64的时钟框图
详细的各个时钟源信息如下:
core clock:最高40Mhz
system clock:最高40Mhz
bus clock:最高20Mhz(默认为系统时钟的二分频)
Internal reference (ICSIRCLK):31.25–39.0625 kHz IRC
FLL out clock (ICSFLLCLK):32-40 MHz System OSC
三、配置系统时钟40Mhz,总线时钟20Mhz
/***********************************************************************************************
*
* @brief CLK_Init - Initialize Core Clock to 40MHz, Bus Clock to 20MHz
* @param none
* @return none
*
************************************************************************************************/
void Clk_Init()
{
ICS_C1|=ICS_C1_IRCLKEN_MASK; /* Enable the internal reference clock*/
ICS_C3= 0x90; /* Reference clock frequency = 31.25 kHz*/
while(!(ICS_S & ICS_S_LOCK_MASK)); /* Wait for PLL, running at 40 MHz (1280 * 31.25 kHz) */
ICS_C2|=ICS_C2_BDIV(1); /* BDIV=2, Bus clock = 20 MHz*/
ICS_S |= ICS_S_LOLS_MASK; /* Clear Loss of lock sticky bit */
}
官方的例程中,ICS_C3一般会配置成0x50(十进制为80,代码注释频率为39.0625Khz,时钟周期为25.6us)、0x90(十进制为144,代码注释频率为31.25Khz,时钟周期为32us),两个周期相差6.4us,144-80=64,所以ICS_C3每增加1,相应的时间周期增加0.1us。
按照资料的说法:通过控制内部基准时钟周期来控制慢速内部基准时钟频率,这些位采用二进制加权,位1的调整量是位0的两倍,提高SCTRIM的二进制值会加长周期,降低该值会缩短周期。