大家都知道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 例程。
运行平台
图 2 TPM 边沿对齐 PWM 与输入捕捉例程功能表示框图
TWR-KL25Z48M
TWR-ELEV
运行例程(IAR)
1) 使用 USB cable 连接 TWR-KL25Z48 开发板 Min-B USB 连接器(J23); 2) 加载 GPIO 工程后 ,选择【FLASH_128KB 】, 点击
进行编译; 3) 编译成功后,点击
进入调试界面; 4) 进入调试界面后,点击
运行例程。
串口配置
选择串口调试工具,使用图 3 所示的配置信息;
注:其中端口号为 实际 硬件的串 口号, 查看【 我的 电脑】->【 设备管 理器】- >【端口】。
平台搭建
TWR-KL25Z48M 开发板与 TWR-ELEV 组成塔式结构,通过杜邦线TPM0_CH1(PTC2)连接到TPM1_CH0(PTA12)与 TPM1_CH1(PTA13),同时用示波器测量显示TPM0_CH1(PTC2)和TPM0_CH2(PTC3)输出的边沿对齐 PWM(如图 4 所 示)。
代码说明
LQRUG_tpm_ex1 例程使用下列 I/O 引脚资源,以及每个 I/O 引脚的功能描述:
主程序(main 函数)代码说明:
SIM_Init()
PORT_Init()
TPM0_Init()
TPM1_Init()
tpm0_isr()
tpm1_isr()
运行结果
输出占空比 70%的电平互补边沿对齐 PWM
输出占空比 30%的电平互补边沿对齐 PWM