文章目录
- 前言
- 一、分析芯片手册
- 1、6.2.4 Clock monitoring
- 2、28.1.5 System clock and clock monitor requirement
- 3、分析寄存器
- 1) SCG_SOSCCSR[SOSCCM]
- 2) SCG_SOSCCSR[SOSCCMRE]
- 二、EB配置
- 1、检查复位源
- 2、配置时钟监控
- 三、结果验证
- 总结
前言
本文章主要基于恩智浦 S32K14x系列,针对汽车电子功能安全要求,对系统时钟SOSC出现异常丢失事件的监控。
当发生时钟丢失事件之后,MCU应该产生一个时钟丢失类型的复位信号:McuConf_McuResetReasonConf_MCU_LOSS_OF_CLOCK_RESET。
总体而言,都比较简单,莫慌张!!!
具体实现流程包括如下几点:
1, 分析芯片手册 2, EB工具链配置 3, 结果验证
话不多说,走你~
一、分析芯片手册
手册下载处:S32K1xx手册
1、6.2.4 Clock monitoring
如下图所示,S32K1xx全系列都支持监控时钟丢失,其中一个是系统振荡器时钟SOSC,一个是系统锁相环SPLL。
Tips: 看过B站有个关于讲述PLL的视频,非常不错。特此分享出来给大家。《PLL基本工作原理》
~
~
2、28.1.5 System clock and clock monitor requirement
Tips: 1,我们只针对SOSC来做演示,所以SPLL就不演示了;2,下图中的有错别字,没有位SOSCCME,应该是SOSCCM 。
若要实现系统时钟监控的功能,必须满足如下前提。
a,确保系统时钟(SOSC)被使能;
b,相应的寄存器置位:SCG_SOSCCSR[SOSCCM],SCG_SOSCCSR[SOSCCMRE];
c,SOSC被选择为系统时钟源;
~
~
3、分析寄存器
1) SCG_SOSCCSR[SOSCCM]
功能: 使能系统时钟SOSC监控。
该Bit置1之后,就开启了系统时钟的监控
2) SCG_SOSCCSR[SOSCCMRE]
功能: 选择系统时钟监控复位使能。
该Bit置1之后,时钟监控到异常会触发MCU复位操作。
~
二、EB配置
打开EB tresos,执行如下操作步骤:
1、检查复位源
McuResetReasonConf,检查MCU复位源中是否包含了时钟丢失复位,这一步是AutoSar标准,一般默认就配置好了。
2、配置时钟监控
如下图:
勾选红框,等同于将SCG_SOSCCSR[SOSCCM]置1;
勾选篮筐,等同于将SCG_SOSCCSR[SOSCCMRE]置1;
配置项,到此结束,保存生成代码。
~
三、结果验证
这一步比较Low了,博主在MCU开启时,会通过串口打印复位的类型为多少。当打印是数字10,则代表时钟丢失复位。
操作手段: 用镊子将晶振短到GND以实现时钟丢失的复位效果。
期待现象: MCU一直处于复位之中,直至不短到GND。
总结
博主是AutoSar小白,刚开始接触NXP芯片,如果哪里表达的有问题,还请大佬们指点指点哈。接下来,让我们在后面的博文再相会哈~