搜索
bottom↓
回复: 51

STM32驱动BLDC电机程序

  [复制链接]

出0入0汤圆

发表于 2011-2-11 21:58:37 | 显示全部楼层 |阅读模式
自己写的能转,但是PID性能不好,而且去掉sp_value变量后六路输出不正常,请指教。

点击此处下载 ourdev_615514SCSFRA.zip(文件大小:1.66M) (原文件名:实验7无刷电机.zip)

出0入0汤圆

发表于 2011-2-13 14:01:23 | 显示全部楼层
看了这个程序,有几个问题不明白,希望楼主能回答一下:
1.在TIM1的初始化函数中并没有开启TIM1的COM中断,仅仅是在NVIC里面开启了COM中断,这样理论上并不能引发COM中断呀?
2.程序中TIM1的初始化部分也没有看到设定COM可以有内部触发来引起的语句,因为默认COM事件只能通过软件设定COMG=1来触发,如果想通过其他TIMx的触发来引起COM事件需要将CCUS置1才可以。但是没有看到有相关的代码。楼主引用的库函数的源代码我也查过了,也没有发现有相关的操作。
3.楼主的程序思路是将TIM3配制成霍尔模式,在霍尔引起的中断中,在中断中计算电机转速,同时TIM3产生触发信号,触发TIM1的COM中断,在中断里面通过读取霍尔信号来判断换相,并利用换相函数来更改mosfet的导通顺序,并且使用的是上下位管都是PWM斩波的驱动方式。但是根据STM32的手册介绍,需要在COM事件产生前将CCxE和CCxNE位配置好,然后产生COM事件,之前配置好的控制字就会被送入寄存器,真正产生作用。因此如果不产生COM事件而直接修改CCxE和CCxNE是达不到修改mosfet输出的效果的。但是在启动阶段也就是第一次你是如何产生COM事件的?只是发现你直接调用了换相函数,而没有产生com事件。
4.按照你的思路,在COM中断中换相,那么换向表应该会超前,也就是通过读取但前时刻的霍尔信号值,来给出下一个状态下的控制字,但是这样在启动的时候。你的换相表是这样写的吗?如果是这样的话,那么启动时刻就会产生超前换相的问题。
以上是我粗粗看过一边楼主的程序后的一点疑问,总体上来说楼主的程序写得很好,思路也很清楚,但是这几个小问题让我有一些疑惑,希望楼主能够给予解答。

出0入0汤圆

 楼主| 发表于 2011-2-14 22:45:07 | 显示全部楼层
问题1.我用的是TIM1的触发中断,在"启动程序"中打开的TIM1和触发中断。
问题2.我试过当注释掉这句“TIM_SelectSlaveMode(TIM1, TIM_SlaveMode_Trigger);//从模式选择 触发”
     也能引起触发中断。
问题3.直接修改CCxE和CCxNE是可以控制输出的。启动时开TIM1和TIM3后,调用换相函数即可给电机加电,电机的转动又产生霍尔中断,
      延时后TIM3产生触发信号,触发TIM1的触发中断调用换相函数,使电机转起来。
      因为CCxE和CCxNE不是预装载的,所以“COM事件产生前将CCxE和CCxNE位配置好”是不是不行啊。
问题4.我又看了下手册,是不是应该在启动时,用软件触发“TIM1的触发中断”更好啊。

我还有个问题:当用它“TIM_CtrlPWMOutputs(TIM1,DISABLE);“关输出时,六路输出关不上,而且状态异常。
因我是初学32和电机,请多指教!!

出0入0汤圆

发表于 2011-2-19 21:44:26 | 显示全部楼层
mark,学习了

出0入0汤圆

发表于 2011-5-4 17:53:40 | 显示全部楼层
我实验了一下COM事件的使用,发现没有预装载啊???这个COM事件怎么用?

出0入0汤圆

发表于 2011-6-28 14:32:18 | 显示全部楼层
回复【楼主位】lqhm0927
-----------------------------------------------------------------------
程序我看过,请问楼主在程序中是如何设置转速的呢?能把原理图和大家分享吗?谢谢

