搜索
bottom↓
回复: 9

K60 BLDC pwm互补输出问题 (已解决)

[复制链接]

出0入0汤圆

发表于 2014-6-17 12:54:45 | 显示全部楼层 |阅读模式
本帖最后由 提线木偶 于 2014-6-18 08:51 编辑

本人刚刚接触k60 以前也值用过51    现在想用k60驱动无刷直流电机    有很多问题想请教   希望大家帮帮忙,

问题如下:

1,对于PWM互补输出初始化   参考程序其中有个  FTM2_SYNC |= FTM_SYNC_CNTMAX_MASK;
                                                                    FTM2_SYNC |= FTM_SYNC_SWSYNC_MASK; 这两句程序是干什么的呢,看了数据手册没理解好,为什么    FTM2_C0V = 0x0000;
                                                                                                                                                                                                                     FTM2_C1V = MODULO/8;  赋值只能在这两句之前赋值才能输出pwm呢?
  而且我发现互补模式下   pwm输出除了由C2nV和C2n+1V确定外  好像还和其他通道赋值有关系
  现在初始化我要配置三对互补输出的pwm   如果这么配置 FTM0_C0V = 0;
                                                                               FTM0_C1V =100;
                                                                               FTM0_C2V = 0;
                                                                               FTM0_C3V =100;
                                                                               FTM0_C4V = 0;
                                                                               FTM0_C5V =50;           pwm1和pwm5 就不是正常的就是拐了两下的  不知道是不是初始化配置上哪里有问题呢   
2,还有在换向时    FTM2_SWOCTRL = 0x0203;   /* pwm0 output 0, pwm1 output 1 */  这个软件控制  我的PWM 1并没有输出1  不知道除了这句还要配置写什么吗,还是要给cnv赋值之类的?



/*   Q1_TOP_A = Q1        Q2_TOP_B = Q2          Q3_TOP_C = Q3                                    */
/*  PWM0                     PWM2                            PWM4                                             */
/*       |-                    |-                      |-                                         */
/*     -|                    -|                      -|                                           */
/*       |-                    |-                      |-                                         */
/* -----------------------------------------------------------------                              */
/*  Q4_BOTTOM_A = Q4      Q5_BOTTOM_B = Q5       Q6_BOTTOM_C = Q6                                 */
/*  PWM1                             PWM3                            PWM5                                     */
/*       |-                    |-                      |-                                         */
/*     -|                    -|                      -|                                           */
/*       |-                    |-                      |-                                         */
/*                                                                                                */
如果我想AB 相导通  就是让Q1 Q5 导通  PWM2输出0,PWM3输出1 Q5通  Q1导通为什么就得让PWM0 PWM1 互补输出呢   只有pwm0输出  不行吗    其实这里不怎么明白

希望大家能给我些例程    pwm 初始化函数之类的    或是无刷直流电机控制的    有些感觉自己都设置了  但是不好使  不知道为什么   谢谢大家了  

出0入0汤圆

 楼主| 发表于 2014-6-17 13:25:24 | 显示全部楼层
求帮助  求解答!!!

出0入0汤圆

发表于 2014-6-17 14:32:35 | 显示全部楼层
那两句你不理解是你没好好看芯片手册,芯片手册对每一位的解释都很清楚。而且ftm这块是有中文翻译的资料,你去找找吧,因为之前我也没配过三相控制的,所以关于你那么多路的输出问题就不知道了

出0入0汤圆

 楼主| 发表于 2014-6-17 15:08:46 | 显示全部楼层
xlxbangel 发表于 2014-6-17 14:32
那两句你不理解是你没好好看芯片手册,芯片手册对每一位的解释都很清楚。而且ftm这块是有中文翻译的资料, ...

手册看了   他说的pwm同步 可以执行的MOD,CV同步更新  是只有写了这句才能改变cv的值  否则就算赋值给cv也不能覆盖?是这意思吗    而且  k60中文手册好像没有ftm那块  有的也没写那么多寄存器   也有可能是我没找到吧  

出0入0汤圆

发表于 2014-6-17 15:40:18 | 显示全部楼层
提线木偶 发表于 2014-6-17 15:08
手册看了   他说的pwm同步 可以执行的MOD,CV同步更新  是只有写了这句才能改变cv的值  否则就算赋值给cv ...

重新赋值是这样的,需要加一行代码才可以改,而且是在下次输出时才改变。

出0入0汤圆

发表于 2014-6-17 15:50:09 | 显示全部楼层
你好,楼主!
针对你的第一个问题,
FTM2_SYNC |= FTM_SYNC_CNTMAX_MASK;
FTM2_SYNC |= FTM_SYNC_SWSYNC_MASK;
这两句对应实现互补输出没有作用,更同步作用有关,具体作用我还是建议你阅读参考手册,我们同步流程还是挺复杂的,不是一两句可以讲清楚的。
至于pwm输出除了由C2nV和C2n+1V确定外,还有寄存器设置有关,麻烦你再解释一下,我不是很清楚。谢谢!

出0入0汤圆

发表于 2014-6-17 16:38:11 | 显示全部楼层
你好,楼主!
针对你的第二个问题,我觉得你对软件输出控制作用可能还不是很了解,除了该语句外
FTM2_SWOCTRL = 0x0203;   /* pwm0 output 0, pwm1 output 1 */
你还需要其他操作,你需要遵循SWOCTRL寄存器的同步过程,具体操作步骤参考手册写的很清楚啊。
还有BLDC的例程的话,我建议到FSL官网去搜,我们有提供相对应的解决方案,希望可以帮到你。

出0入0汤圆

 楼主| 发表于 2014-6-17 16:57:23 | 显示全部楼层
FSL_TICS_ZP 发表于 2014-6-17 16:38
你好,楼主!
针对你的第二个问题,我觉得你对软件输出控制作用可能还不是很了解,除了该语句外
FTM2_SWOCT ...

好的   我找到原因了   原来是我硬件有点问题   现在能正常输出   感谢

出0入0汤圆

 楼主| 发表于 2014-6-17 16:59:01 | 显示全部楼层
xlxbangel 发表于 2014-6-17 15:40
重新赋值是这样的,需要加一行代码才可以改,而且是在下次输出时才改变。 ...

嗯  非常感谢

出0入0汤圆

发表于 2014-6-18 08:53:23 | 显示全部楼层

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

本版积分规则

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

GMT+8, 2024-4-29 17:28

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

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