NXP MCU 技术论坛
直播中

刘洋

10年用户 1157经验值
擅长:可编程逻辑 嵌入式技术
私信 关注
[经验]

官方例程:Kinetis KL25 TPM模块输入捕获和输出PWM波

大家都知道KL25功耗低的优点,KL25还包含了TPM模块,可以提供输入捕获,输出比较和PWM波输出。

本例详细讲解了TPM模块各种功能配置方法,中断的设置和应用,对重点函数做了详尽注解。


例程功能
飞思卡尔 Kinetis  L 系列产品 快速参考 手册的 TPM 边沿对齐 PWM 与输入捕捉例程例程实现 TPM0 的CH1 与 CH2 输出电平互补的边沿对齐 PWM,且 CH1 与 TPM1 的 CH0 与 CH1 相 连,经 TPM1 输入捕捉后,获得 PWM 的脉宽并通过串口输出的功能。图 1 为例程原理框图,图 2 为例程功能表示图。

相关代码参考 KL25_SC.exe 中的 LQRUG_tpm_ex1 例程。
图1.jpg
图2.jpg

运行平台
图 2 TPM 边沿对齐 PWM 与输入捕捉例程功能表示框图
TWR-KL25Z48M
TWR-ELEV
IAR ARM IDE

运行例程(IAR
1)  使用 USB cable 连接 TWR-KL25Z48 开发板 Min-B USB 连接器(J23);
2)  加载 GPIO 工程后 ,选择【FLASH_128KB 】, 点击 a.jpg 进行编译;
3)  编译成功后,点击 b.jpg 进入调试界面;
4)  进入调试界面后,点击 c.jpg 运行例程。

串口配置
选择串口调试工具,使用图 3 所示的配置信息;
图3.jpg
注:其中端口号为 实际 硬件的串 口号, 查看【 我的 电脑】->【 设备管 理器】- >【端口】。  

平台搭建
TWR-KL25Z48M 开发板与 TWR-ELEV 组成塔式结构,通过杜邦线TPM0_CH1(PTC2)连接到TPM1_CH0(PTA12)与 TPM1_CH1(PTA13),同时用示波器测量显示TPM0_CH1(PTC2)和TPM0_CH2(PTC3)输出的边沿对齐 PWM(如图 4 所 示)。  
图4.jpg
代码说明
LQRUG_tpm_ex1 例程使用下列 I/O 引脚资源,以及每个 I/O 引脚的功能描述:


引脚名称
方向
功能
PTC2
输出
TMP0_CH1
PTC3
输出
TMP0_CH2
PTA12
输入
TMP1_CH0
PTA13
输入
TMP1_CH1

主程序(main 函数)代码说明:


图片5.jpg

SIM_Init()
图片1.jpg

PORT_Init()
图片2.jpg

TPM0_Init()
图片3.jpg

TPM1_Init()
图片4.jpg

tpm0_isr()
图片5.jpg

tpm1_isr()

图片6.jpg

图片7.jpg

运行结果

输出占空比 70%的电平互补边沿对齐 PWM
图片8.jpg


输出占空比 30%的电平互补边沿对齐 PWM
360截图20150105112912031.jpg

LQRUG_tpm_ex1.zip (3.78 MB)
(下载次数: 223, 2015-1-5 11:39 上传)


回帖(5)

李庆隆

2016-2-17 15:16:32
真心有用  谢谢先!
举报

zgp1514

2016-3-13 06:22:01
学习下飞思卡尔单片机谢了
举报

rainbow638

2016-9-12 17:30:49
楼主,怎么包里没有源文件
举报

abc

2017-11-20 13:46:01
十分感谢,好东西啊 ~
举报

雨的印记111

2017-12-23 16:56:05
厉害了 下载学习下
举报

更多回帖

发帖
×
20
完善资料,
赚取积分