TPM定时器模块的脉宽调制、输入捕捉、输出比较

脉宽调制PWM

脉宽调制PWM是电机控制的重要方法之一。PWM信号是一个高/低点评重复交易的输出信号,通常也叫脉宽调制波/PWM波

输入捕捉

用于监测外部开关量输入信号变化的时刻。

当外部信号在指定的MCU输入捕捉引脚上发生一个沿跳变(上升沿或下降沿),定时器捕捉到沿跳变之后,把计数器当前值锁存到通道寄存器。

同时产生输入捕捉中断,利用中断处理程序可以得到沿跳变的时刻,这个时刻是定时器工作基础上的精细时刻。

输出比较

用程序的方法在规定的较精确时刻输出需要的电平,实现对外部电路的控制。

脉宽调制的主要技术指标

周期:PWM信号的周期用其持续性的时钟周期个数来度量。

下图PWM信号的周期为8个时钟周期,即TPWM=8TCLK。

占空比:PWM占空比被定义为PWM信号处于有效电平的时钟周期数与整个PWM周期内的时钟周期数之比,用百分比表征。

 

极性:PWM极性决定了PWM波的有效电平。

正极性表示PWM有效电平为高,那么在边沿对齐的情况下,PWM引脚的平时电平就应该为低,开时产生PWM的信号为高电平。到达比较值时,跳变为低电平,到达PWM周期时又变为高电平,周而复始。

负极性相反,PWM引脚平时电平为高电平,有效电平为低电平。占空比仍定义为高电平时间与PWM周期之比。

分辨率:PWM分辨率ΔT是指脉冲宽度的最小时间增量。

若PWM是利用频率为48MHz的时钟源产生的,即时钟源周期20.8ns,那么脉冲宽度的每一增量为20.8ns,即PWM的分辨率,脉冲宽度的最小时间增量。

脉冲宽度的增加与减少只能是ΔT的整数倍。实际上脉冲宽度正是用高电平持续的时钟周期数来表征。

对齐方式:可以用PWM引脚输出发生跳变的时刻来描述PWM的边沿对齐与中心对齐两种对齐方式。

在平时电平为低电平的情况下,开始计数时,PWM引脚同步变高,即边沿对齐。

在平时电平为低电平的PWM情况下,中心对齐的PWM波,比边沿对齐的PWM波形向右平移了(k/2)个时钟周期,k为高电平所占周期数。

PWM的其他用途

为其他设备产生类似于时钟的信号,控制灯以一定频率闪烁,控制输入到某个设备的平均电流或电压等。

输入捕捉的应用场合

测量脉冲信号的周期与波形。

例如,自己编程产生的PWM波,可以直接连接输入捕捉引脚,通过输入捕捉的方法测量回来,看看是否达到要求。输入捕捉的应用场合还有电机的速度测量。

输出比较的应用场合

产生一定间隔的脉冲,典型的应用为实现软件的串行通讯。

输入捕捉与输出比较

输入捕捉-->数据输入

输出比较-->数据输出

  1. 根据通讯的波特率向通道寄存器写入延时的值。
  2. 根据待传的数据位确定有效输出电平的高低。

在输出比较中断处理程序中,重新更改通道寄存器的值,并根据下一位数据改写有效输出电平控制位。

TPM模块功能:输入捕捉,输出比较,PWM输出

TPM初始化函数

当使用TPM的上述三个功能时,必须把相应功能映射到不同的TPM通道上。其次是定时器计数溢出值,通过设定这个值确定TPM定时器的基本周期。

因为必须先确定TPM定时器的基本定时周期才可以对占空比,对齐方式等参数进行设定。

周期的大小,由总线时钟和模块时钟的分频器来决定,分频系数作为参数可以传入TPM时钟初始化函数。这样,TPM初始化函数就有来个参数。

TPM模块号、TPM通道号与TPM计数器周期可以在不同引脚组上实现应用中使用哪个引脚,在应用开发板在硬件设计阶段就确定。

为了使驱动构件适用,在头文件使用宏定义,确定TPM通道使用的引脚

但是若把源文件编译成库,再修改宏定义就不起作用了,必须重新使用源程序进行编译。

 

  • 输入捕捉初始化函数添加了输入捕捉模式选择一个参数。
  • 输出比较初始化函数则加入了占空比和输出比较模式选择两个参数
  • PWM信号输出对应的加入占空比、对齐方式、极性三个可修改参数。

TPM模块基于驱动构件的编程

  1. 在TPM驱动构件头文件(tpm.h)中宏定义TPM0、TPM1、TPM2使用的引脚。

  2. 在main.c文件中进行TPM初始化、输入捕捉初始化、输出比较初始化、使能模块中断、开总中断。

     

  3. 在startup_MKL25Z4.S文件的中断向量表中找到响应中断服务例程的函数名,在中断向量表中找到TPM0、TPM1、TPM2接收中断服务例程的函数名分别是TPM0_IRQHandler、TPM1_IRQHandler、TPM2_IRQHandler。
  4. 在”…\08_Source\isr.c”中添加函数,并进行中断功能的编程

嵌入式技术基础与实践(第4版)

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值