瑞萨RA系列FSP库开发实战指南之GPT比较匹配功能及输入捕获功能详解

描述

27.4

GPT比较匹配功能详解

比较匹配主要是用来实现输出PWM波形功能的一种机制。其原理简单来讲就是通过比较GTCNT计数器的值与GTCCRA或GTCCRB的值,当比较匹配发生时,会生成相应的比较匹配事件信号,同时,GPT可以切换GTIOCnA或GTIOCnB输出引脚的输出信号,可以选择输出低电平、高电平或翻转输出。在GTCNT完成一个周期的计数时,也可以切换GTIOCnA或GTIOCnB输出引脚的输出信号。

PWM输出就是对外输出脉宽(即占空比)可调的方波信号,信号频率由周期设定寄存器GTPR的值决定,占空比由比较寄存器GTCCR的值决定。

GPT的输出模式有:

锯齿波PWM模式(Saw-wave PWMmode)(该模式下单缓冲或双缓冲都可使用)

锯齿波单脉冲模式(Saw-waveone-shotpulsemode)(该模式下使用固定的缓冲操作)

三角波PWM模式1(Triangle-wave PWMmode1)(波谷32位传输)(该模式下单缓冲或双缓冲都可使用)

三角波PWM模式2(Triangle-wave PWMmode2)(波峰和波谷32位传输)(该模式下单缓冲或双缓冲都可使用)

三角波PWM模式3(Triangle-wavePWMmode3)(波谷64位传输)(该模式下使用固定的缓冲操作)

我们在前面有提到过每个GPT定时器模块内部都有6个GTCCRx寄存器(x=A,B,C,D,E,F),下面就先来了解一下有关GTCCRx的缓冲操作。

单缓冲操作:

以GTIOCA输出为例,若需要修改占空比,则需要在GTCCRC写入要修改的比较值,GTCNT计数完成后则会将GTCCRC的值写入GTCCRA,如下图所示。

瑞萨

点击可查看大图

双缓冲操作:

在三角波PWM输出模式下,GTCCRA/GTCCRB各有两个缓存,缓存传输的顺序分别为:

GTCCRD->GTCCRC->GTCCRA

GTCCRF->GTCCRE->GTCCRB

以GTIOCA为例,如下图所示。

瑞萨

点击可查看大图

27.4.1

锯齿波PWM模式(普通PWM模式)

这里的锯齿波PWM模式即我们通常一般所说的PWM输出模式,该模式的效果是输出一个普通的PWM波形。其原理是:GTCNT进行递增计数,当GTCNT与GTCCRA/GTCCRB比较相等时,输出到GTIOCn A/GTIOCnB引脚的PWM波形发生变化(一般是翻转电平),然后当GTCNT计数到GTPR周期设置寄存器的值相等后,在下一个时钟计数是计数器清零,此时输出到GTIOCnA/GTIOCnB引脚的PWM波形也发生变化。在这整个过程中,GTCNT计数器的计数值以锯齿波的方式变化(计数器递增计数或递减计数)。

这里的锯齿波指的是,GTCNT计数器的值以锯齿波的方式变化,也就是GTCNT向上递增计数或向下递减计数,并不是指GTIOCnA和GTIOCnB这两个IO引脚输出锯齿波,记住无论在哪个PWM模式下,IO引脚输出的都是逻辑值为0或1的高低电平。

当GTCNT与GTCCRA/GTCCRB相等,以及GTCNT完成一个周期的计数时,IO引脚切换为高电平、低电平、翻转电平或者维持电平不变。具体可以由寄存器GTIOR的位段GTIOB/GTIOA控制,这个位段的控制逻辑如下表所示。b4为1时,初始化电平为高电平,其他与下表相同,为节省篇幅,省略这一部分。

瑞萨

点击可查看大图

在锯齿波PWM模式下可使用单缓冲操作或者双缓冲操作。在单缓冲操作模式下,GTCCRC作为GTCCRA的缓存,GTCCRE作为GTCCRB的缓存。如下图所示的示例是在GTCNT向上计数,发生比较匹配时输出高电平,计数周期结束时输出低电平,即GTIOA/GTIOB的b3~b0依次为0110时,GTIOCx A/GTIOCx B引脚的输出时序。

锯齿波PWM模式的输出波形时序图如下图所示。

瑞萨

点击可查看大图

27.4.2

三角波PWM模式1(波谷32位传输)

