NXP MCU 技术论坛
直播中

刀马旦

11年用户 702经验值
私信 关注
[资料]

官方例程:飞思卡尔Kinetis KL25 低功耗模式下TPM模块输出PWM波

例程功能
飞思卡尔 Kinetis L 系列产品快速参考手册的 VLPS 模式下 TPM 工作例程,实现 MCU 在 VLPS 模式下,通过 DMA 将闪存中的数据传输到 TPM0_ C2V 中,使得 TPM_CH2 输出对应正弦、锯齿、方波的中心对齐 PWM。DMA 传输完成中断,切换传输不同波形的数据到 TPM_C2V 中,也可通过按键 SW3切换。图 1 为例程实现原理框图。相关代码参考 KL25_SC.exe 中的 LQRUG_tpm_ex2 例程。
1.png
图 1 VLPS 模式下 TPM 工作例程实现原理框图

运行平台
TWR-KL25Z48M
IAR ARM IDE
TWR-ELEV

Low Power Mode 简介
飞思卡尔Kinetis 系列MCU 基于90 纳米TFS 技术,使得MCU 在低功耗模式下,拥有良好的性能和功耗表现,尽可能的延长电 池寿命,基于ARM Cortex M0+的Kinetis L 系列MCU 更是凭借其卓越的低功耗表现,被评为业内最低功耗的MCU。飞思卡尔Kinetis 系列MCU 有别于传统ARM 核MCU 只有Run、Wait、Stop 三种功耗 模式,其功耗模式最多可达 11 种之多(如图2 所示),可满足客户对MCU 各种低功耗的配置要求,同时支持多种唤醒方式,方便客户使用。


在本例程中,MCU 工作于 VLPS 模式,在此模式下,芯片内核处于深度睡眠,唤醒的方式是中断。具体内容,请参看 reference manual 的表 7-1 chip power modes。
2.png

图 2 功耗模式

DMA 简介
DMA 控制器提供了将一个内存地址的数据传输到另一个内存地址的作用。经过合理配置与初始化,DMA 控制器 可以 与内核并行工作,分担了本来是由内核完成的工作,从而减轻了内核的负荷,提高了系统的运行性能 。Kinetis L 系列的 DMA 控制器具有一个 32 位的数据缓存,拥有 4 个独立可编程的 DMA 通道,每个通道支持多达 63 个 DMA 请求信号,具体请求源查看 reference manual的表 3-20 DMA request sources。

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

4) 进入调试界面后,点击 03.jpg 运行例程。

平台搭建

杜邦线将 TWR-KL25Z48M 开发板的 J11 的 14 脚(TPM0_CH2)和 TP18(GND)引出(图 3 所示),利用示波器测量显示其波形,感兴趣的小伙伴们还可对 TPM0_CH2 脚,搭建 RC 滤波电路,通过示波器就可实现原始波和滤波后的波形比较。
3.jpg


代码说明
LQRUG_tpm_ex2 例程使用下列 I/O 引脚资源,以及每个 I/O 引脚的功能描述:
4.png

常量定义:
图片2.jpg

主程序(main 函数)代码说明:
图片3.jpg


PORT_Init()
图片4.jpg

TPM0_Init()
图片5.jpg

DMA0_Init()
图片6.jpg

dma0_isr()
图片7.jpg

porta_isr()
图片8.jpg

主程序流程图
10.jpg


运行结果

对应方波的中心对齐 PWM 及 RC 滤波后波形
图片9.jpg


对应锯齿波的中心对齐 PWM 及 RC 滤波后波形
图片10.jpg


对应正弦波的中心对齐 PWM 及 RC 滤波后波形
图片11.jpg



回帖(1)

王治国

2018-7-20 11:19:21
参考代码呢,怎么没贴上来
举报

更多回帖

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