EB配置S32K144 MCAL的Mcu
作者:幸运的双鱼
免责声明: 本文为个人学习笔记及总结,仅代表个人观点,尽可能保证内容准确性。复制/转发请注明来源/作者。
时钟介绍
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 */
作者:幸运的双鱼