《Mcal》--MCU模块
一、MCU模块的主要功能
- 控制系统时钟的产生。
- 控制系统通用模块,该模块会涉及到Adc、Ftm等外设的配置。
- 控制外设时钟。
- 控制MCU运行的模式。
- 初始化定义RAM Section。
比较重要的是时钟的配置。
二、系统时钟的配置
1、芯片时钟树
要想弄明白时钟配置,需要参考芯片手册中的系统时钟树:
图1 系统时钟树
对于时钟树做一个总结,主要是对产生的时钟进行一个分类,并总结他们的来源:
- PREDIV_SYS_CLK/CORE_CLK/SYS_CLK/BUS_CLK/FLASH_CLK
SOSC->SPLL_CLK
FIRC
SIRC
SOSC
- Asynchronous Peripheral Sources
SPLL
FIRC
SIRC
SOSC
- CLKOUT
Asynchronous Peripheral Sources
SCG_CLKOUT
HCLK
BUS_CLK
.........
- LPO_CLK
LPO128K_CLK
LPO32K_CLK
LPO1K_CLK
- RTC_CLKOUT
RTC_CLK
LPO1K_CLK
重要的是前两个CLK。
2、系统晶振配置
与McuFIRCClockConfig、McuSIRCClockConfig、McuSystemPll配置类似。
图2 系统晶振配置
用于配置图1中的OSC,会影响到SPLL_CLK和和SOSC_CLK。
- SOSC Div1
图1中SOSCDIV1的值,影响到SOSCDIV1_CLK。
- SOSC Div1 Frequency
SOSCDIV1_CLK的值,单位位Hz。
- SOSC External Reference Select
选择SOSC_CLK是外部晶振还是内部晶振。
- SOSC Range Select
选择系统晶振的范围。
中频范围是 4 兆赫兹到 8 兆赫兹。
高频范围是 8 兆赫兹到 32 兆赫兹。
使用PLL的情况下,只能选择高频范围。
3、不同模式下的时钟配置
McuRunClockConfig、McuHsrunClockConfig、McuVlprClockConfig
主要用于配置芯片在RUN、HSRUN、VLPR三种模式下的第一类CLK的配置。
三、系统通用模块的配置
系统通用模块的配置主要包括Adc和FTM,将再具体涉及到这些外设的时候进行详细介绍。
图3 系统通用模块的配置
四、外设时钟的配置
图4 外设时钟配置
五、参考时钟配置
图5 参考时钟
有些外设在配置的时候需要有参考时钟,在这里创建,然后引用就可以。