查看: 2291|回复: 4

[已解决] KE04软件触发PWM同步不成功

[复制链接]

该用户从未签到

7

主题

26

帖子

0

注册会员

Rank: 2

积分
148
最后登录
2021-2-15
发表于 2019-2-12 10:26:58 | 显示全部楼层 |阅读模式
你好!
    我需要将FTM0和FTM2同步,使用软件触发始终不成功,不知啥原因?代码如下:
      // FTM2 配置  
    SIM->PINSEL &= ~SIM_PINSEL_FTM2PS2_MASK;    // 0  T22--PTC2   PWT_IN0  
    //SIM->PINSEL |= SIM_PINSEL_FTM2PS2_MASK;   // 1  T22--PTC4   PWT_IN0
    //SIM->PINSEL |= SIM_PINSEL_FTM2PS3_MASK;   //T23--PTC5
    SIM->PINSEL &= ~SIM_PINSEL_FTM2PS3_MASK;    //T23--PTC3

    SIM->SCGC |= SIM_SCGC_FTM2_MASK;
    FTM2->SC  = 0x0; // CLKS为0,关计数器
    //FTM2->CONF |=0xC0; //DBM 11

    FTM2->MOD = 959; //50KHz    20*48-1
    FTM2->CNTIN=0;
    //FTM2->DEADTIME |= 0xF;
    FTM2->SC &= ~FTM_SC_CPWMS_MASK; //向上或中心对齐模式选择 ,选向上模式

    FTM2->MODE |= 0x5;   //  FTM使能
    FTM2->COMBINE |= 0x232323;    // 全部通道组合互补
    FTM2->CONTROLS[0].CnSC |= 0x8;   //   H真脉冲
    FTM2->CONTROLS[1].CnSC |= 0x8;
    FTM2->CONTROLS[2].CnSC |= 0x8;
    FTM2->CONTROLS[3].CnSC |= 0x8;
    FTM2->CONTROLS[4].CnSC |= 0x8;
    FTM2->CONTROLS[5].CnSC |= 0x8;

    FTM2->CONTROLS[0].CnV  = 300;      
    FTM2->CONTROLS[1].CnV  = 600;  
    FTM2->CONTROLS[2].CnV = 300;
    FTM2->CONTROLS[3].CnV = 600;   
    FTM2->CONTROLS[4].CnV = 0;   
    FTM2->CONTROLS[5].CnV = 500;      
    FTM2->CNT=0;         
    FTM2->SC |= 0x8;   //系统时钟,直通

    FTM2->SYNCONF |= 0x380; //软件触发
    FTM2->SYNC |= 0x4;

   void FTM0_Isr(void)
{   

    FTM2->CONTROLS[4].CnV = 0;  
    FTM2->CONTROLS[5].CnV = 300;
    FTM2->PWMLOAD |=0x200;    //使能更新值加载
    FTM2->SYNC |= 0x80;  //软件触发同步  
}
FTM0是计数器为0时发生中断,在中断程序中软件触发FTM2计数器回0,但无法实现.

采用硬件触发方法可行,但为啥会有2微秒左右延时,在变频起点会变化,约0.5微秒左右的摆动,固定频率时没有这个问题.



最佳答案

一曲琴声 发表于 2019-2-12 21:43 这篇文章我看过,按照上面方案编程,没有成功。 你如果不在中断中执行同步,直接按照应用笔记中4 Example code章节的代码方式去更新,也不能更新吗? 那块我之前测试过,是能工作的 ...
回复

使用道具 举报

该用户从未签到

712

主题

6371

帖子

0

超级版主

Rank: 8Rank: 8

积分
24891
最后登录
2025-7-21
发表于 2019-2-12 18:16:40 | 显示全部楼层
楼主你好,你的FTM0_ISR debug下,看看是否能够进入。
关于FTM的同步,建议你看下这个应用笔记:
http://www.nxp.com/docs/en/application-note/AN4560.pdf
回复 支持 反对

使用道具 举报

该用户从未签到

7

主题

26

帖子

0

注册会员

Rank: 2

积分
148
最后登录
2021-2-15
 楼主| 发表于 2019-2-12 21:43:22 | 显示全部楼层
小恩GG 发表于 2019-2-12 18:16
楼主你好,你的FTM0_ISR debug下,看看是否能够进入。
关于FTM的同步,建议你看下这个应用笔记:
http://w ...

这篇文章我看过,按照上面方案编程,没有成功。
回复 支持 反对

使用道具 举报

该用户从未签到

7

主题

26

帖子

0

注册会员

Rank: 2

积分
148
最后登录
2021-2-15
 楼主| 发表于 2019-2-13 15:32:14 | 显示全部楼层
请问有哪位大师做过用软件触发同步PWM?
回复 支持 反对

使用道具 举报

该用户从未签到

712

主题

6371

帖子

0

超级版主

Rank: 8Rank: 8

积分
24891
最后登录
2025-7-21
发表于 2019-2-18 11:29:40 | 显示全部楼层
一曲琴声 发表于 2019-2-12 21:43
这篇文章我看过,按照上面方案编程,没有成功。

你如果不在中断中执行同步,直接按照应用笔记中4 Example code章节的代码方式去更新,也不能更新吗?
那块我之前测试过,是能工作的。
建议你先单独测试下FTM2的软件同步,应该是可以工作的。
回复 支持 反对

使用道具 举报

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

本版积分规则

关闭

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

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

GMT+8, 2025-7-22 03:07 , Processed in 0.092553 second(s), 26 queries , MemCache On.

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.

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