S32K3定时器(STM&PIT)使用——基于MCAL

8 篇文章 12 订阅
本文档详细介绍了嵌入式系统中STM和PIT模块的配置,包括时钟源选择、分频系数设定、中断配置以及平台设置。STM和PIT作为重要的定时器模块,用于实现不同功能,如唤醒CPU、定时任务等。配置过程涉及了MCU、Platform和Gpt等多个层面,确保了系统的精确计时和中断响应。同时,还提及了S32DS的配置和驱动模块的添加,为实际应用提供了指导。
摘要由CSDN通过智能技术生成

1.Abbreviation

STM system timer Module
PIT periodic interrupt timer

2.PIT简介

PIT时钟源为AIPS_SLOW_CLK,其中RTI时钟为SIRC_CLK,用于在standby模式下唤醒CPU。
PIT共有3个instance,每个instance又有4个channel。其中PIT_0可以被链接成为一个64bit的定时器(正常为32bit的定时器)
PIT定时器为向下计数器,counter值写在LDVAL registers中。
在这里插入图片描述

3.STM简介

STM时钟来源于AIPS_PLAT_CLK or FXOSC or FIRC,可以在CGM中选择
3个stm instance,每个instance有4个32bit的compare channel,每个channel都有独立的中断。
1个32-bit的向上计数器,具有自己独立的8位预分频器,可进行0–256级分频。
在这里插入图片描述

4.EB配置

4.1.模块依赖关系:

在这里插入图片描述

主要为GPT模块,其对Mcl有依赖(主要是emios的依赖,若只使用STM和PIT只需加入此模块而无需配置此模块)。Platform用来配置定时器相关的中断,Mcu主要用来配置定时器的时钟频率。Port和Dio用来点灯方便观察实验现象。

4.2.Mcu配置

Mcu中主要是打开相关timer的外设时钟以及各时钟频率的时钟源选择和分频系数配置。

4.2.1.开外设时钟

打开用到的相关外设时钟:PIT0和STM0
在这里插入图片描述

4.2.2.配置时钟源及分频系数

4.2.2.1.STM0时钟配置

根据手册,可以看到STM0的时钟源有:AIPS_PLAT_CLK、FX0SC_CLK、FIRC_CLK.
在这里插入图片描述

此处,我们选择AIPS_PLAT_CLK作为STM0的时钟源,如图所示:
在这里插入图片描述

1.根据上一级时钟分频可以看到AIPS_PLAT_CLK的时钟为80MHz,1处的分频系数1需要+1作为最终的分频系数,即填1表示分频系数为2,填0表示分频系数为1.因此可以看到2处的最终时钟为40MHz
在这里插入图片描述

4.2.2.2.PIT0时钟配置

根据手册,可以看到除RTI外,PIT0的唯一时钟来源为AIPS_SLOW_CLK
在这里插入图片描述

我们将分频系数配置为3,实际为4,分频后频率为40MHz
在这里插入图片描述

当然更上一级的时钟如PLL_PHI0、PLL_PHI1、PLL_VCO等只在MCUPLL中配置,此处不做赘述。如下图所示:
在这里插入图片描述

4.3.Platform配置

使能pit0和stm0的中断
在这里插入图片描述

添加相应的中断处理函数
在这里插入图片描述

4.4.Gpt配置

4.4.1.打开定时器通道和中断

在这里插入图片描述

4.4.2.配置Gpt参考时钟

在这里插入图片描述

参考时钟来源:
在这里插入图片描述

4.4.3.GptPit配置

在这里插入图片描述

4.4.4.GptSTM配置

在这里插入图片描述

STM有自己独立的预分频器,这个预分频属于stm本身,跟上一级时钟无关。
上图中的两个stm预分频器,第一个是正常时候使用的,第二个是为双时钟模式准备的,一般不使用。配置为1即可。要使用需要打开如下的宏:
在这里插入图片描述

4.4.5.GptChannelConfiguration配置

添加前面配置的通道:
在这里插入图片描述

内部配置:以pit为例,stm同理
在这里插入图片描述

4.4.6.Generale配置

根据手册可知,RTC/SWT/PIT的RTI功能均可作为唤醒源使用
在这里插入图片描述

如果单纯的只使用定时器,则不需要打开下图中的功能:
在这里插入图片描述

若打开PredefTimerFunctionalityApi,则需要打开PREDEF timer,需要进行如下的时钟配置:
在这里插入图片描述

上述在选择GptHwChannel时需要在GptHwConfiguration中打开相应的通道:
在这里插入图片描述

也就是说PREDEF timer是一个与低功耗有关的定时器。

5.S32DS配置

添加相应的驱动模块:
在这里插入图片描述

Main函数中进行相关模块初始化,开启对应通达的定时器,使能相关回调函数。
在这里插入图片描述

根据EB的配置,编写相应的回调函数:
在这里插入图片描述

GPT、STMPIT都是定时器,但在不同的系统中有不同的应用场景和特点。 GPT是General Purpose Timer的缩写,是一种通用定时器,带有独立的预分频器。GPT的预分频器是独立于上一级时钟的,可以根据需要进行配置。其中,第一个预分频器是正常使用的,而第二个预分频器是为双时钟模式准备的,一般情况下不使用。对于GPT的配置,需要打开特定的宏。 STM代表System Timer,也是一种定时器。在一些系统中,STM可以用作coremark测试工程的定时器。然而,对于系统运行生命周期总计时器来说,PIT是更适合的选择。PIT拥有4个32位计时器,并且可以链接使用(串连)[2。因此,PIT在系统总计时方面的优势使其成为痞子衡在i.MXRT1050 coremark工程中的选择。 总而言之,GPT、STMPIT都是定时器,但它们在不同的系统中有不同的应用和特点。具体的选择取决于系统需求和设计考虑。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [S32K3定时器STM&PIT使用——基于MCAL](https://blog.csdn.net/HeFlyYoung/article/details/124290730)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [痞子衡嵌入式:介绍i.MXRT定时器PIT的多通道链接模式及其在coremark测试工程里的应用...](https://blog.csdn.net/Henjay724/article/details/123039522)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值