出0入0汤圆

发表于 2011-6-28 16:12:04 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-7-2 12:07:46 | 显示全部楼层
希望看到完整资料,最近搞PFM很狼狈

出0入0汤圆

发表于 2011-7-5 16:54:17 | 显示全部楼层
回复【楼主位】lqhm0927
-----------------------------------------------------------------------
楼主我很希望能和你交流下,我想和你讨论下逆变桥导通的问题,我看了你的程序,有道理但不完善,希望有机会能讨论下,你也没留下你的联系方式,我还是留下我的,qq470877270,望回复。

出0入0汤圆

发表于 2011-7-5 17:48:59 | 显示全部楼层
顶下楼主,一直想做这个。

出0入0汤圆

发表于 2011-7-13 21:49:25 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-9-14 20:17:18 | 显示全部楼层
mark,我会再次看的

出0入0汤圆

发表于 2011-9-14 20:46:01 | 显示全部楼层
MARK

出0入0汤圆

发表于 2011-11-8 14:33:55 | 显示全部楼层
下来研究研究

出0入0汤圆

发表于 2011-11-9 13:22:45 | 显示全部楼层
下下来看看,最近正在调试BLDC的程序,希望能有所帮助,谢谢楼主。

出0入0汤圆

发表于 2011-11-25 16:49:39 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-11-25 19:13:02 | 显示全部楼层
标记

出0入0汤圆

发表于 2011-11-25 19:22:19 | 显示全部楼层
本人也在做电机控制,也学习一下你的程序!

出0入0汤圆

发表于 2011-11-27 09:56:44 | 显示全部楼层
先mark

过段时间好好搞

出0入0汤圆

发表于 2011-11-28 09:28:32 | 显示全部楼层
这么多搞直流无刷的啊,哈哈

出0入0汤圆

发表于 2011-12-24 12:59:16 | 显示全部楼层
学习中

出0入0汤圆

发表于 2011-12-26 09:37:41 | 显示全部楼层
学习一下~

出0入0汤圆

发表于 2012-1-4 14:11:39 | 显示全部楼层
学习了

出0入0汤圆

发表于 2012-5-12 19:04:35 | 显示全部楼层
下不来 程序 能否 加qq  详聊一下 我也在做bldc  现在许多疑问! 谢谢了!

出0入0汤圆

发表于 2012-5-12 19:06:19 | 显示全部楼层
我的 QQ   为 1033815402

出0入0汤圆

发表于 2012-7-15 09:52:42 | 显示全部楼层
最近也在弄有霍尔的bldc,正在看别人的程序还不是很懂,下下来看看有没有什么帮助。

出0入0汤圆

发表于 2012-7-26 18:46:31 | 显示全部楼层
学习一下!!

出0入0汤圆

发表于 2012-7-26 19:47:28 | 显示全部楼层
暂时了解一下。

出0入0汤圆

发表于 2012-9-20 14:08:45 | 显示全部楼层
程序运行不起来

出0入0汤圆

发表于 2012-10-8 14:58:48 | 显示全部楼层
mark

出0入0汤圆

发表于 2013-1-22 23:38:21 | 显示全部楼层
tiancaigao7 发表于 2011-2-13 14:01
看了这个程序,有几个问题不明白,希望楼主能回答一下:
1.在TIM1的初始化函数中并没有开启TIM1的COM中断, ...

你好!看了你的回复,我很受用!正在做STM32+BLCD,现在就是出现了问题3的现象——每次启动需要手动拧一下电机输出轴来改变HALL信号进而触发COM中断才可以!请问 这个问题如何能消除啊?

出0入0汤圆

发表于 2013-1-22 23:58:03 | 显示全部楼层
lqhm0927 发表于 2011-2-14 22:45
问题1.我用的是TIM1的触发中断,在"启动程序"中打开的TIM1和触发中断。
问题2.我试过当注释掉这句“TIM_Sel ...

