【经验分享】FTM进阶特性介绍 —【组合与互补模式】

2020-02-21 21:28发布

FTM进阶特性介绍 —【组合与互补模式】
       上上周与大伙分享了FTM的双边沿捕获特性,大伙是不是真真切切的感受到FTM在PWM周期与占空比测量方面很给力呢,这次咱们再接再励探讨一下FTM在PWM输出方面有什么给力的地方?
FTM进阶特性介绍【组合与互补模式】.pdf (255.78 KB, 下载次数: 22) 2014-6-9 11:16 上传 点击文件名下载附件
       FTM组合模式例程代码如下,至于互补模式,大家可以根据参考手册介绍,在组合模式例程代码的基础上修改:
FTM进阶特性介绍 —【组合与互补模式】.rar (778 Bytes, 下载次数: 10) 2014-6-9 11:17 上传 点击文件名下载附件




PS:本帖可从飞思卡尔版块置顶帖:飞思卡尔Kinetis资料大本营飞思卡尔论坛支持小组【经验分享】帖汇总链接进入。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
32条回答
cl1cl1cl1cl1
1楼-- · 2020-02-23 12:25
看看看看
湛泸骏驰
2楼-- · 2020-02-23 16:49
学习学习           
FSL_TICS_ZP
3楼-- · 2020-02-23 19:46
cl1cl1cl1cl1 发表于 2014-6-10 20:44
看看看看

谢谢支持,如有问题欢迎来论坛中交流!
FSL_TICS_ZP
4楼-- · 2020-02-23 20:30
 精彩回答 2  元偷偷看……
提线木偶
5楼-- · 2020-02-24 00:09
FSL_TICS_ZP 发表于 2014-6-10 17:41
希望对你有帮助,有什么问题论坛中交流,OK!

我在做无刷直流电机控制   按照你说的初始化 FTM0_combine_PWM_init();
然后  io中断获取了霍尔信号的换相字,然后进入换相程序   如下   
switch (value)
  {
    case 5:   /* -->BA */
            FTM0_OUTMASK = 0x30;     /* mask pwm4, pwm5 */
            FTM0_SWOCTRL = 0x0203;   /* pwm0 output 0, pwm1 output 1 */
            Q2_TOP_B_PWM    (0);  /* pwm2 and pwm3 complement output */
        Q5_BOTTOM_B_PWM (pwm_value);  /* channel n =0 and channel n+1 = pwm value */  
      break;
   
    case 1:   /* -->CA */
            FTM0_OUTMASK = 0x0C;     /* mask pwm2, pwm3 */
            FTM0_SWOCTRL = 0x0203;   /* pwm0 output 0, pwm1 output 1 */
            Q3_TOP_C_PWM    (0);  /* pwm4 and pwm5 complement output */
        Q6_BOTTOM_C_PWM (pwm_value);  /* channel n =0 and channel n+1 = pwm value */  
      break;
      
    case 3:   /* -->CB */
            FTM0_OUTMASK = 0x03;     /* mask pwm0, pwm1 */
            FTM0_SWOCTRL = 0x080C;   /* pwm2 output 0, pwm3 output 1 */
            Q3_TOP_C_PWM    (0);  /* pwm4 and pwm5 complement output */
        Q6_BOTTOM_C_PWM (pwm_value);  /* channel n =0 and channel n+1 = pwm value */
      break;
      
    case 2:   /* -->AB */
            FTM0_OUTMASK = 0x30;     /* mask pwm4, pwm5 */
            FTM0_SWOCTRL = 0x080C;   /* pwm2 output 0, pwm3 output 1 */
            Q1_TOP_A_PWM    (0);  /* pwm0 and pwm1 complement output */
        Q4_BOTTOM_A_PWM (pwm_value);  /* channel n =0 and channel n+1 = pwm value */                           
      break;
      
    case 6:   /* -->AC */
            FTM0_OUTMASK = 0x0C;     /* mask pwm2, pwm3 */
            FTM0_SWOCTRL = 0x2030;   /* pwm4 output 0, pwm5 output 1 */
            Q1_TOP_A_PWM    (0);  /* pwm0 and pwm1 complement output */
        Q4_BOTTOM_A_PWM (pwm_value);  /* channel n =0 and channel n+1 = pwm value */                              
      break;
      
    case 4:    /* -->BC */
            FTM0_OUTMASK = 0x03;     /* mask pwm0, pwm1 */
            FTM0_SWOCTRL = 0x2030;   /* pwm4 output 0, pwm5 output 1 */
            Q2_TOP_B_PWM    (0);  /* pwm0 and pwm1 complement output */
        Q5_BOTTOM_B_PWM (pwm_value);  /* channel n =0 and channel n+1 = pwm value */  
      break;
      
    default:
            break;
  }
//  SIM_SOPT |= SIM_SOPT_DELAY(pwm_value>>2);
  FTM0_PWMLOAD = 0x23F;
}

这是之前定义的   
#define Q1_TOP_A       PTC1
#define Q4_BOTTOM_A    PTA4
#define Q2_TOP_B       PTA5
#define Q5_BOTTOM_B    PTC4
#define Q3_TOP_C       PTD4
#define Q6_BOTTOM_C    PTD5

#define Q1_TOP_A_PWM(pwm_value)       FTM0_C0V = pwm_value     
#define Q4_BOTTOM_A_PWM(pwm_value)    FTM0_C1V = pwm_value      
#define Q2_TOP_B_PWM(pwm_value)       FTM0_C2V = pwm_value     
#define Q5_BOTTOM_B_PWM(pwm_value)    FTM0_C3V = pwm_value   
#define Q3_TOP_C_PWM(pwm_value)       FTM0_C4V = pwm_value     
#define Q6_BOTTOM_C_PWM(pwm_value)    FTM0_C5V = pwm_value     

但是我并没有输出PWM呢  为什么呢   还有你用什么方法能看见pwm  我用示波器看的   编译用的iar  不知道能不能直观看见互补的pwm呢   求方法  
upssee
6楼-- · 2020-02-24 03:51
正需要,这几天看文档,有例程,刚好。谢谢

一周热门 更多>