查看: 4583|回复: 5

[已解决] FTM2无故停止运行(已解决)

[复制链接]

该用户从未签到

3

主题

26

帖子

0

注册会员

Rank: 2

积分
80
最后登录
1970-1-1
发表于 2013-11-18 10:07:48 | 显示全部楼层 |阅读模式
FTM2无故停止运行,且除复位外无法恢复运行,每次为运行一段时间后停止运行,已找原因多天,无法解决!
void FTM2_Init()
{
//PORTC_PCR3= PORT_PCR_MUX(4); // 设置引脚C3引脚为FTM0_CH2功能
//PORTC_PCR4= PORT_PCR_MUX(4); // 设置引脚C4引脚为FTM0_CH3功能
//PTD4-7引脚为FTM0_CH4-7功能
SIM->SCGC3|=SIM_SCGC3_FTM2_MASK;//使能FTM0时钟
SIM->SOPT4|=SIM_SOPT4_FTM2FLT0_MASK;//FTM2的故障输入0选择CMP0输出

FTM2->SC=FTM_SC_CLKS(1)|FTM_SC_PS(2);//中断禁止,时钟源来自总线时钟50MHz,不分频,CLKS=01,PS=0,CPWMS=0,递增计数
FTM2->MODE =FTM_MODE_WPDIS_MASK|FTM_MODE_FTMEN_MASK|FTM_MODE_FAULTM(3);//写保护禁止,FTMEN=1,
//PWMSYNC=0 MOD,CnV, OUTMASK,和FTM counter几个寄存器的同步可以选择软件触发或硬件触发
FTM2->QDCTRL&=~FTM_QDCTRL_QUADEN_MASK;//禁止正交解码模式

FTM2->CONTROLS[0].CnSC = FTM_CnSC_ELSB_MASK|FTM_CnSC_DMA_MASK|FTM_CnSC_CHIE_MASK;//ELSB=1,ELSA=0,右对齐,先低后高

FTM2->CONTROLS[1].CnSC = FTM_CnSC_ELSB_MASK|FTM_CnSC_DMA_MASK|FTM_CnSC_CHIE_MASK;

FTM2->FLTCTRL=//FTM_FLTCTRL_FFLTR0EN_MASK|//故障输入0 过滤器使能
FTM_FLTCTRL_FAULT0EN_MASK;//故障输入0 使能
FTM2->OUTMASK=0X0FE;//通道0输出,屏蔽其它通道
FTM2->OUTINIT = 0; /* 输出初始化默认 对应于0~7通道 */
FTM2->EXTTRIG =0; /* 禁用外部触发 */
FTM2-&gtOL = 0; /* 输出极性 0 高电平有效 */
FTM2->INVCTRL = 0; /* 反转控制 */
FTM2->SWOCTRL = 0; /* 软件输出控制 */
FTM2->CNT=0;
FTM2->CNTIN=0;//FTM0计数器初始值为0
FTM2->MOD=_FTM2MOD_;//结束值,周期为(MOD-CNTIN+1)*时钟周期=10ms
FTM2->CONTROLS[0].CnV=10;
FTM2->CONTROLS[1].CnV=_NEND;//高电平1.5ms
FTM2-&gtWMLOAD = FTM_PWMLOAD_LDOK_MASK; /* FTM PWM Load */
FTM2->COMBINE= FTM_COMBINE_COMBINE0_MASK | //FTM2通道(0,1)联合使用
FTM_COMBINE_SYNCEN0_MASK|// |//使能FTM0通道(0,1)PWM同步
FTM_COMBINE_FAULTEN0_MASK;//故障控制使能
FTM2->SYNCONF=FTM_SYNCONF_SWWRBUF_MASK;//使能MOD,CNTIN,CV寄存器的软件触发同步
FTM2->SYNC=FTM_SYNC_CNTMIN_MASK|FTM_SYNC_CNTMAX_MASK|FTM_SYNC_SWSYNC_MASK|FTM_SYNC_REINIT_MASK ;//设置load point//使能软件触发同步
}
在中断中有调整频率的代码。
FTM2->MOD=Error;//结束值,周期为(MOD-CNTIN+1)*时钟周期=10ms
FTM2->CONTROLS[0].CnV=10;//高电平1.5ms
FTM2->CONTROLS[1].CnV=Error-20;//高电平1.5ms
FTM2->SYNC=
FTM_SYNC_CNTMIN_MASK|FTM_SYNC_CNTMAX_MASK|FTM_SYNC_SWSYNC_MASK|FTM_SYNC_REINIT_MASK ;//设置load point//使能软件触发同步
我知道答案 目前已有4人回答
回复

使用道具 举报

该用户从未签到

145

主题

4926

帖子

0

金牌会员

Rank: 6Rank: 6

积分
9267
最后登录
1970-1-1
发表于 2013-11-18 12:44:15 | 显示全部楼层

RE:FTM2无故停止运行

你好,请问你用的芯片型号是多少?
另外你的停止工作是值FTM没有输出吗?它的计数器是否还计数呢?
请将问题现象描述仔细些,方便我们查找问题。
回复 支持 反对

使用道具 举报

该用户从未签到

3

主题

26

帖子

0

注册会员

Rank: 2

积分
80
最后登录
1970-1-1
 楼主| 发表于 2013-11-19 03:49:57 | 显示全部楼层

FTM2无故停止运行具体情况

芯片为k60,官方的tower板,停止时,计数器在运行,但是无输出变化,且不再产生dma请求,两个通道标记即cnsc寄存器中及状态寄存器的chif位标记均置位且无法通过读写清除。除了复位外即使重新初始化都无济于事。重新复位后,又正常运行,几分钟后,又出现同样情形
回复 支持 反对

使用道具 举报

该用户从未签到

145

主题

4926

帖子

0

金牌会员

Rank: 6Rank: 6

积分
9267
最后登录
1970-1-1
发表于 2013-11-19 11:36:27 | 显示全部楼层

回复:FTM2无故停止运行(正解)

你好,请问你是不是在DEBUG状态下才出现这种问题的呢?
如果直接烧进去调试是不是还有这样的问题?因为看你的代码并没有设置BDMMODE,所以在debug状态下肯定会有问题的。
BDM情况如下表,
FTMS.jpg
回复 支持 反对

使用道具 举报

该用户从未签到

3

主题

26

帖子

0

注册会员

Rank: 2

积分
80
最后登录
1970-1-1
 楼主| 发表于 2013-11-19 16:56:51 | 显示全部楼层

回复:FTM2无故停止运行

谢谢,没注意BDM模式!
回复 支持 反对

使用道具 举报

该用户从未签到

145

主题

4926

帖子

0

金牌会员

Rank: 6Rank: 6

积分
9267
最后登录
1970-1-1
发表于 2013-11-19 17:00:59 | 显示全部楼层

回复:FTM2无故停止运行

回复第 5 楼 于2013-11-19 16:56:51发表:
谢谢,没注意BDM模式!
 

不客气,感谢你对飞思卡尔产品的关注,如还有问题欢迎提出交流!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /3 下一条

Archiver|手机版|小黑屋|恩智浦技术社区

GMT+8, 2025-10-12 11:39 , Processed in 0.101395 second(s), 27 queries , MemCache On.

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.

快速回复 返回顶部 返回列表