概述

FlexTimer是S32K1xx中功能最强最复杂的Timer,其基于16bits的Counter能够实现:输入捕获、输出比较、产生PWM、正交解码等功能。
S32K1具备2、4、6、8个不等的FTM实例,每个实例有8个通道,还具有1,2,3,4不等的错误输入通道。每个FTMn实例功能并不完全等同。
FTM在SIM_FTMOPT1[FTMGLDOK]中全局使能,不支持wait模式。
FTM具有多个中断源,读取FTM状态寄存器 (FMS, SC, and STATUS)具体判断是哪个。

通过SIM_FTMOPT0选择错误监测输入。

eg: FTM0 FAULT0 = FTM0_FLT0 pin or TRGMUX output,默认是外部引脚。

FTM支持硬件触发和同步:
FTM0:
• FTM0 hardware trigger 0 = TRGMUX trigger output
• FTM0 hardware trigger 1 = SIM_FTMOPT1[FTM0SYNCBIT]
• FTM0 hardware trigger 2 = FTM0_FLT0 pin

FTM特征

FTM时钟源可选择;
可预分频1, 2, 4, 8, 16, 32, 64, or 128;
16位计数器可自由运行,或者带初始值、终值运行,可以递增或递减;
每个通道可配置为input capture, output compare, or edge-aligned PWM mode;
Input Capture:可捕获上升、下降、双边沿;含输入滤波功能;
Output compare:匹配时输出信号可高可低可反转;
PWM :每个通道都可产生、每对通道可联合起来产生PWM;

信号

EXTCLK:FTM external clock can be selected to drive the FTM counter.
CHn:FTM channel (n);
FAULTj:Fault input (j);
PHA:Quadrature decoder phase A input;
PHB:Quadrature decoder phase B input;

内存映射

时钟源

FTM只有一个时钟域:FTM input clock;

计数器时钟源:SC[ CLKS]中2bit选择3个时钟作为计数器时钟源;

分频:计数器时钟源通过SC[ PS]中3bit,2^n进行分频后计数到Counter。

计数器

FTM 有一个 16 位计数器,供通道用于输入或输出模式。 FTM 计数器时钟是由预分频器分频的选定时钟。

Up counting

QUADEN = 0, and CPWMS = 0
起始值:CNTIN
终值:MOD
起始值被装载到FTM counter递增到终值,然后继续装载起始值,此时,TOF bit置位。
周期: (MOD – CNTIN + 0x0001) × period of the FTM counter clock

Up-down counting

QUADEN = 0, and CPWMS = 1
counter递增到终值,然后递减起始值,MOD到MOD-1时TOF bit置位。
周期: 2 × (MOD – CNTIN)× period of the FTM counter clock

Free running counter

If (FTMEN = 0) and (MOD = 0x0000 or MOD = 0xFFFF)
FTM counter 从 0x0000 自由运行到0xFFFF,然后从0xFFFF到0x0000 ,此时TOF bit置位。

或者:
• FTMEN = 1
• QUADEN = 0
• CPWMS = 0
• CNTIN = 0x0000, and
• MOD = 0xFFFF
此时也是自由运行计数器。

Counter reset

• Any write to CNT.
• FTM counter synchronization.
• A channel in Input Capture mode with ICRST = 1

Channel Modes

DECAPEN MCOMBINE COMBINE CPWMS MSB:MSA ELSB:ELSA Mode Configuration

Input Capture Mode

The Input Capture mode is selected when:
• DECAPEN = 0
• MCOMBINE = 0
• COMBINE = 0
• CPWMS = 0
• MSB:MSA = 0:0, and
• ELSB:ELSA ≠ 0:0 (边沿选择)
当所选边沿出现,捕获counter值到 CnV,CHF bit置位,若CHIE置位,对应通道中断产生,ICRST = 1时计数器复位到CNTIN。

通道滤波在channels 0, 1, 2, and 3.上有效。

Output Compare mode

The Output Compare mode is selected when:
• DECAPEN = 0
• MCOMBINE = 0
• COMBINE = 0
• CPWMS = 0, and
• MSB:MSA = 0:1
FTM生成具有可编程位置、极性、持续时间和频率的定时脉冲,当Counter计数到CnV时,通道输出可高可低或反转。匹配时,CHF bit置位,若CHIE置位,对应通道中断产生。

Edge-Aligned PWM (EPWM) mode

The Edge-Aligned mode is selected when:
• QUADEN = 0
• DECAPEN = 0
• MCOMBINE = 0
• COMBINE = 0
• CPWMS = 0, and
• MSB = 1
周期: (MOD − CNTIN + 0x0001)
脉冲宽度:(CnV − CNTIN)
脉冲宽度结束时时,CHF bit置位,若CHIE置位,对应通道中断产生。

ELSB:ELSA 决定PWM边沿。

Center-Aligned PWM (CPWM) mode

The Center-Aligned mode is selected when:
• QUADEN = 0
• DECAPEN = 0
• MCOMBINE = 0
• COMBINE = 0, and
• CPWMS = 1
周期: 2 × (MOD − CNTIN)
脉冲宽度:2 × (CnV − CNTIN)
MOD : 0x0001 to 0x7FFF
在 CPWM mode模式,计数器达到Mod再递减到CNTIN。

