amoBBS 阿莫电子论坛

 找回密码
 注册
搜索
bottom↓
楼主: 20061002838

STM32做的BLDC控制器,ADC检测反电动势,公开资料

  [复制链接]
发表于 2013-11-6 09:24:41 | 显示全部楼层
我明白同步续流的作用,但不是整个PWM"OFF"阶段都处于续流状态。
发表于 2013-11-18 10:01:40 | 显示全部楼层
无刷驱动,学习了!
发表于 2013-11-20 09:31:49 | 显示全部楼层
LZ 好像不能下下来哦!总是~~捉迷藏
发表于 2013-11-21 16:47:26 | 显示全部楼层
mark,标记一下,好文章
发表于 2013-12-26 10:08:13 | 显示全部楼层
好帖子。。下载下来看看
发表于 2013-12-27 00:11:07 | 显示全部楼层
弱问一下,电动机是什么型号的,哪里可以买得到?刚刚接触,不是很清楚。
发表于 2013-12-27 10:11:58 | 显示全部楼层
好东西留着以后做!
发表于 2013-12-27 10:22:10 | 显示全部楼层
不错,很有参考性
发表于 2014-1-16 08:59:05 | 显示全部楼层
你好,看过你上传的资料受益良多。有个问题,我看了一下电路反电动势获取分压后并了一个100P的电容,我在用的时候并的是100nf的电容,结果发现随着转速变快,过零点实在变化。举个例子低速很慢时过零点正好在换向点,随着速度增加,过零点慢慢接近于30度。不知道你有没有遇到相同的问题。
 楼主| 发表于 2014-1-16 10:29:48 | 显示全部楼层
liendry 发表于 2014-1-16 08:59
你好,看过你上传的资料受益良多。有个问题,我看了一下电路反电动势获取分压后并了一个100P的电容,我在用 ...

小电容是用来消除信号毛刺的,大电容会造成反电动势滞后
发表于 2014-1-16 12:12:00 | 显示全部楼层
20061002838 发表于 2013-2-2 12:58
呵呵,我还没有研究到这么深入。

非常感谢这么无私 提供这么好的资料,看了你的资料有一些疑问,还望指教:
1、采样电路中使用了100p的电容是否能够将电压高频毛刺滤掉,进入单片机端的波形是否平滑?以至于不会采到错误的过零点。
    因为我自己在做的时候发现加104以上才行,但是这样的话随着速度增加,相位滞后很厉害。
