S32K14x MCAL配置之MCU
-
一.文章简介
本文主要介绍如何使用EB配置MCU模块。MCU模块负责配置S32K14x的系统时钟和各个外设时钟,并未其他模块提供参考时钟。 -
二.时钟架构
S32K14x时钟架构如下(S32K-RM 538页)
S32K的大部分时钟都是通过SCG(System Clock Generator)模块控制。SCG模块一共有三个时钟源:
1、Internal refrences(内部晶振)
2、External Crystals (外部晶振)
3、exteranl clocks (外部时钟输入)
这里我选择外部晶振为SCG时钟源,PLL作为系统时钟。 -
三、外部晶振与PLL
在本文的硬件环境中,EXTAL的频率为12MHz。因此需要将SOSC的频率配置为12MHZ。
这里将SOSC的频率配置为12000000Hz。Divider 1与Divider 2通过分频为时钟SOSCDIV1_CLK 和SOSCDIV2_CLK。
PLL只有一个时钟来源SOSC,因此PLL的输入时钟必须与SOSC一致。
PLL经过参考时钟分频(PREDIV)和倍乘系数(MULT)得到VCO_CLK,VCO_CLK除以2得到SPLL_CLK。
SCG支持三种运行模式:
1、RUN
2、HSRUN
3、VLPRUN
HSRUN Mode 下System Clock Source 有两种时钟源。
1、Fast IRC(FIRC_CLK)
2、System Pll(SPLL_CLK) -
四、外设时钟
MCAL其他模块引用MCU的外设时钟时,主要通过引用ClockRefrencePoint来实现。每个外设模块都需要配置不同的参考时钟。
可以通过添加McuClockReferencePoint来新增外设模块的参考时钟,每个外设的配置不尽相同,请参考S32K14x参考手册545也Table 27-8 和Table27-9。截取部分表格如下:
以SPI为例,可以看到SPI一共有四种时钟选择。
1、SOSCDIV2_CLK (PCS = 001b)
2、SIRCDIV2_CLK (PCS = 010b)
3、FIRCDIV2_CLK (PCS = 011b)
4、SPLLDIV2_CLK (PCS = 110b)
增加SPI ClockReference Point,选择SOSCDIV2_CLK为时钟源。