本帖最后由 FSL_TICS_Robin 于 2014-11-27 14:13 编辑
楼主小白,最近在用飞思卡尔的MK22FN512VLH12芯片做一个小的项目,开发时使用官方SDK中的代码搭建了程序的基本框架。在时钟上有个问题,希望能得到解答
进入main函数之后,我通过官方SDK的HAL函数,获取了几个关键的时钟信息如下:
MCG OUT Clock = 180MHz
Core Clock = 180Mhz
System Clock = 180Mhz
Bus Clock = 90MHz
FlexBus Clock = 90MHz
Flash Clock = 36MHz
当前的运行模式为High Speed Run;
MCG模式为PEE,使用外部12M晶振,PLL使能;
时钟的关系图如下:
QQ截图20141025195706.png (91.45 KB, 下载次数: 0)
下载附件
2014-10-25 19:57 上传
附上启动代码中system_MK22F51212.h的时钟配置信息: CLOCK_SETUP 已定义为4
#elif (CLOCK_SETUP == 4)
#define DEFAULT_SYSTEM_CLOCK 120000000u /* Default System clock value */
#define MCG_MODE MCG_MODE_PEE /* Clock generator mode */
/* MCG_C1: CLKS=0,FRDIV=3,IREFS=0,IRCLKEN=1,IREFSTEN=0 */
#define SYSTEM_MCG_C1_VALUE 0x1AU /* MCG_C1 */
/* MCG_C2: LOCRE0=0,FCFTRIM=0,RANGE=2,HGO=0,EREFS=1,LP=0,IRCS=0 */
#define SYSTEM_MCG_C2_VALUE 0x24U /* MCG_C2 */
/* MCG_C4: DMX32=0,DRST_DRS=0,FCTRIM=0,SCFTRIM=0 */
#define SYSTEM_MCG_C4_VALUE 0x00U /* MCG_C4 */
/* MCG_SC: ATME=0,ATMS=0,ATMF=0,FLTPRSRV=0,FCRDIV=0,LOCS0=0 */
#define SYSTEM_MCG_SC_VALUE 0x00U /* MCG_SC */
/* MCG_C5: PLLCLKEN0=0,PLLSTEN0=0,PRDIV0=1 */
#define SYSTEM_MCG_C5_VALUE 0x01U /* MCG_C5 */
/* MCG_C6: LOLIE0=0,PLLS=1,CME0=0,VDIV0=6 */
#define SYSTEM_MCG_C6_VALUE 0x46U /* MCG_C6 */
/* MCG_C7: OSCSEL=0 */
#define SYSTEM_MCG_C7_VALUE 0x00U /* MCG_C7 */
/* OSC_CR: ERCLKEN=1,EREFSTEN=0,SC2P=0,SC4P=0,SC8P=0,SC16P=0 */
#define SYSTEM_OSC_CR_VALUE 0x80U /* OSC_CR */
/* SMC_PMCTRL: RUNM=3,STOPA=0,STOPM=0 */
#define SYSTEM_SMC_PMCTRL_VALUE 0x60U /* SMC_PMCTRL */
/* SIM_CLKDIV1: OUTDIV1=0,OUTDIV2=1,OUTDIV3=1,OUTDIV4=4 */
#define SYSTEM_SIM_CLKDIV1_VALUE 0x01140000U /* SIM_CLKDIV1 */
/* SIM_CLKDIV2: USBDIV=4,USBFRAC=1 */
#define SYSTEM_SIM_CLKDIV2_VALUE 0x09U /* SIM_CLKDIV2 */
/* SIM_SOPT1: USBREGEN=0,USBSSTBY=0,USBVSTBY=0,OSC32KSEL=2,OSC32KOUT=0,RAMSIZE=0 */
#define SYSTEM_SIM_SOPT1_VALUE 0x00080000U /* SIM_SOPT1 */
/* SIM_SOPT2: LPUARTSRC=0,USBSRC=0,PLLFLLSEL=1,TRACECLKSEL=0,FBSL=0,CLKOUTSEL=0,RTCCLKOUTSEL=0 */
#define SYSTEM_SIM_SOPT2_VALUE 0x00010000U /* SIM_SOPT2 */
为何我获取的主频,比参考手册上的主频还要高呢?难道这款芯片支持超频么?
#define SYSTEM_MCG_C5_VALUE 0x01U /* MCG_C5 */
而实际应该讲外部时钟12Mhz进行3分频到4Mhz。手册中规定的PLL倍频的输入频率为2~4Mhz,这个寄存器没有修改,导致了最终输出的频率变高。
不过这样看起来也可以正常使用呢。
一周热门 更多>