作者:幸运的双鱼

免责声明: 本文为个人学习笔记及总结,仅代表个人观点,尽可能保证内容准确性。复制/转发请注明来源/作者。

  • 时钟介绍

  •       Mcu模块主要是配置时钟,部分模块依赖于配置的时钟,在不是很了解时钟的情况下,建议把所有时钟都打开,避免后面因为某个模块忘记配时钟,导致无法正常工作,这种情况往往很难发现,浪费很多时间和精力。

    时钟图:《S32K-RM》 Figure 27-1 P560

    EB的配置就是根据以上时钟链路进行配置,从而设定各个时钟源的频率。

  • 配置界面

  • 1.General

    2.McuResetReasonConf

    默认配置即可

    3.McuSIMConfig

    其他配置默认即可。

    4.McuClockSettingConfig

    初学者可将所有时钟都打开,后续熟练掌握后再关闭不使用的时钟。

    Run System Clock Select:PLL

    4.1McuSOSClockConfig

    本文将SOS和PLL配置示例,其他时钟依照相同模式配置即可。

    SOSC Frequency设置为8M,设置Div的值可以得到后面的时钟频率,计算如下

    SOSC Divider 1 = 1,SOSC Div2 Frequency = 8M/1 = 8M

    SOSC Divider 2 = 1,SOSC Div2 Frequency = 8M/1 = 8M

    4.2McuSystemPll

    这里配置分频系数为1、倍频系数为40,这样外部8MHz晶振经过40倍倍频后得到320MHz的压控振荡时钟,再经过二分频就得到了160MHz的PLL输出时钟。

    时钟树如下图:

    4.3其他时钟贴图:

    4.4McuClockReferencePoint

    在配置其他需要时钟的模块,记得到Mcu模块中将参考时钟使能,本案例设置PIT定时器的时钟。

    4.5McuPeripheralClockConfig

    此表格中的配置内容为芯片所有外设的时钟配置, 软件中使用到的外设模块需要在此配置时钟源及时钟分频信息, 并使能相关的模块时钟, 才可使用外设模块.

    5.代码

        /* Write your code here */
    	Mcu_Init(&McuModuleConfiguration);     /* 初始化MCU驱动模块(如掉电设置、时钟配置、RAM配置等)*/
    	S_ReturnType = Mcu_InitClock(McuClockSettingConfig_0);/* 初始化PLL时钟和其他相关时钟*/
    	ResetType = Mcu_GetResetReason();
    #if 1
        while(MCU_PLL_LOCKED != Mcu_GetPllStatus())
        {/* wait until all enabled PLLs are locked */}
    #endif
        S_ReturnType = Mcu_DistributePllClock();/* enable PLL clock */

    作者:幸运的双鱼

    物联沃分享整理
    物联沃-IOTWORD物联网 » EB配置S32K144 MCAL的Mcu

    发表回复