编辑: 喜太狼911 | 2019-09-25 |
Document Number: AN4839 应用笔记 Rev. 1, 05/2014 ?
2013 Freescale Semiconductor, Inc. 如何在Kinetis E和Kinetis EA系列上使用 PWT模块
1 概述 脉宽定时器 (PWT) 是一款用在KE
04、 KE
06、 KEA128和KEA8器件上的多用途模块.它可 用作16位脉宽测量单元或通用定时器.PWT 使得用户可以立即获得输入脉冲宽度及其频 率. 模块还可以分别测量正脉宽和负脉宽并提 供16位分辨率, 测量可由上升沿、 下降沿或边 沿触发. 用户可以决定从首个上升沿或从首个 下降沿开始测量.PWT模块支持ALTCLK外 部输入时钟源.PWT具有4个输入通道、可编 程定时器溢出和脉宽读就绪中断. 此外, 还包 含灵活机制用于复位或重启操作. 目录
1 概述
1 2 PWT 简介.2 2.1 脉冲输入引脚.2 2.2 PWT 时钟源
2 2.3 软复位.3 2.4 输入边沿捕捉.4 2.5 测量误差.4
3 测量方法
4 4 演示代码
5 5 结语
5 6 术语表
5 7 修订历史记录
5 如何在Kinetis E和Kinetis EA系列上使用PWT模块,Rev. 1, 05/2014
2 Freescale Semiconductor, Inc.
2 PWT简介 PWT包含两个外部时钟源输入, 通过PWT_R1[PCLKS]位在TIMER_CLK和ALTCLK中选择一个时 钟源.有效时钟源由时钟预分频器分频,通过PWT_R1[PRE]位控制.最大预分频比为128. 输入脉冲通过PWT输入引脚连接(PWTIN[0]至PWTIN[3]).PWT_R1[EDGE]位用于选择触发和 捕捉模式. 当PWT使能时,将开始捕捉输入脉冲.一旦PWT_R1[PWTRDY]位置位,正脉宽(PPW)和负脉 宽(NPW)位便可用.这意味着数据就绪.如果使能PWT_R1[PWTIE]和PWT_R1[PRDYIE],则当PWT_R1[PWTRDY]位置位时,会产生脉宽数据就绪中断. 2.1 脉冲输入引脚 PWT模块包含4个输入通道.下表显示了在KE
04、KEA128和KEA8器件上的连接: 表1. PWT输入连接 PWT输入通道 KE04连接 KEA128连接 KEA8连接
0 PTC4 PTD5/PTE2 PTC4
1 PTB0 PTB0/PTH7 PTB0
2 ACMP0输出 ACMP0输出或ACMP1输出 ACMP0输出
3 ACMP1输出 UART0_RX、UART1_RX或UART2_RX ACMP1输出 2.2 PWT时钟源 图1显示了PWT时钟源.一个PWT时钟源来自DIV3,另一个来自外部TCLK输入引脚.PWT_R1 [PCLKS]位选择时钟. 如何在Kinetis E和Kinetis EA系列上使用PWT模块,Rev. 1, 05/2014 Freescale Semiconductor, Inc.
3 图1. PWT时钟源 2.3 软复位 软复位功能用于随时重启对于输入脉冲的捕捉.PWT通过向PWT_R1[PWTSR]位写入1来执行软 复位. 例如,PWT_R1[EDGE] = 0x01.这配置为从首个上升沿开始测量,并捕捉所有上升沿和下降沿脉 冲. 如果软复位位置位, 则PWT计数器PWT_R2 [PWTC]复位为0, PWT_R1[PPW]和PWT_R2[NPW] 也复位为0, 并清零PWT_R1[PWTOV]和PWT_R1[PWTRDY]. PWT计数器的16位缓冲区复位, PWT 时钟预分频器输出复位,边沿检测逻辑复位,捕捉逻辑复位,还会重启脉宽寄存器的锁存机制. 软复位后PWT会在接收到下一个上升沿后,开始捕捉下降沿和上升沿.参见图2. 如何在Kinetis E和Kinetis EA系列上使用PWT模块,Rev. 1, 05/2014
4 Freescale Semiconductor, Inc. 图2. PWT软复位(PWT_R1[EDGE] = 0x01) 当PWT模块工作频繁时,软复位操作可用于刷新PWT.一旦触发软复位,用户可配置新的PWT 时钟分频比和输入边沿敏感位.软复位代码示例如下: PWT->R1 |= PWT_R1_PWTSR_MASK;
/*触发一次软复位*/ /*从首个下降沿启动测量,捕捉所有下降沿和上升沿脉冲*/ PWT->R1 &= ~( PWT_R1_EDGE_MASK | PWT_R1_PRE_MASK;
PWT->R1 |= PWT_R1_EDGE(0x02) | PWT_R1_PRE(0x06);
/*配置新时钟预分频比和边沿*/ 2.4 输入边沿捕捉 PWT有能力决定选择首个上升沿或下降沿来触发PWT,并且可以利用相应的控制PWT_R1 [EDGE]位来捕捉每个边沿. PWT_R1[PWTRDY]位为读就绪标志.如果PWT_R1[PWTRDY]位置位,则表明PPW和NPW已被 更新,可以被读取.PWT_R1[PWTOV]位为定时器溢出标志. 2.5 测量误差 通常,PWT时钟与输入脉冲的比值越大,精度越高.总测量误差小于1个PWT时钟加上1个总线 时钟. 如果用户想要测试低频输入脉冲,而PWT只能为16位分辨率,用户将很难去提高PWT时钟.因为 如果输入的正脉冲或负脉冲数大于0xffff个PWT时钟,相应多出的位会被全部填0.因此用户需要 在PWT时钟选择上做出妥协.
3 测量方法 通常,用户可以通过读取 PPW 和NPW 来计算输入脉冲的频率. 软复位 重启 如何在Kinetis E和Kinetis EA系列上使用PWT模块,Rev. 1, 05/2014 Freescale Semiconductor, Inc.
5 图3. 输入脉冲捕捉 频率(Hz)为PWT 时钟 / (PPW ? NPW),PWT 时钟 = PWT 时钟源 / 预分频比.
4 演示代码 KE04_PWT_demo是基于IAR EWARM V6.
60、在FRDM-KE04Z硬件平台上开发的.它展示了如何 采样输入脉冲并计算频率,脉冲输入引脚为PTC4.PWT时钟源来自TIMER_CLK,用户可以短接 PTC4和PTC5,或连接外部输入脉冲到PTC4.PTC5为1 KHz翻转输出,利用RTC中断实现. TRK-KEA128_PWT是基于Codewarrior 10.
6、在TRK-KEA128硬件平台上开发的.它展示了采样输 入脉冲并计算频率的流程, 输入脉冲引脚为PTD5. PWT时钟源来自总线时钟, 用户可以短接PTC5 和PTD5,或连接外部输入脉冲到PTD5.PTC5产生一个5 Hz的翻转输出.
5 结语 PWT模块可以方便地用来测量输入脉冲的宽度(包括正脉冲和负脉冲),并且通过简单计算可以 同时获得输入脉冲频率.
6 术语表 PWT 脉宽定时器 PPW 正脉宽 NPW 负脉宽
7 修订历史记录 修订版本号 日期 修改说明
0 2014/03 初始版本
1 2014/05 更新了Kinetis EA系列 PPW NPW VD 0V How to Reach Us: Home Page: freescale.com Web Support: freescale.com/support 本文档中的信息仅供系统和软件实施方使用 Freescale 产品.本文并未明示或者暗示授 予利用本文档信息进行设计或者加工集成电路的版权许可.Freescale 保留对此处任何 产品进行更改的权利,恕不另行通知. Freescale 对其产品在任何特定用途方面的适用性不做任何担保、表示或保证,也不承 担因为应用程序或者使用产品或电路所产生的任何责任,明确拒绝承担包括但不局限 于后果性的或附带性的损害在内的所有责任.Freescale 的数据表和 / 或规格中所提供 的"典型"参数在不同应用中可能并且确实不同,实际性能会随时间而有所变化.所有 运行参数,包括"经典值"在内,必须经由客户的技术专家对每个客户的应用程序进行 验证.Freescale 未转让与其专利权及其他权利相关的许可.Freescale 销售产品时遵 循以下网址中包含的标准销售条款和条件:freescale.com/SalesTermsandConditions. Freescale, the Freescale logo, and Kinetis are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. Tower is a trademark of Freescale Semiconductor, Inc. ARM and Cortex are registered trademarks of ARM Limited (or its subsidiaries) in the EU and/or elsewhere. All rights reserved. ?
2014 Freescale Semiconductor, Inc. ?
2014 飞思卡尔半导体有限公司. Document Number: AN4839 Rev. 1, 05/2014