搜索
bottom↓
回复: 32

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

[复制链接]

出0入0汤圆

发表于 2014-6-9 11:17:39 | 显示全部楼层 |阅读模式
FTM进阶特性介绍 —【组合与互补模式】

       上上周与大伙分享了FTM的双边沿捕获特性,大伙是不是真真切切的感受到FTM在PWM周期与占空比测量方面很给力呢,这次咱们再接再励探讨一下FTM在PWM输出方面有什么给力的地方?

       FTM组合模式例程代码如下,至于互补模式,大家可以根据参考手册介绍,在组合模式例程代码的基础上修改:





PS:本帖可从飞思卡尔版块置顶帖:飞思卡尔Kinetis资料大本营飞思卡尔论坛支持小组【经验分享】帖汇总链接进入。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

阿莫论坛20周年了!感谢大家的支持与爱护!!

月入3000的是反美的。收入3万是亲美的。收入30万是移民美国的。收入300万是取得绿卡后回国,教唆那些3000来反美的!

出0入0汤圆

 楼主| 发表于 2014-6-9 11:18:09 | 显示全部楼层
欢迎大家来交流使用心得。

出0入0汤圆

发表于 2014-6-9 11:48:17 | 显示全部楼层
沙发,围观

出0入0汤圆

发表于 2014-6-9 11:57:24 | 显示全部楼层
给力的资料,必须得顶啊!

出0入0汤圆

 楼主| 发表于 2014-6-9 15:17:54 | 显示全部楼层

欢迎下载学习,如有什么疑问可来论坛中讨论!

出0入0汤圆

发表于 2014-6-9 15:18:36 | 显示全部楼层
FSL_TICS_ZP 发表于 2014-6-9 15:17
欢迎下载学习,如有什么疑问可来论坛中讨论!

好的

出0入0汤圆

 楼主| 发表于 2014-6-9 15:18:49 | 显示全部楼层
wangpengcheng 发表于 2014-6-9 11:57
给力的资料,必须得顶啊!

谢谢支持。

出0入0汤圆

发表于 2014-6-9 15:49:46 | 显示全部楼层
下载一个实验下

出0入0汤圆

发表于 2014-6-9 16:13:28 | 显示全部楼层
好好学习学习。

出0入0汤圆

 楼主| 发表于 2014-6-9 17:02:27 | 显示全部楼层

谢谢支持,如有问题欢迎来论坛中交流!

出0入0汤圆

 楼主| 发表于 2014-6-9 17:02:59 | 显示全部楼层
zndz410 发表于 2014-6-9 16:13
好好学习学习。

谢谢支持,如有问题欢迎来论坛中交流!

出0入0汤圆

发表于 2014-6-10 17:28:41 | 显示全部楼层
正在做无刷直流电机控制   很需要你讲的,

出0入0汤圆

 楼主| 发表于 2014-6-10 17:41:11 | 显示全部楼层
提线木偶 发表于 2014-6-10 17:28
正在做无刷直流电机控制   很需要你讲的,

希望对你有帮助,有什么问题论坛中交流,OK!

出0入0汤圆

发表于 2014-6-10 20:44:57 | 显示全部楼层
看看看看

出0入0汤圆

发表于 2014-6-10 20:56:19 | 显示全部楼层
学习学习           

出0入0汤圆

 楼主| 发表于 2014-6-11 09:56:08 | 显示全部楼层

谢谢支持,如有问题欢迎来论坛中交流!

出0入0汤圆

 楼主| 发表于 2014-6-11 09:56:48 | 显示全部楼层

谢谢支持,如有问题欢迎来论坛中交流!

出0入0汤圆

发表于 2014-6-11 15:12:39 | 显示全部楼层
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呢   求方法  

出0入0汤圆

发表于 2014-6-16 23:14:14 | 显示全部楼层
正需要,这几天看文档,有例程,刚好。谢谢

出0入0汤圆

发表于 2014-6-16 23:16:27 | 显示全部楼层
版主附件打不开呢,不能下载。

出0入0汤圆

 楼主| 发表于 2014-6-17 09:01:01 | 显示全部楼层
upssee 发表于 2014-6-16 23:14
正需要,这几天看文档,有例程,刚好。谢谢


读取失败,好的,我确认一下!

出0入0汤圆

