[Kinetis] 【读书笔记5 探索定时器模块之FTM】

[复制链接]
2852|18
 楼主| springvirus 发表于 2013-10-24 14:55 | 显示全部楼层 |阅读模式
本帖最后由 springvirus 于 2013-10-24 14:57 编辑

从名字FlexTimer看,就知道此模块会有多种设置来实现不同的功能。

计数器的时钟源选择,SC中的CLKS[1:0],可以选择无时钟源,系统时钟,固定频率时钟,外部时钟。 计数器可以工作在以下多种方式下。

I.当QUANEN=0且CPWMS=0,计数器便工作在向上计数方式。初值由CNTIN指定,溢出值由MOD指定,当计数器 值到达MOD时,此时计数器重载CNTIN的值,产生溢出中断,TOF置位。 CNTIN可以是正数,也可以是负数,若是负数,以补码(two's complement)数值赋值 整个计数周期 = (MOD - CNTIN + 1)* 计数器时钟
【这里顺便复习下补码: 正数的补码与原码相同,负数的补码为除了符号位,原码各位取反,再加1 例如,求-6的补码,原码为1000 0110,各位取反1111 1001,再加1,为1111 1010 若赋初值为-6,这里CNTIN是16位寄存器,所以1000 0000 0000 0110->1111 1111 1111 1001
->1111 1111 1111 1010,CNTIN = 0xFFFA】
注意,CNTIN值要小于MOD值,否则会有不可预测的结果。

II.当QUANEN=0且CPWMS=1,计数器便工作在向上向下计数方式。初值由CNTIN指定,溢出值由MOD指定, 当计数器从CNTIN增值到达MOD时,再减值到CNTIN,来回反复,当记数器值由MOD变为MOD-1时,产生 中断,TOF置位。
【在Figure 39-171下面看到,"使用向上向下计数时,CNTIN最好是0x0000",为什么? 觉得只要满足CNTIN<MOD的CNTIN值都可以吧~~~】

III.自由运行方式
1. FTMEN=0且MOD=0x0000或MOD=0xFFFF
2. FTMEN=1且QUANEN=0且CPWMS=0且CNTIN=0x0000且MOD=0x0000或MOD=0xFFFF
这2种设置都会使计数器工作在此方式下,其实就是一个向上计数到16位最大值的定时器了。

IV.输入捕捉方式
当DECAPEN=0且COMBINE=0且CPWMS=0且(MSnB:MSnA=0:0)且(ELSnB:ELSnA!=0:0),计数器便工作在输入捕捉, 当输入通道有信号跳变时,计数器值便会被捕捉到CnV中,如果CHnIE=1,则CHnF置位。 ELSnB:ELSnA的值决定了是跳变,是上升沿还是下降沿,进行捕捉。 注意,可以探测到的输入信号的最大频率为系统时钟的1/4,原因是奈奎斯特采样原理。

V.输出比较方式
当DECAPEN=0且COMBINE=0且CPWMS=0且(MSnB:MSnA=0:1),计数器便工作在输出比较。 计数器为向上计数,当等于CnV的值时,输出信号可以置1,清0,或者翻转,中断使能的话,产生中断。
【那么CnV的值应该是在计数器初始化时被赋值的吧,像CNTIN一样的?】

 楼主| springvirus 发表于 2013-10-24 14:57 | 显示全部楼层
本帖最后由 springvirus 于 2013-10-24 15:08 编辑

VI.边沿对齐PWM方式和中心对齐PWM方式
QUADEN=0,DECAPEN=0,COMBINE=0,CPWMS=0,MSnB=1为前者,
QUADEN=0,DECAPEN=0,COMBINE=0,CPWMS=1为后者。
EPWM(Edge-Aligned PWM)周期为(MOD - CNTIN + 1)* 计数器时钟,脉宽为(CnV - CNTIN), CPWM(Center-Aligned PWM)周期为2*(MOD - CNTIN)*计数器时钟,脉宽为2*(CnV - CNTIN), 前者为向上计数,后者为向上向下计数都有。 二者的输出都有有左对齐(电平为先高后低)和右对齐(电平为先低后高), 以计数器溢出时为先,计数到达CnV时为后。来幅图更能说明运行过程:
未命名.JPG

VII.组合方式
FTMEN=1,QUADEN=0,DECAPEN=0,COMBINE=1,CPWMS=0,计数器工作在组合方式。 例如两个通道为n和n+1,那么计数时通过计数器值与CnV和C(n+1)V的比较来对PWM进行控制翻转,此 PWM在通道n输出,下图是个很好的解释:
未命名2.JPG

VIII.互补方式
FTMEN=1,QUADEN=0,DECAPEN=0,COMBINE=1,CPWMS=0,COMP=1,工作在互补方式,此时通道n+1的输出 是通道n的反转波形,见下图:
未命名3.JPG

IX.正交解码方式
FTMEN=1,QUANEN=1,计数器工作在此方式下,使用输入信号的相A和相B,两路信号来控制计数器的增减值。 PHAPOL和PHBPOL控制相A和相B的输入极性。
QUADMODE控制计数方式的具体细节,为1时,相B控制计数方向,相A控制计数速率,为0时,相A和相B的关系 控制计数方向,相A和相B决定计数速率。 当PHAPOL=0,PHBPOL=0时, 有4种情况,计数器增值
1. 相A为上升沿,相B为逻辑0
2. 相A为逻辑1, 相B为上升沿
3. 相A为逻辑0, 相B为下降沿
4. 相A为下降沿,相B为逻辑1
有4种情况,计数器减值
1. 相A为下降沿,相B为逻辑0
2. 相A为逻辑1, 相B为下降沿
3. 相A为逻辑0, 相B为上升沿
4. 相A为上升沿,相B为逻辑1
【总觉着正交解码方式很适合一些特定场合的应用~~~】

X.BDM方式
只是说通道输出将被冻结,计数器停止。 【没搞懂该方式的具体作用,用在什么场合下呢?】

【总结: 除了基本的定时器功能,主要是提供了多种灵活的PWM输出以满足各种场合PWM控制的需求。 话说控制舵机应该很轻松啊~~~】
FSL_TICS_ZJJ 发表于 2013-10-24 15:53 | 显示全部楼层
回答你提出的两个问题:
II,我觉得CNTIN非0从原理上讲也是可以的,用户手册中也是一种推荐。

V.CnV是通道的比较值,这个在初始化通道的时候会定义一个值,中途可以修改。CNTIN是计数器的起始值。
这点,你其实还可以从FTM的结构上看的更清楚。
 楼主| springvirus 发表于 2013-10-24 16:00 | 显示全部楼层
FSL_TICS_ZJJ 发表于 2013-10-24 15:53
回答你提出的两个问题:
II,我觉得CNTIN非0从原理上讲也是可以的,用户手册中也是一种推荐。

学习了,thanks!
黄小俊 发表于 2013-10-24 17:30 | 显示全部楼层
谁能告诉我为什么我的书一直没有来??
motodefy 发表于 2013-10-24 17:45 | 显示全部楼层
学习了!!
123de7 发表于 2013-10-24 20:12 | 显示全部楼层
定时器 不愧 是定时器 ,好复杂 哦
KuMo_2011 发表于 2013-10-24 22:07 | 显示全部楼层
FTM除了书上讲的模块,还有些什么模块呢?
FSL_TICS_ZJJ 发表于 2013-10-25 10:09 | 显示全部楼层
KuMo_2011 发表于 2013-10-24 22:07
FTM除了书上讲的模块,还有些什么模块呢?

书上讲的FTM只是一小部分,还有很多内容你可以去查看reference manual,我给你传个:
K60P144M100SF2RM.zip (8.78 MB, 下载次数: 29)

FSL_TICS_Robin 发表于 2013-11-4 17:48 | 显示全部楼层
KuMo_2011 发表于 2013-10-24 22:07
FTM除了书上讲的模块,还有些什么模块呢?

FTM的双边沿捕捉模式还是蛮不错的,可以看下。
FSL_TICS_Jeremy 发表于 2013-11-4 22:38 | 显示全部楼层
FTM模块是个复杂的模块,是块硬骨头哦。
ddc21ic 发表于 2013-11-5 09:35 | 显示全部楼层
功能强大,讲得不够详细,用不好
 楼主| springvirus 发表于 2013-11-5 09:44 | 显示全部楼层
ddc21ic 发表于 2013-11-5 09:35
功能强大,讲得不够详细,用不好

理论+反复实践+总结经验,方是上策~~
FSL_TICS_Robin 发表于 2013-11-5 10:00 | 显示全部楼层
FTM的输入捕捉功能还是很强大的,光输入捕捉还分双边沿捕捉模式(Dual Edge Capture mode)和输入捕捉模式(Input Capture mode)。
FSL_TICS_Robin 发表于 2013-11-5 10:05 | 显示全部楼层
中文书引导我们入门还是蛮不错的,但现在很多书仅介绍了最常用的一些功能,没参考手册那么完整。
想要具体深入地了解模块功能,还是要回归英文Reference Manual的。
吴伯箫 发表于 2017-6-28 23:00 | 显示全部楼层
springvirus 发表于 2013-10-24 14:57
VI.边沿对齐PWM方式和中心对齐PWM方式
QUADEN=0,DECAPEN=0,COMBINE=0,CPWMS=0,MSnB=1为前者,
QUADEN= ...

你好问一下关于用中间对齐的模式下输出互补pwm波是这样的一个模式来决定占空比
吴伯箫 发表于 2017-6-28 23:00 | 显示全部楼层
springvirus 发表于 2013-10-24 14:57
VI.边沿对齐PWM方式和中心对齐PWM方式
QUADEN=0,DECAPEN=0,COMBINE=0,CPWMS=0,MSnB=1为前者,
QUADEN= ...

你好问一下关于用中间对齐的模式下输出互补pwm波是这样的一个模式来决定占空比
 楼主| springvirus 发表于 2017-6-29 12:33 | 显示全部楼层
吴伯箫 发表于 2017-6-28 23:00
你好问一下关于用中间对齐的模式下输出互补pwm波是这样的一个模式来决定占空比 ...

当时也是读书笔记,没有深入研究和跑板子。。。
 楼主| springvirus 发表于 2017-6-29 12:34 | 显示全部楼层
吴伯箫 发表于 2017-6-28 23:00
你好问一下关于用中间对齐的模式下输出互补pwm波是这样的一个模式来决定占空比 ...

当时也是读书笔记,没有深入研究和跑板子。。。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

128

主题

4603

帖子

14

粉丝
快速回复 在线客服 返回列表 返回顶部