你好!看了你的回复,我很受用!正在做STM32+BLCD,现在就是出现了问题3的现象——每次启动需要手动拧一下电机输出轴来改变HALL信号进而触发COM中断才可以!请问 这个问题如何能消除啊?

出0入0汤圆

发表于 2013-2-22 16:31:54 | 显示全部楼层
学习一下

出0入0汤圆

发表于 2013-2-22 16:49:17 | 显示全部楼层
Mark一下

出0入0汤圆

发表于 2013-4-12 14:55:51 | 显示全部楼层
tiancaigao7 发表于 2011-2-13 14:01
看了这个程序,有几个问题不明白,希望楼主能回答一下:
1.在TIM1的初始化函数中并没有开启TIM1的COM中断, ...

您好 ,我最近在做stm32+BLDC ,遇到一些问题, 想请教一下大侠 ,我不胜感激  qq277210610  谢谢

出0入0汤圆

发表于 2013-5-19 17:52:34 | 显示全部楼层
阿莫1 发表于 2013-4-12 14:55
您好 ,我最近在做stm32+BLDC ,遇到一些问题, 想请教一下大侠 ,我不胜感激  qq277210610  谢谢 ...

你好 你做的怎样 能否交流下

出0入0汤圆

发表于 2013-5-19 18:21:39 | 显示全部楼层
必须顶一下

出0入0汤圆

发表于 2013-5-23 15:34:40 | 显示全部楼层
robin林 发表于 2013-5-19 17:52
你好 你做的怎样 能否交流下

   ,现在没做了 ,如果能帮到你 的    乐意效劳

出0入0汤圆

发表于 2013-5-23 20:56:41 | 显示全部楼层
阿莫1 发表于 2013-5-23 15:34
,现在没做了 ,如果能帮到你 的    乐意效劳

先谢谢你了! 我就是通道极性的设置,因为我是ir2130驱动的,所以要低电平有效,但是我我那个不使能输出的通道极性设置老是低电平,看了网上说的是和芯片的型号有关,你能否有个解决的方法

出0入0汤圆

发表于 2013-9-15 14:46:16 | 显示全部楼层
楼主  我也做电机控制的,QQ6824832
有兴趣加一下,交流交流心得

出0入0汤圆

发表于 2013-12-28 14:02:42 | 显示全部楼层
guodan033 发表于 2013-1-22 23:58
你好!看了你的回复,我很受用!正在做STM32+BLCD,现在就是出现了问题3的现象——每次启动需要手动拧一下 ...

hello,你的这个问题解决了吗?我也遇到了,不知道怎么办?

出0入0汤圆

发表于 2014-6-7 12:03:25 | 显示全部楼层
MARK一下。谢谢楼主啦

出0入0汤圆

发表于 2014-8-23 15:59:40 | 显示全部楼层
这个支持一个。

出0入0汤圆

发表于 2014-8-23 16:34:09 | 显示全部楼层
谢谢楼主分享 谢谢楼主分享

出0入0汤圆

发表于 2014-10-15 15:39:23 | 显示全部楼层
一起讨论呗

出0入0汤圆

发表于 2016-4-8 21:20:46 | 显示全部楼层

楼主头像本人?好帅啊 是哪个明星、。

出0入0汤圆

发表于 2016-6-28 11:23:35 | 显示全部楼层
guodan033 发表于 2013-1-22 23:58
你好!看了你的回复,我很受用!正在做STM32+BLCD,现在就是出现了问题3的现象——每次启动需要手动拧一下 ...

初始化后,直接调用一次 换相,

出0入0汤圆

发表于 2017-2-25 22:10:24 来自手机 | 显示全部楼层
帮顶!好资料

出0入0汤圆

发表于 2017-3-10 16:20:17 | 显示全部楼层
mark下,正在学电机

出0入0汤圆

发表于 2017-11-14 17:00:54 | 显示全部楼层
MARK,学习了。

出0入0汤圆

发表于 2017-11-14 17:02:38 | 显示全部楼层
最近也在学习STM32+BLDC,已经实现速度环,电流环正在研究中,希望有兴趣的同学大家讨论一下。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-4-19 17:51

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

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