这里的三角波同样指的是,GTCNT内的值以三角波的方式变化,也就是GTCNT向上递增计数接着向下计数递减计数。其他地方与锯齿波PWM模式基本相同。如下图所示的示例是在初始化时GTIOCn A输出低电平,GTIOCnB输出高电平,当GTCCRA/GTCCRB发生比较匹配时,GTIOCxA/GTIOCxB反转电平,GTIOCxA/GTIOCxB的输出时序。

三角波PWM模式1的输出波形时序图如下图所示。

瑞萨

点击可查看大图

27.4.3

三角波PWM模式2(波峰和波谷32位传输)

该模式与三角波PWM模式1的区别在于在波峰和波谷都会传输缓冲。也属于单缓冲操作。

三角波PWM模式2的输出波形时序图如下图所示。

瑞萨

27.4.4

三角波PWM模式3(波谷64位传输)

该模式与三角波PWM模式1一样都是在波谷传输缓冲,区别在于该模式属于双缓冲操作。

三角波PWM模式3的输出波形时序图如下图所示。

瑞萨

点击可查看大图

27.4.5

设置死区时间

死区时间可通过设置GTCCRA/GTCCRB来配置。自动死区时间设置功能可用于锯齿波单脉冲模式和所有三角波PWM模式。

27.5

GPT输入捕获功能详解

输入捕获是定时器的一项非常重要的功能。通过输入捕获功能,我们可以测量高低电平脉冲的脉宽、信号的周期、频率和PWM占空比等。

在检测到在GTICASR和GTICBSR中设置的硬件源时,可以将GTCNT计数器值传输到GTCCRA或GTCCRB,这便是GPT的输入捕获功能。“输入捕获”根据“输入”来触发“捕获”GTCNT计数器的值,更加具体地说:硬件在检测到我们所设置的硬件源时,“捕获”GTCNT计数器的值并转存到GTCCRA或GTCCRB寄存器。

我们可以设置如下硬件源来触发执行输入捕获:

在GTETRGA引脚输入的上升沿启用或禁用GTCCRA/GTCCRB的输入捕捉。

在GTETRGA引脚输入的下降沿启用或禁用GTCCRA/GTCCRB的输入捕捉。

在GTETRGB引脚输入的上升沿启用或禁用GTCCRA/GTCCRB的输入捕捉。

在GTETRGB引脚输入的下降沿启用或禁用GTCCRA/GTCCRB的输入捕捉。

在GTETRGC引脚输入的上升沿启用或禁用GTCCRA/GTCCRB的输入捕捉。

在GTETRGC引脚输入的下降沿启用或禁用GTCCRA/GTCCRB的输入捕捉。

在GTETRGD引脚输入的上升沿启用或禁用GTCCRA/GTCCRB的输入捕捉。

在GTETRGD引脚输入的下降沿启用或禁用GTCCRA/GTCCRB的输入捕捉。

当GTIOCnB输入为0时,在GTIOCnA引脚输入的上升沿启用或禁用GTCCRA/GTCCRB的输入捕捉。

当GTIOCnB输入为1时,在GTIOCnA引脚输入的上升沿启用或禁用GTCCRA/GTCCRB的输入捕捉。

当GTIOCnB输入为0时,在GTIOCnA引脚输入的下降沿启用或禁用GTCCRA/GTCCRB的输入捕捉。

当GTIOCnB输入为1时,在GTIOCnA引脚输入的下降沿启用或禁用GTCCRA/GTCCRB的输入捕捉。

当GTIOCnA输入为0时,在GTIOCnB引脚输入的上升沿启用或禁用GTCCRA/GTCCRB的输入捕捉。

当GTIOCnA输入为1时,在GTIOCnB引脚输入的上升沿启用或禁用GTCCRA/GTCCRB的输入捕捉。

当GTIOCnA输入为0时,在GTIOCnB引脚输入的下降沿启用或禁用GTCCRA/GTCCRB的输入捕捉。

当GTIOCnA输入为1时,在GTIOCnB引脚输入的下降沿启用或禁用GTCCRA/GTCCRB的输入捕捉。

下图所示的示例清晰地展示了输入捕获的功能。在该示例中,GTCNT计数器通过计数时钟进行递增计数,并且设置为在GTIOCn A输入引脚的两个边沿执行GTCCRA的输入捕捉,在GTIOCn B输入引脚的上升沿执行GTCCRB的输入捕捉。

瑞萨

点击可查看大图

未完待续

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分