【经验分享】FTM进阶特性介绍—【双边沿捕捉】

2020-02-21 21:09发布

本帖最后由 FSL_TICS_Robin 于 2014-7-18 14:25 编辑

FTM进阶特性介绍 —【双边沿捕捉】
在经验分享《FTM与TPM差异简析》一文中,对FTM和TPM的差异作了详细的介绍,但并未就FTM的进阶功能如:硬件增加死区,故障控制输入,增强触发功能,脉冲双边沿捕捉,初始化和极性控制的使用作过多的阐述。为了加深大家对FTM功能的理解,本人会陆续推出FTM进阶功能使用的经验分享,欢迎大家下载浏览及讨论交流。闲话不叙,下面介绍脉冲双边沿捕捉特性,作为FTM进阶功能使用的经验分享的头篇,希望大伙多多支持。
FTM进阶特性介绍【双边沿捕捉】.pdf (285.74 KB, 下载次数: 31) 2014-5-22 11:33 上传 点击文件名下载附件
pwm_test.rar (1.3 MB, 下载次数: 32) 2014-5-22 11:33 上传 点击文件名下载附件




PS:本帖可从飞思卡尔版块置顶帖:飞思卡尔Kinetis资料大本营飞思卡尔论坛支持小组【经验分享】帖汇总链接进入。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
35条回答
FSL_TICS_Robin
1楼-- · 2020-02-26 00:58
本帖最后由 FSL_TICS_Robin 于 2014-7-21 10:29 编辑
提线木偶 发表于 2014-7-21 10:02
版主说的通道 是不是进入中断后的这个判断啊    void ftmi_isr(void)
                                  ...


建议你看一下芯片对应的参考手册的,我这从K60 100MHz主频、144引脚封装、硅版本Rev2.x的参考手册K60P144M100SF2V2RM里截了些描述FTM中断的:
40.6 FTM Interrupts
40.6.1 Timer Overflow Interrupt
The timer overflow interrupt is generated when (TOIE = 1) and (TOF = 1).
40.6.2 Channel (n) Interrupt
The channel (n) interrupt is generated when (CHnIE = 1) and (CHnF = 1).
40.6.3 Fault Interrupt
The fault interrupt is generated when (FAULTIE = 1) and (FAULTF = 1).

通道中断就是指:
40.6.2 Channel (n) Interrupt
The channel (n) interrupt is generated when (CHnIE = 1) and (CHnF = 1).
所以你一旦开启通道中断且通道中断发生之后,就可以通过查询CHnF标志来判断此次进FTM中断是否为以上三种中断里的通道事件触发的。

修改原因:添加文档链接。
FSL_TICS_Robin
2楼-- · 2020-02-26 03:42
提线木偶 发表于 2014-7-21 09:45
我没有那个软件,不知道你说的开启FTM的Channel (n) Interrupt,我开了ftm的中断   但是具体可以开启某个 ...

CodeWarrior10.x可以从飞思卡尔官网 CW-MCU10: CodeWarrior for MCUs(Eclipse IDE) - ColdFire、56800/E DSC、Kinetis、Qorivva 56xx、RS08/S08、S12Z 下载页面选择以下安装包:
Evaluation: CodeWarrior for Microcontrollers 10.6 (Eclipse, Offline) 一个月的评估板
Special Edition: CodeWarrior for Microcontrollers 10.6 (Eclipse, Offline) 代码大小限制的特别版
提线木偶
3楼-- · 2020-02-26 04:22
 精彩回答 2  元偷偷看……
FSL_TICS_Robin
4楼-- · 2020-02-26 05:04
提线木偶 发表于 2014-7-22 13:43
谢谢,通道那个我是那个弄得  昨天改了改  可以进中断了   我还有点没想明白   我现在是双边沿捕获   选 ...

你的FTM模块有双边沿捕获功能,需要使能该模式。
以先高后低的PWM举例:
硬件上将PWM信号接到通道n的输入端;
软件上将通道n设置成上升沿、通道n+1设置成下降沿,那么确认发生上升沿后会把该时刻的FTMx_CNT存入C(n)V并触发通道n的中断,确认发生下降沿后会把该时刻的FTMx_CNT存入C(n+1)V并触发通道n+1的中断。(当然只有你使能了CH(n)IE或CH(n+1)IE位才能让通道标志CH(n+1)F或CH(n+1)F去触发channel (n)或channel (n+1)的中断)
你进入中断后通过判断通道标志CH(n)F或CH(n+1)F 对应地去读FTM0_CnV或FTM0_C(n+1)V就可以了。
FTM0_C(n+1)V和FTM0_CnV的差值就可以推算出高电平时间,两次FTM0_CnV的差值就可以推算出周期。

Dual Edge Capture mode block diagram.jpg (49.4 KB, 下载次数: 0)

下载附件

2014-7-22 14:52 上传

提线木偶
5楼-- · 2020-02-26 09:09
FSL_TICS_Robin 发表于 2014-7-22 15:13
你的FTM模块有双边沿捕获功能,需要使能该模式。
以先高后低的PWM举例:
硬件上将PWM信号接到通道n的输入 ...

非常感谢   这个是资料里说的一般方法吗   
使用MCU测量输入脉冲周期的一般方法是:设置脉冲上升沿触发或下降沿触发中断,在中断函数中,读取MCU中的Timer模块的计数寄存器的值,并用后次读取的值与前次读取的值相减,推导出脉冲周期值      这个是不是只要设置输入捕获模式就可以  
那双边缘捕获模式和输入捕获模式有什么区别呢 ?   我先试试这个     
FSL_TICS_Robin
6楼-- · 2020-02-26 09:49
提线木偶 发表于 2014-7-23 10:50
非常感谢   这个是资料里说的一般方法吗   
使用MCU测量输入脉冲周期的一般方法是:设置脉冲上升沿触发或 ...

我在29楼描述的是FTM的双边沿捕捉模式呀
双边沿捕获模式只需要硬件连接一个引脚,CnV的值会根据channel n 和channel n+1的配置捕获

你还是要多看看参考手册和楼主的介绍呢

一周热门 更多>