打印
[Kinetis]

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

[复制链接]
2221|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时为后。来幅图更能说明运行过程:


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


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


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!

使用特权

评论回复
5
黄小俊| | 2013-10-24 17:30 | 只看该作者
谁能告诉我为什么我的书一直没有来??

使用特权

评论回复
6
motodefy| | 2013-10-24 17:45 | 只看该作者
学习了!!

使用特权

评论回复
7
123de7| | 2013-10-24 20:12 | 只看该作者
定时器 不愧 是定时器 ,好复杂 哦

使用特权

评论回复
8
KuMo_2011| | 2013-10-24 22:07 | 只看该作者
FTM除了书上讲的模块,还有些什么模块呢?

使用特权

评论回复
9
FSL_TICS_ZJJ| | 2013-10-25 10:09 | 只看该作者
KuMo_2011 发表于 2013-10-24 22:07
FTM除了书上讲的模块,还有些什么模块呢?

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

使用特权

评论回复
10
FSL_TICS_Robin| | 2013-11-4 17:48 | 只看该作者
KuMo_2011 发表于 2013-10-24 22:07
FTM除了书上讲的模块,还有些什么模块呢?

FTM的双边沿捕捉模式还是蛮不错的,可以看下。

使用特权

评论回复
11
FSL_TICS_Jeremy| | 2013-11-4 22:38 | 只看该作者
FTM模块是个复杂的模块,是块硬骨头哦。

使用特权

评论回复
12
ddc21ic| | 2013-11-5 09:35 | 只看该作者
功能强大,讲得不够详细,用不好

使用特权

评论回复
13
springvirus|  楼主 | 2013-11-5 09:44 | 只看该作者
ddc21ic 发表于 2013-11-5 09:35
功能强大,讲得不够详细,用不好

理论+反复实践+总结经验,方是上策~~

使用特权

评论回复
14
FSL_TICS_Robin| | 2013-11-5 10:00 | 只看该作者
FTM的输入捕捉功能还是很强大的,光输入捕捉还分双边沿捕捉模式(Dual Edge Capture mode)和输入捕捉模式(Input Capture mode)。

使用特权

评论回复
15
FSL_TICS_Robin| | 2013-11-5 10:05 | 只看该作者
中文书引导我们入门还是蛮不错的,但现在很多书仅介绍了最常用的一些功能,没参考手册那么完整。
想要具体深入地了解模块功能,还是要回归英文Reference Manual的。

使用特权

评论回复
16
吴伯箫| | 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波是这样的一个模式来决定占空比

使用特权

评论回复
17
吴伯箫| | 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波是这样的一个模式来决定占空比

使用特权

评论回复
18
springvirus|  楼主 | 2017-6-29 12:33 | 只看该作者
吴伯箫 发表于 2017-6-28 23:00
你好问一下关于用中间对齐的模式下输出互补pwm波是这样的一个模式来决定占空比 ...

当时也是读书笔记,没有深入研究和跑板子。。。

使用特权

评论回复
19
springvirus|  楼主 | 2017-6-29 12:34 | 只看该作者
吴伯箫 发表于 2017-6-28 23:00
你好问一下关于用中间对齐的模式下输出互补pwm波是这样的一个模式来决定占空比 ...

当时也是读书笔记,没有深入研究和跑板子。。。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

127

主题

4558

帖子

14

粉丝