2、unsigned long BEMF(void)程序中:
    if (dir == 1)            
    {
        if (VoltBEMF > 0)
            return 1;
怎么对应过零点的?谢谢!
发表于 2014-1-16 12:12:55 | 显示全部楼层
20061002838 发表于 2014-1-16 10:29
小电容是用来消除信号毛刺的,大电容会造成反电动势滞后

非常感谢这么无私 提供这么好的资料,看了你的资料有一些疑问,还望指教:
1、采样电路中使用了100p的电容是否能够将电压高频毛刺滤掉,进入单片机端的波形是否平滑?以至于不会采到错误的过零点。
    因为我自己在做的时候发现加104以上才行,但是这样的话随着速度增加,相位滞后很厉害。
2、unsigned long BEMF(void)程序中:
    if (dir == 1)            
    {
        if (VoltBEMF > 0)
            return 1;
怎么对应过零点的?谢谢!
发表于 2014-1-16 12:16:29 | 显示全部楼层
mark
发表于 2014-1-20 13:15:45 | 显示全部楼层
赞1个。很优秀啊。。。。
发表于 2014-1-22 11:36:55 | 显示全部楼层
学习了,多谢分享。
发表于 2014-1-22 14:10:04 | 显示全部楼层
很好,好好学习下。多谢了。
发表于 2014-1-22 14:32:05 | 显示全部楼层
不错,谢谢分享了。
发表于 2014-1-22 14:33:38 | 显示全部楼层
谢谢谢。。。
发表于 2014-1-22 19:18:15 | 显示全部楼层
看了一遍,确实讲的不错,多谢了。
发表于 2014-2-7 11:46:52 | 显示全部楼层
感谢楼主讲解的同步续流知识
发表于 2014-2-7 12:08:11 | 显示全部楼层
有下载资源吗?
发表于 2014-2-7 12:29:22 | 显示全部楼层
有没有加速度PID?先收了学习一下。
发表于 2014-2-28 20:04:45 | 显示全部楼层
20061002838 发表于 2013-6-12 11:35
N管是 IRLR7843 或者 7821
P管是 IPD042P03L3
参数写的很好,就是不知道x宝买的是不是真的。 ...

请问这个电路中mos可以用IRFR1205和5305吗
 楼主| 发表于 2014-2-28 22:35:37 | 显示全部楼层
firewind 发表于 2014-2-28 20:04
请问这个电路中mos可以用IRFR1205和5305吗

可以使用,性能稍微差一点
发表于 2014-3-4 14:49:31 | 显示全部楼层
LZ厉害,学习学习。
发表于 2014-3-6 08:44:25 | 显示全部楼层
先收藏了,有机会再看,谢谢楼主分享
发表于 2014-3-6 08:51:08 | 显示全部楼层
好东西啊,感谢楼主!果断MARK!
发表于 2014-3-6 09:10:29 | 显示全部楼层
有用,看看
发表于 2014-3-6 09:21:50 | 显示全部楼层

不错,看看先。
发表于 2014-3-18 17:01:36 | 显示全部楼层
请教楼主是怎么判断反电动势过零点的??ADCConvertedValue_2[0]~ADCConvertedValue_2[2]是ABC3相电压吗??   谢谢~!
发表于 2014-3-22 00:14:34 | 显示全部楼层
20061002838 发表于 2014-2-28 22:35
可以使用,性能稍微差一点

谢谢!如果把电压提高到16.8,UCC27424是不是要换,有没有便宜点的驱动芯片啊
 楼主| 发表于 2014-3-22 00:27:57 | 显示全部楼层
firewind 发表于 2014-3-22 00:14
谢谢!如果把电压提高到16.8,UCC27424是不是要换,有没有便宜点的驱动芯片啊

TC4427  MIC4427  IRS4427 管脚都是兼容的
发表于 2014-3-22 21:44:31 来自手机 | 显示全部楼层
好贴必须顶
发表于 2014-4-30 10:50:27 | 显示全部楼层
感谢楼主 分享   学习 学习  
发表于 2014-4-30 23:52:16 | 显示全部楼层
楼主是在是太牛了,拜读了!
发表于 2014-5-7 13:47:25 | 显示全部楼层
期待继续!!!!!!!!!!!!!!!
发表于 2014-6-12 21:45:48 | 显示全部楼层
这个必须学习一下.
发表于 2014-6-12 22:07:48 | 显示全部楼层
学习二下
发表于 2014-6-13 16:15:58 | 显示全部楼层
谢谢楼主!
发表于 2014-6-13 16:21:53 | 显示全部楼层
不错,看看先。备份中
发表于 2014-8-27 20:54:45 | 显示全部楼层
racede 发表于 2013-2-24 22:28
最近做的STM32F0电调 24kHz PWM, 每个PWM周期同步检测4次过零(检测频率96k), 现在能测试到的极限是等效一 ...

你的程序是用STM32F0自身带的比较器做的吗?我用STM32F030自带的比较器做效果不好。
发表于 2014-8-27 20:59:15 | 显示全部楼层
在转速很高的情况下用同步续流会存在mos发热比不用同步续流更大的情况:在转速很高时,下桥臂占空比会小,会形成尖脉冲,这样对管子反而不利。
发表于 2014-8-27 22:45:55 | 显示全部楼层
刘明备用。正要研究BLDC.
发表于 2014-9-23 16:37:27 | 显示全部楼层
非常好的帖子,学习中,谢谢楼主共享
发表于 2014-9-23 17:08:18 | 显示全部楼层
mark 下 最近正要用
发表于 2014-9-23 21:14:03 | 显示全部楼层
大牛大牛大牛大牛大牛大牛大牛大牛
发表于 2014-10-27 21:09:52 | 显示全部楼层
STM32_Study 发表于 2013-1-24 22:46
谢谢楼主

调试心得在第一时间已经看过了,就是觉得还不是太明白,所以想请你讲深入一些

A 上桥和 B上桥 同时打开,不是刹车状态的,,

只有下管 同时 打开 才是 刹车状态
发表于 2014-10-28 16:16:46 | 显示全部楼层
谢谢了,我也在做这方面的
发表于 2014-10-29 15:24:57 | 显示全部楼层
看看学习了
发表于 2014-10-29 21:24:22 | 显示全部楼层
如果是用带霍尔传感器的无刷电机调试不是会简单些么
发表于 2014-10-29 21:44:20 | 显示全部楼层
lotsbiss 发表于 2013-11-5 23:58
同步续流只是相当于在二极管旁边并联一个小电阻而已,优点在于降低MOS发热
不用同步续流,关断时MOS上的 ...

请问用什么零件可以断开三相端子?
发表于 2014-11-4 12:22:46 | 显示全部楼层
STM32做的BLDC控制器
发表于 2014-11-4 14:30:35 | 显示全部楼层
对这个感兴趣,谢谢
发表于 2014-11-4 14:41:06 | 显示全部楼层
无刷电机mark
发表于 2014-11-4 14:45:27 | 显示全部楼层
MARKMARKMARK
发表于 2014-11-4 20:51:02 | 显示全部楼层
好东西,要顶起来~谢谢楼主分享!
发表于 2014-11-11 16:19:07 | 显示全部楼层
牛,学习了,
发表于 2014-11-13 13:35:21 | 显示全部楼层
原有ID被封,重新注册ID继续学习楼主的无刷控制方法。
发表于 2015-3-20 15:53:48 | 显示全部楼层
    case 0 :
        /*  PhaseA configuration */
        TIM_CCxCmd(BLDC_TIMER_NUM, TIM_Channel_1, TIM_CCx_Disable);   // 0
        TIM_OC1NPolarityConfig(BLDC_TIMER_NUM, TIM_OCNPolarity_High);
        TIM_CCxNCmd(BLDC_TIMER_NUM, TIM_Channel_1, TIM_CCxN_Disable); // 0

        /*  PhaseB configuration */
        TIM_CCxCmd(BLDC_TIMER_NUM, TIM_Channel_2, TIM_CCx_Enable);    // 1
        TIM_CCxNCmd(BLDC_TIMER_NUM, TIM_Channel_2, TIM_CCxN_Enable);  //同步整流

        /*  PhaseC configuration */
        TIM_CCxCmd(BLDC_TIMER_NUM, TIM_Channel_3, TIM_CCx_Disable);   // 0
        TIM_OC3NPolarityConfig(BLDC_TIMER_NUM, TIM_OCNPolarity_Low);
        TIM_CCxNCmd(BLDC_TIMER_NUM, TIM_Channel_3, TIM_CCxN_Disable); // 1
        break;

请问 这段程序是哪两项导通? 还有这里设置极性有什么用呢?
发表于 2015-3-21 07:08:35 来自手机 | 显示全部楼层
写的很全面,难得的学习资料
发表于 2015-5-9 02:59:07 | 显示全部楼层
我也用F103在做BLDC控制器, 不过不是三相的, 驱动也隔离了, 调的时候发现什么都不用管直接跟踪ADC过零就是了, 波形(使能|电流|反电动势)如下:


一开始因为隔离不共地有很大工频干扰没法用, 想起没有跨一个电容, 加上去之后共模的50Hz的幅度掉到100的ADC水平, 差模噪声只有10个ADC, 根本没有影响.
于是直接比较过零换相就转起来了.

另外隔离之后可以把中性点举到任何一个电平, 启动的时候诸如电容充放电等电路因素使得换相能够可靠的完成, 没有多余的代码.
测试结果低速下恒定转速电流跟霍尔换相的一样大, 转矩波动竟似乎还要小一些.

本帖子中包含更多资源

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

x
发表于 2015-5-9 03:01:39 | 显示全部楼层
图好像截错了明天重新测截一个= =
发表于 2015-5-9 08:14:34 | 显示全部楼层
非常具有参考价值的好帖子啊
发表于 2015-5-13 08:21:30 | 显示全部楼层
文字转变成代码需要费很多时间去考虑,有时候还考虑不出来,我现在一直在考虑如何用8位机做无霍尔BLDC,楼主能否教教我,我将感激不尽。  EMAIL:   dianzidianzixin@qq.com
发表于 2015-6-3 22:01:02 | 显示全部楼层
贴子不错,里面交流的多啊
发表于 2015-6-4 17:15:27 | 显示全部楼层
不错,挺好的,正好用的上。
发表于 2015-6-4 19:56:15 | 显示全部楼层
tiancaigao7 发表于 2013-1-23 22:13
楼主可以考虑同步方式采样反电动势,但是不利用AD(利用AD一个是资源浪费,另外一个资源占用比较大);采用 ...

能详细说一下你的采样方案吗
发表于 2015-6-4 20:02:38 | 显示全部楼层
mark,记号
发表于 2015-6-9 17:25:42 | 显示全部楼层
BLDC是不是跟传统的6步驱动一样?
发表于 2015-7-9 13:40:26 | 显示全部楼层
楼主,我现在也在做四旋翼飞机上电机的电调,但是出现了问题一直无法解决。我程序采用的是先预定位,然后电机启动,启动过程采用强制换向,即不关心转子的位置按预定换向周期换向,该状况下电机也能旋转起来,下图是相应的机端电压反电势波形,该相电压非导通期间波形原本上升沿变成了下降沿。非导通期间的波形反应的是否是反电势呢?出现这种状况是因为反电势受其他元件电压的影响?还是因为转子未达到预期位置出现了这种状况?如果是反电势,图像中左侧的首次过零,是按上升过零判断下一次换向还是按下降过零来判断换向表呢?

本帖子中包含更多资源

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

x
发表于 2015-7-9 14:06:12 | 显示全部楼层
LZ的电机启动是先预定位,视频中看预定位时间很短暂,你有没有碰到预定位的时候转子在定位点附近来回抖动的现象呢?
发表于 2015-7-11 22:47:56 | 显示全部楼层
信息量有點大,先mark一下
发表于 2015-8-25 11:20:43 | 显示全部楼层
20061002838 发表于 2013-1-24 23:38
是的,你的理解没错

时序就是这个样子的

本帖子中包含更多资源

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

x
发表于 2015-8-25 12:48:46 | 显示全部楼层
学习了,谢谢
发表于 2015-8-25 13:29:50 来自手机 | 显示全部楼层
本帖最后由 mandylion2008 于 2015-8-25 14:05 编辑

正常运行后,可以根据每次换相周期内PWM中断次数来自动改变PWM周期,速度越快,频率越高,设定一个上下限就可以了,这就是自动采样调整。
通过ADC可以实现比较器难以完成的功能。
发表于 2015-8-25 13:37:11 来自手机 | 显示全部楼层
本帖最后由 mandylion2008 于 2015-8-25 14:06 编辑

手抖点多了。
发表于 2015-8-25 13:49:23 | 显示全部楼层
再次回味,非常不错。重点:同步续流、单周期多次反电动势过零检测
发表于 2015-8-25 14:27:10 | 显示全部楼层
闲下来也来动手玩玩
发表于 2015-8-28 20:45:08 | 显示全部楼层
mark之                                               
发表于 2015-8-30 11:13:40 | 显示全部楼层
楼主:有个问题请教一下,我现在碰到一个问题,梯形波控制的时候,无法低速运行,占空比小于35%时,2000RPM以下,电机就开始堵转了,难道是我的反相电动势检测不到了。
发表于 2015-9-2 19:33:03 | 显示全部楼层
支持楼主!正在搞BLDC和PMSM!!头大中。。。
发表于 2015-9-7 17:15:39 | 显示全部楼层
本帖最后由 王二狗子 于 2015-9-8 13:11 编辑

20150907:终于看完了,关于同步整流的讨论,同步整流应该只在死区进行吧

20150908 :我之前的理解是错误的。

实际上,同步整流是基于PWM时钟周期的,相当于是在PWM-OFF的时候进行同步整流。
举个例子,现在是AB相工作,高端PWM,也就是AH输入PWM,BL打开接地。
在一个PWM周期,从PWM-ON(AH-on)到PWM-off(AH-OFF)的时候,需要续流回路。
一般情况下,是通过“打开的BL”与“AL的体二极管”行成续流回路进行续流。
但是同步整流的话,在关闭AH的时候几乎同时就打开了AL,利用“打开的BL”与“AL本身”进行续流。
这样可以避免二极管节电压造成的影响。
发表于 2015-10-4 22:41:20 | 显示全部楼层
对波形的下臂实现没看懂。   楼主意思应该是通过CCXE和CCXNE=0后输出无效电平,修改无效电平可以修改输出电平。
但手册说CCXE  CCNXE都=0后,输出禁止,这时候对应IO应该是浮空的,找了个板子看引脚电平也发现修改CCXE  CCXNE=0后不管设置有效电平CCXP和CCNXP为高为低,输出IO都没反应。    只有修改CCXE CCXNE其中一个 =1,另一个才会对CCXP或CCXNP修改有反应

本帖子中包含更多资源

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

x
发表于 2015-10-4 22:43:18 | 显示全部楼层
修改CCXE CCNXE都=0后,IO上挂电阻,电平跟着变,推断此时应该是浮空态。
 楼主| 发表于 2015-10-4 23:43:00 | 显示全部楼层
CCxP 和 CCxNP位啊
发表于 2015-10-5 10:59:49 | 显示全部楼层
mark STM32 + BLDC 电路及源参考
发表于 2016-3-15 12:55:22 | 显示全部楼层
不错的资料,
发表于 2016-5-10 03:40:30 | 显示全部楼层
无私的楼主,难得
发表于 2016-5-10 15:13:46 | 显示全部楼层
楼主好样的
发表于 2016-5-11 12:25:25 | 显示全部楼层
楼主有焊好的多余的板子吗?能不能卖1个给我?
发表于 2016-5-14 15:25:37 来自手机 | 显示全部楼层
好贴,谢谢分享
发表于 2016-5-16 09:55:25 | 显示全部楼层
不错。学习下。。。。
发表于 2016-6-28 08:34:51 | 显示全部楼层
非常详细,学习了,顶一个
发表于 2016-6-28 09:20:33 | 显示全部楼层
不知道同步整流在PWN-ON时刻检过零有作用么?
发表于 2016-7-23 10:01:52 | 显示全部楼层
很详细.好好研究一下。
发表于 2016-8-10 14:15:22 | 显示全部楼层
楼主您好。我现在也在做BLDC控制器。采用的是H-PWM&L-on的驱动方式。用的也是PWM-off期间采样。有些问题想请您过过目
一般来说pwmoff期间采样,会延迟一下,就是说不是pwm一关断就马上进行AD采样。这样做的原因,我的理解是:
(1)pwm-off期间,绕组续流,虽然不是整个pwm-off时间内都在续流,但正在续流的时候采样悬空相电位的话,得到的电压是反电势加上续流二极管的压降,所以延迟一点点(续流完之后)再采样可以避开续流期间造成续流二极管压降对反电势造成的影响。△同时延迟之后再采样,还有一个好处,就是换相完之后产生的过零消磁脉冲,延迟采样可以避开那个消磁脉冲。
(2)pwm-off期间所谓的二极管压降会影响悬空相反电势的采样,和那个过零消磁事件,本质上都是电感续流造成的。
(3)在反电势很小的时候,有人采用同步整流的方式,减少续流二极管压降对反电势造成的干扰,那我就想不明白了,二极管压降只会在续流期间影响到反电势,续流完了就不影响了,为什么要用同步整流,直接像上面所说,pwm-off的时候,稍微延迟一点点再进行AD采样不就可以了嘛
 楼主| 发表于 2016-8-10 18:08:29 | 显示全部楼层
china97wan 发表于 2016-8-10 14:15
楼主您好。我现在也在做BLDC控制器。采用的是H-PWM&L-on的驱动方式。用的也是PWM-off期间采样。有些问题想 ...

续流一直进行,不是过一会儿就没了的,线圈中的电流时连续的
发表于 2016-8-10 19:19:32 | 显示全部楼层
20061002838 发表于 2016-8-10 18:08
续流一直进行,不是过一会儿就没了的,线圈中的电流时连续的

好的,谢谢您。如果电感电流连续的话,那么二极管压降产生的影响是持续的,在整个PWM-off期间都会对反电势产生影响。用同步整流的优势这个时候就可以提现出来了,尤其是低转速,小反电势的时候。而pwm-off期间稍作延时再采样,完全是 为了避开过零脉冲。看了ST的快速去磁技术,您觉得这个快速去磁技术不仅能对过零脉冲起作用,对pwm-off期间的续流也是会有作用的,能加快去磁,那么,pwm-off期间的续流时间短了,过零脉冲持续的时间也变短了。
————————————————————————————————
您觉得我这样的理解对 嘛?
 楼主| 发表于 2016-8-10 21:08:31 | 显示全部楼层
china97wan 发表于 2016-8-10 19:19
好的,谢谢您。如果电感电流连续的话,那么二极管压降产生的影响是持续的,在整个PWM-off期间都会对反电 ...

续流那块理解没问题了
快速消磁我没有研究过,不好做评论
发表于 2016-8-17 16:20:11 | 显示全部楼层
楼主辛苦了,感谢无私奉献!...
友情提示:标题不合格、重复发帖,将会被封锁ID。详情请参考:论坛通告:封锁ID、获得注册邀请码、恢复被封ID、投诉必读
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|阿莫电子论坛(原ourAVR/ourDEV) ( 粤ICP备09047143号 )

GMT+8, 2017-11-18 22:02

阿莫电子论坛, 原"中国电子开发网"

© 2004-2016 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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