例程功能
飞思卡尔 Kine
tis L 系列产品快速参考手册的 VLPS 模式下 TPM 工作例程,实现 MCU 在 VLPS 模式下,通过 DMA 将闪存中的数据传输到 TPM0_ C2V 中,使得 TPM_CH2 输出对应正弦、锯齿、方波的中心对齐 PWM。DMA 传输完成中断,切换传输不同波形的数据到 TPM_C2V 中,也可通过按键 SW3切换。图 1 为例程实现原理框图。相关代码参考 KL25_SC.exe 中的 LQRUG_tpm_ex2 例程。
图 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 功耗模式
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 】, 点击
进行编译;
3) 编译成功后,点击
进入调试界面;
4) 进入调试界面后,点击
运行例程。
平台搭建
杜邦线将 TWR-KL25Z48M 开发板的 J11 的 14 脚(TPM0_CH2)和 TP18(GND)引出(图 3 所示),利用示波器测量显示其波形,感兴趣的小伙伴们还可对 TPM0_CH2 脚,搭建 RC 滤波
电路,通过示波器就可实现原始波和滤波后的波形比较。
代码说明
LQRUG_tpm_ex2 例程使用下列 I/O 引脚资源,以及每个 I/O 引脚的功能描述:
常量定义:
主程序(main 函数)代码说明:
PORT_Init()
TPM0_Init()
DMA0_Init()
dma0_isr()
porta_isr()
主程序流程图
运行结果
对应方波的中心对齐 PWM 及 RC 滤波后波形
对应锯齿波的中心对齐 PWM 及 RC 滤波后波形
对应正弦波的中心对齐 PWM 及 RC 滤波后波形