一步一步搭建S32K14x的AutoSar项目----MCAL之MCU模块

一、S32K144时钟树介绍:

1-1、时钟对于任何一款微控制器是很重要的,所以我们首先要了解S32K144的时钟树,才能为后续的MCAL中MCU模块配置做好准备,废话不多说,先上一张图片,聊了解下
对应芯片手册的第27章 Clock Distribution 。
1、SOSC 就是连接外部的高速时钟,我们一般情况下会优先选择它,精准度会很高,稳定下也很好,我们一般用8M或者16M的晶振 ,内部的时钟容易因为温度产生应先。
2、Fast IRC :内部高速时钟
3、Slow IRC:内部低速时钟
4、LPO :内部低功耗时钟源 ,一般配置看门狗会选择该时钟,看门狗不与其他时钟公用。
5、CLKOUT:这款单片机可以通过一个引脚将有些时钟映射到GPIO引脚,可以输出时钟,这样便于我们用示波器进行测试。
6、我们看时钟树都是从左向右跟着箭头指引,还有就是多路选择器是选择输入端的时钟源 。
7、SCG 就相当与是个时钟发生器,通过选择外部高速时钟作为时钟源,SPLL锁相环 将时钟升高,然后再通过分频器降低合适的频率给到不同的外设。
在这里插入图片描述
1-2、工作模式:
根据芯片手册知道 S32K14X系列的单片机可以工作在一下任意一种模式:
低功耗模式:深度休眠的状态,大部分外设不工作,在这种模式下会先设置唤醒源,然后通过预先设置好的唤醒源产生唤醒条件唤醒单片机,有的单片机被唤醒后是从汇编语句WFI继续执行,有的单片机则是产生个复位。
正常模式 : 所有外设正常工作
高速模式 :内核时钟配置112M ,但是笔者在调试的时候发现在该模式下Dflash不能擦写。所以我们只能配置正常模式下跑80M的。
关于模式切换请参考手册。

二、MCU模块介绍:

2-1、 其实mcu模块就是可视化的配置单片机的时钟树,会配置的前提是对时钟树的理解,及外设时钟的分配,看手册对我们来说很重要。大家还记的我们在安装MCAL的时候,发现安装包内带有S32K144的demo配置,那就是我们参考的对象。如果想从零开始配置,就会有点浪费时间了。
2-2、教大家一个方法就是偷梁换柱。
在这里插入图片描述
2-3、在讲解配置之前,我们还有一件事未做,就是将上此创建的MCAL工程没有集成进代码的工程里面,在这里我们讲解下。
2-3-1、将我们上次创建的MCAL工程配置复制到代码目录下的NXP/cfg下,然后我们用EB打开对应的配置工程在这里插入图片描述
2-3-2、修改生成代码的路径,将其生成代码路径改成在NXP/gen下
在这里插入图片描述

2-3-3、 拷贝mcu.xdm 到 对应的位置,然后重新打开EB软件,导入NXP/cfg中的MCAL配置
在这里插入图片描述
2-3-4、接下来我们就可以生成代码了
在这里插入图片描述
2-3-5、我们到设置好生成路径下找下代码吧,看看他们是什么鬼东西。gen文件下。
在这里插入图片描述

三、MCU模块配置:

下面我们讲解MCAL的MCU的配置,首先我们来到MCU的主页,PostBuild 和Prebuild ,区别在于调用初始化函数传参数和不传递参数。API的接口使能,这里面列出了mcu模块的一些api接口,Mcu Init Clock API 初始化的接口,MCU Perform Reset API ,复位mcu接口。
在这里插入图片描述
上面的API接口使能就是在生成代码控制宏定义的开关
在这里插入图片描述
mcu的模式配置:
在这里插入图片描述

MCU的时钟配置:
在这里插入图片描述
时钟配置的主要界面
在这里插入图片描述

首先我们来讲下SOSC配置,我们不做功能安全就先不讲解monitor相关的内容,这里面主要介绍了外部时钟的参数,这里用的是8M的外部时钟,SOSC提供PLL的输入和外设的输入,每种时钟的使能必须开。SOSC为PLL提供时钟源和DIV1和DIV2,后续会提供个外设使用。在这里插入图片描述

在这里插入图片描述

我们选择外部8M的时钟作为PLL的输入信号,PLL_OUT = VCO_CLK/2 ;,下面就是计算的过程。这样我们就能得出PLL_CLK = 160M
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
下面我们回到General 选项卡配置时钟模式下BUS clock CORE clock ,flash clock 等相关参数信息,下面这张图是时钟的分布图,
在这里插入图片描述
通过上面的图可以看到PLL提供给PREDIV_SYS_CLK , 通过DIVCORE 输出 (CORE_CLK 和 SYS_CLK)还为DIVBUS 和DIVSLOW提供时钟源。 ,其他的时钟配置也是一样的原理,看懂时钟树很重要的。
在这里插入图片描述
我们下面讲下外设时钟如何使能和失能:在调试的时候如果对应的模块的时钟没有被使能,在对相应的寄存器写时候就会报错,我们就可以在外设寄存器PCC中查看对应模块的时钟是否打开。
在这里插入图片描述

下面讲下如何为MCAL的其他模块提供时钟的选择,就是通过下面的选项卡,将要引出为外设时钟配置,在配置MCAL的其他模块的时候就能引用了。
在这里插入图片描述

MCU的模块中还可以配置电源管理的相关内容:
在这里插入图片描述

以上就是本章节的内容,感谢大家的支持。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值