发表于 2014-6-17 11:34:50 | 显示全部楼层
楼主  想请教下  FTM2_SYNC |= FTM_SYNC_CNTMAX_MASK;
                      FTM2_SYNC |= FTM_SYNC_SWSYNC_MASK; 这两句程序是干什么的呢, FTM2_C0V = 0x0000;
                                                                                                                          FTM2_C1V = MODULO/8;赋值只能在这两句之前赋值才能输出pwm,现在我想控制无刷直流电机  初始化要一起赋值吗?如果现在我这么配置 FTM0_C0V = 0;
                                                              FTM0_C1V =100;
                                                               FTM0_C2V = 0;
                                                               FTM0_C3V =100;
                                                               FTM0_C4V = 0;
                                                               FTM0_C5V =50;           输出的pwm就不是正常的就是拐了两下的   pwm除了由C2nV和C2n+1V确定外  还和其他通道赋值有关系?
还想问下       FTM0_SWOCTRL = 0x0203;   /* pwm0 output 0, pwm1 output 1 */  这个指令是设置软件输出的,我配置了并不能输出  是因为初始化把他们配置了互补输出模式之后有影响还是另外需要其他语句才可以?回答我下吧   新手自己弄了好多天能输出互补pwm 但是还是不能实现电机换相    或者不知道你有没有k60无刷直流电机控制或是换相的例程给我参考下呢   自己配置乱了 不到什么问题了

出0入0汤圆

 楼主| 发表于 2014-6-17 11:46:00 | 显示全部楼层
提线木偶 发表于 2014-6-17 11:34
楼主  想请教下  FTM2_SYNC |= FTM_SYNC_CNTMAX_MASK;
                      FTM2_SYNC |= FTM_SYNC_SWSY ...

你好,你就你的问题重新建一个贴,这样方便我查找,谢谢!

出0入0汤圆

发表于 2014-6-17 11:54:19 | 显示全部楼层
FSL_TICS_ZP 发表于 2014-6-17 11:46
你好,你就你的问题重新建一个贴,这样方便我查找,谢谢!

额,其实这个是问同学借的账号,真的是有问题没地方问  自己弄不出来了  才来这里问的   同学说随便发帖会被封号  所以没敢开帖问   而且也不怎么知道格式  不知道能不能帮帮我呢   感激不尽啊   

出0入0汤圆

 楼主| 发表于 2014-6-17 11:56:21 | 显示全部楼层
提线木偶 发表于 2014-6-17 11:54
额,其实这个是问同学借的账号,真的是有问题没地方问  自己弄不出来了  才来这里问的   同学说随便发帖 ...

正常问题贴怎么可能被封,你就用这个账号发帖,然后发我链接就可以啊。

出0入0汤圆

发表于 2014-6-17 12:00:00 | 显示全部楼层
FSL_TICS_ZP 发表于 2014-6-17 11:56
正常问题贴怎么可能被封,你就用这个账号发帖,然后发我链接就可以啊。 ...

不知道自己的问题是不是重复的   那我现在发   怎么发你连接呢?

出0入0汤圆

发表于 2014-6-17 12:56:11 | 显示全部楼层
FSL_TICS_ZP 发表于 2014-6-17 11:56
正常问题贴怎么可能被封,你就用这个账号发帖,然后发我链接就可以啊。 ...

我发了帖子  但是不知道怎么链接你   不知道格式有没有问题K60 BLDC pwm互补输出问题
http://www.amobbs.com/thread-5584823-1-1.html
(出处: amoBBS 阿莫电子论坛)

出0入0汤圆

发表于 2014-6-17 14:33:20 | 显示全部楼层
学习一下           

出0入0汤圆

 楼主| 发表于 2014-6-17 15:14:42 | 显示全部楼层
提线木偶 发表于 2014-6-17 12:56
我发了帖子  但是不知道怎么链接你   不知道格式有没有问题K60 BLDC pwm互补输出问题
http://www.amobbs. ...

好的,我知道啊!

出0入0汤圆

 楼主| 发表于 2014-6-17 15:15:22 | 显示全部楼层

谢谢支持,如有问题欢迎来论坛中交流!

出0入0汤圆

发表于 2014-8-15 10:37:50 | 显示全部楼层
mark ftm

出0入0汤圆

发表于 2014-8-21 15:04:06 | 显示全部楼层
谢谢分享,我来看看

出0入0汤圆

发表于 2014-8-21 15:37:23 | 显示全部楼层
昏················都要回复可见··············
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-26 15:04

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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