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

这里写目录标题

  • 1.Abbreviation
  • 2.PTI简介
  • 3.STM简介
  • 4.EB配置
    • 4.1.模块依赖关系:
    • 4.2.Mcu配置
      • 4.2.1.开外设时钟
      • 4.2.2.配置时钟源及分频系数
        • 4.2.2.1.STM0时钟配置
        • 4.2.2.2.PIT0时钟配置
    • 4.3.Platform配置
    • 4.4.Gpt配置
      • 4.4.1.打开定时器通道和中断
      • 4.4.2.配置Gpt参考时钟
      • 4.4.3.GptPit配置
      • 4.4.4.GptSTM配置
      • 4.4.5.GptChannelConfiguration配置
      • 4.4.6.Generale配置
  • 5.S32DS配置

1.Abbreviation

STM system timer Module
PIT periodic interrupt timer

2.PTI简介

PIT时钟源为AIPS_SLOW_CLK,其中RTI时钟为SIRC_CLK,用于在standby模式下唤醒CPU。
PIT共有3个instance,每个instance又有4个channel。其中PIT_0可以被链接成为一个64bit的定时器(正常为32bit的定时器)
PIT定时器为向下计数器,counter值写在LDVAL registers中。
S32K3定时器(STM&PIT)使用——基于MCAL_第1张图片

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级分频。
S32K3定时器(STM&PIT)使用——基于MCAL_第2张图片

4.EB配置

4.1.模块依赖关系:

S32K3定时器(STM&PIT)使用——基于MCAL_第3张图片

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

4.2.Mcu配置

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

4.2.1.开外设时钟

打开用到的相关外设时钟:PIT0和STM0
S32K3定时器(STM&PIT)使用——基于MCAL_第4张图片

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

4.2.2.1.STM0时钟配置

根据手册,可以看到STM0的时钟源有:AIPS_PLAT_CLK、FX0SC_CLK、FIRC_CLK.
S32K3定时器(STM&PIT)使用——基于MCAL_第5张图片

此处,我们选择AIPS_PLAT_CLK作为STM0的时钟源,如图所示:
S32K3定时器(STM&PIT)使用——基于MCAL_第6张图片

1.根据上一级时钟分频可以看到AIPS_PLAT_CLK的时钟为80MHz,1处的分频系数1需要+1作为最终的分频系数,即填1表示分频系数为2,填0表示分频系数为1.因此可以看到2处的最终时钟为40MHz
S32K3定时器(STM&PIT)使用——基于MCAL_第7张图片

4.2.2.2.PIT0时钟配置

根据手册,可以看到除RTI外,PIT0的唯一时钟来源为AIPS_SLOW_CLK
S32K3定时器(STM&PIT)使用——基于MCAL_第8张图片

我们将分频系数配置为3,实际为4,分频后频率为40MHz
S32K3定时器(STM&PIT)使用——基于MCAL_第9张图片

当然更上一级的时钟如PLL_PHI0、PLL_PHI1、PLL_VCO等只在MCUPLL中配置,此处不做赘述。如下图所示:
S32K3定时器(STM&PIT)使用——基于MCAL_第10张图片

4.3.Platform配置

使能pit0和stm0的中断
S32K3定时器(STM&PIT)使用——基于MCAL_第11张图片

添加相应的中断处理函数
S32K3定时器(STM&PIT)使用——基于MCAL_第12张图片

4.4.Gpt配置

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

S32K3定时器(STM&PIT)使用——基于MCAL_第13张图片

4.4.2.配置Gpt参考时钟

S32K3定时器(STM&PIT)使用——基于MCAL_第14张图片

参考时钟来源:
S32K3定时器(STM&PIT)使用——基于MCAL_第15张图片

4.4.3.GptPit配置

S32K3定时器(STM&PIT)使用——基于MCAL_第16张图片

4.4.4.GptSTM配置

S32K3定时器(STM&PIT)使用——基于MCAL_第17张图片

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

4.4.5.GptChannelConfiguration配置

添加前面配置的通道:
S32K3定时器(STM&PIT)使用——基于MCAL_第18张图片

内部配置:以pit为例,stm同理
S32K3定时器(STM&PIT)使用——基于MCAL_第19张图片

4.4.6.Generale配置

根据手册可知,RTC/SWT/PIT的RTI功能均可作为唤醒源使用
S32K3定时器(STM&PIT)使用——基于MCAL_第20张图片

如果单纯的只使用定时器,则不需要打开下图中的功能:
S32K3定时器(STM&PIT)使用——基于MCAL_第21张图片

若打开PredefTimerFunctionalityApi,则需要打开PREDEF timer,需要进行如下的时钟配置:
S32K3定时器(STM&PIT)使用——基于MCAL_第22张图片

上述在选择GptHwChannel时需要在GptHwConfiguration中打开相应的通道:
S32K3定时器(STM&PIT)使用——基于MCAL_第23张图片

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

5.S32DS配置

添加相应的驱动模块:
S32K3定时器(STM&PIT)使用——基于MCAL_第24张图片

Main函数中进行相关模块初始化,开启对应通达的定时器,使能相关回调函数。
S32K3定时器(STM&PIT)使用——基于MCAL_第25张图片

根据EB的配置,编写相应的回调函数:
S32K3定时器(STM&PIT)使用——基于MCAL_第26张图片

你可能感兴趣的:(S32K3xx,MCAL,单片机,mcu,arm)