NXP S32K1 FlexTimer模块

news/2025/2/5 3:57:48/

概述

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选择错误监测输入。
falut
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;

内存映射

reg

时钟源

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。


http://www.ppmy.cn/news/110765.html

相关文章

联想E420开机黑屏20秒的解决办法

2011年买的电脑,联想E420 1141A64,自己装的系统,发现开机特别慢,windows7的动画结束之后,总会有一个20秒左右的黑屏时间。非常不爽。而且,电脑运行也很慢,总是卡住,没有三年前买的Th…

K210 串口通信

1. 头文件 #需要调用的库文件 from machine import UART from Maix import GPIO from fpioa_manager import fm import ustruct from 模块 import 方法或者函数 函数可以直接使用,不用 machine.UART 2. 管脚映射 #映射UART2的两个引脚 fm.register(GPIO.GPIOHS1…

【K210】K210学习笔记(总)

【K210】K210学习笔记(总) 前言K210学习笔记传送门 前言 先说一下本篇博文是用于对 K210 系列学习笔记做一个集中传送门的,方便后续大家可以快速找到对应博文,因此本篇博文对大家的帮助可能要随着时间才能越来越大哦(…

KDC+NFS 服务配置

Linux1.skills.com Linux1.skills.com 10.10.20.101 DNS服务器 Linux2.skills.com Linux2.skills.com 10.10.20.102 KDC服务器 Linux3.skills.com Linux3.skills.com 10.10.20.103 NFS和kdc客户 Linux4.skills.com Linux4.skills.com 10.10.20.104 NFS和kdc客户…

K210开发1--简介

基于Sipeed Maixduino 开发板 开发 因为对python熟悉,先由maixpy进行开发,在使用boss的固件系统开发。 硬件 型号:Maixduino 芯片:k210-AI模块 esr32-WiFi蓝牙 模组: 项目说明CPURISC-V双核64比他、内置FPU、400Mhz标准频(可超频…

K210系列开发板介绍

勘智K210是一款什么样的芯片? 勘智K210是小编去年买的一块AIRV R3开发套件时接触的一款芯片。性价比不错,如下图所示:具有双核64位处理器,并自带独立FPU;有一块KPU用于神经网络加速单元;还有一块APU用于语音…

Kendryte K210板级支持包说明

Kendryte K210板级支持包说明 1. 简介 Kendryte K210 是集成机器视觉与机器听觉能力的系统级芯片(SoC)。使用台积电 (TSMC) 超低功耗的 28 纳米先进制程,具有双核64位处理器,拥有较好的功耗性能,稳定性与可靠性。该方案力求零门槛开发&…

K210入门必看(MAIX DOCK)(一)

目录 K210芯片上IO口 板子上的引脚 如何理解【引脚]映射[内部功能]? fpioa_manage 类 1、register(pin, func, forceTrue) 2、unregister(pin) 介绍 3、get_pin_by_function(pin) 4、 get_gpio_used() FPIOA类介绍 1、set_function(pin, func)函数 2、…