结语

FlexTimer还有更多的功能未在本文列出,其本质就是有一个计数器,从初始值到终值的计数,再搭配一个通道CnV匹配捕获值,从而形成丰富的功能。
更多请参阅在S32K1专栏 https://blog.csdn.net/kinetis_linux/category_11543275.html?spm=1001.2014.3001.5482。

NXP S32K1 FlexTimer模块相关推荐

  1. 【使用C++开发MCU】05-CAN实例之NXP S32K1 FlexCAN模块

    文章目录 概述 FlexCAN模块框图 协议引擎Protocol Engine (PE) 控制器主机接口Controller Host Interface (CHI) 总线接口单元Bus Interf ...

  2. NXP S32K1 DMA模块

    目录 概述 DMAMUX 操作模式 功能描述 含周期触发 不含收起触发 Always-enabled DMA sources 寄存器 DMA请求源 DMAMUX操作 eDMA 模块架构 eDMA en ...

  3. NXP S32K1 时钟系统

    概述 本文通过剖析NXP S32K1 时钟分布.SCG.PCC等,加深对MCU时钟系统的了解,避免今后开发在小细节上踩坑. SCG (System Clock Generator) 模块用以产生设备的 ...

  4. NXP的MSCAN模块波特率设置

    NXP的MSCAN模块波特率设置 NXP的MSCAN模块支持报文滤波,整个成功接收传输过程是依据message的identifier(ID),ID被设备成功匹配将会产生一个中断请求. MSCAN节点之 ...

  5. NXP S32K RTC模块手册中文

    RTC不能使用唤醒pin,因此相关寄存器位不适用(如RTC_CR[WPS].RTC_CR[WPE].RTC_IER [WPON]). 此外,该装置没有集成电容,因此无法通过软件配置可调谐电容器(包括在 ...

  6. NXP Nfc模块Framework层移植遇到的坑【二】

    8173_M平台下移植NXP的Nfc模块时遇到的问题,同样也是 hal 层与 kernel 通信时出错,不过由于这个项目没有量产计划,所以供应商的支持也比较少,最后的解决方案是 Framework 层 ...

  7. 【2022年的STM32】 04-GPIO特性、使用及与NXP GPIO比较

    概述 本文分析总结STM32 GPIO特点.编程方法. 关于GPIO可以参考Reference manual中GPIO章节或者<AN4899 STM32 microcontroller GPIO ...

  8. 海华AW_CM276NF模块驱动调试

    基本知识 SD和MMC SD (Secure Digital) 与 MMC (Multimedia Card) MMC 是较早的一种记忆卡标准,目前已经被 SD 标准取代. SD 是一种 flash ...

  9. AUTOSAR MCAL详解: SPI (2)

    作者:Stephen Du 免责声明: 本文为个人学习笔记及总结,仅代表个人观点,尽可能保证内容准确性. 所有文字均是自己码出来的,所有图片均为自己勾画(除部分来源于原始标准). 复制/转发请注明来源 ...

最新文章

  1. Apache Kafka之设计
  2. 【Matlab】dde23解时滞时延微分方程
  3. CISP人才年薪30W起步优先考虑它
  4. python neo4j嵌入_Neo4j推出基于Python的嵌入式图数据存储
  5. 【HDU - 4056】Draw a Mess (并查集 or 线段树)
  6. SpriteBuilder物理对象的父子关系
  7. realtek audio console无法连接rpc服务_RPC服务在游戏中的简单运用
  8. 233网校计算机二级c语言,[233网校]2018年全国计算机二级Office高级应用精讲班_计算机二级视频教程...
  9. a*算法的优缺点_垃圾回收的常见算法
  10. 编程之美读书笔记2.15 - 子数组之和的最大值(二维)
  11. 安装ECShop报 Non-static method cls_image::gd_version() should not be called statically 解决方案
  12. 华为鸿蒙系统os新机,鸿蒙OS今日面世,华为将出新机搭载新系统入市场
  13. 跳转页面 bscroll 无法无法从顶部滚动
  14. 02-Epicor二次开发常用代码
  15. UIAutomatorViewer初体验
  16. 职场必知必会:PPT 制作六步心法分享
  17. 模型评价方法及代码实现
  18. Markdown初体验
  19. UIColor的RGB定义颜色(灰色)
  20. linux oracle ins 30131,Oracle安装报错:[INS-30131]Oracle Database Configuration Assistant

热门文章

  1. 记住这些快捷键,让你的电脑效率事半功倍
  2. POI-HSSFWorkbook合并单元格
  3. 【Spark】介绍 快速入门
  4. 基于CodeMirrorTernJS的汉语Javascript编辑器(和翻译器)
  5. python通讯录管理系统姓名年龄号码_基于互联网的移动通讯录管理系统的制作方法...
  6. TexMaker(Latex编辑器)软件的“文献引用”操作:Xelatex方式运行的操作方法
  7. excel批注不显示批注框_批注和批注处理器入门指南[解释]
  8. linux安全(1)
  9. 刚刚下载的Ubuntu界面过小问题解决方案
  10. 第三次工业革命(四)