ycping 发表于 2016-8-17 16:33:44

谢谢分享

ycping 发表于 2016-8-17 16:34:01

谢谢分享

CoolRain828 发表于 2016-9-23 21:12:25

感谢楼主的无私分享,先研究看看

zhcj66 发表于 2016-11-5 11:30:34

20061002838 发表于 2013-1-24 23:38
是的,你的理解没错

时序就是这个样子的


请问一个STM32F1可以控制3个无刷电机吗?用BLCD

lavenderfr97 发表于 2016-11-11 17:43:59

markmark

lavenderfr97 发表于 2016-11-11 17:44:18

markmark

bingxiin8 发表于 2016-11-16 00:39:37

不错,有干颗

guzhongqi 发表于 2016-11-16 07:55:31

20061002838 发表于 2013-1-23 22:32
ADC并不怎么占用资源,定时器+ADC+DMA基本不需要COU干预,判断过零点也比较容易。用比较器的话需要增加硬 ...

换向时机不对导致的,开环启动这样的波形很正常,所以无感BLDC最难调的就是启动,而且要适应不同的启动电压。

smilepppp 发表于 2016-11-18 08:38:38

20061002838 发表于 2013-1-23 22:32
ADC并不怎么占用资源,定时器+ADC+DMA基本不需要COU干预,判断过零点也比较容易。用比较器的话需要增加硬 ...


我的波形也跟你一样,为什么会这样的,难道真的跟电机有关么,我用的也是你这个电机,我看资料上面不应该是这样的波形啊,





smilepppp 发表于 2016-11-18 13:59:11

奋进的蚂蚁 发表于 2013-9-11 23:35
楼主,从你的PWM波形分析,我发现和市面上面的控制器波形有很大出入,不如为什么,我的波形也和你的一样 ...

http://www.amobbs.com/thread-5663562-1-1.html

你好在这片帖子里面看到的,我的波形和你的一模一样,我用的也是A2212的四周电机,为什么我们的波形不是和资料上面的一样,你解决了吗,能不能告知一下,是哪里的问题,我都研究了好久了

20061002838 发表于 2016-11-18 14:43:22

smilepppp 发表于 2016-11-18 13:59
http://www.amobbs.com/thread-5663562-1-1.html

你好在这片帖子里面看到的,我的波形和你的一模一样,我 ...

我当初也是卡在这里,后面没有研究了,so,我帮不了你
你可以看下这个帖子,作者也是遇到同样的问题,他通过快速退磁解决的
http://www.amobbs.com/thread-5571972-1-1.html

cuiwei_my 发表于 2016-11-21 09:55:12

MARK{:biggrin:}

am-xgmmss 发表于 2016-11-21 11:30:46

感谢楼主分享!

hillchina 发表于 2016-11-23 17:47:25

板子在哪里能买到

lixin91985 发表于 2016-11-23 17:59:33

收藏不错的文章

shiang 发表于 2016-11-23 20:46:47

无感带载无刷电机驱动

zhcj66 发表于 2016-11-24 15:37:06

lz请问无刷电机如果只有3个电机的电源线 能否精确控制速度(1转的误差)

Xiyuhexuan 发表于 2017-1-16 13:00:50

好东西         

Xiyuhexuan 发表于 2017-1-16 13:01:08

20061002838 发表于 2013-1-23 22:03
硬件讲完了,该讲软件了。
我的程序ADC检测反电动势的时刻位于PWM-OFF,由于续流时二极管的压降比较大,在 ...

mark               

Xiyuhexuan 发表于 2017-1-16 13:01:33

顶 楼主

weichao4808335 发表于 2017-1-17 08:33:05

本帖最后由 weichao4808335 于 2017-1-17 08:37 编辑

楼主还在搞BLDC吗?帮忙看看我的这个反电势波形一直是正弦波很匪夷所思,我现在是使用强制换相,在pwm on时刻检测反电势

stevenh 发表于 2017-1-19 13:25:51

谢谢分享 !

就在今天 发表于 2017-1-20 13:45:59

学习了,正在研究

csy1991hf 发表于 2017-1-29 02:07:52

楼主厉害,半夜起来顶一下

lightzyg123 发表于 2017-3-23 14:28:28

谢谢分享~

upli 发表于 2017-3-29 21:34:05

极好的资料,细细学习下,谢谢了

SAILUO30 发表于 2017-4-5 09:13:18

mark!好贴!谢谢分享!

learner123 发表于 2017-4-5 21:11:14

楼主,加油,东西做的不错。

pengtaoABC 发表于 2017-4-6 04:36:24

资料很不错 学习了

xuzhiping9889 发表于 2017-6-19 11:17:26

不错,资料蛮全的

makeflyeasy 发表于 2017-7-6 16:35:38

请问下楼主的STM32的BLDC控制器是用的ST专利的那种方案吗?那么单周期多次检测是用定时器来实现的吗?

acchkr 发表于 2017-7-6 21:03:17

收藏了 多谢分享

308594151 发表于 2017-7-10 00:34:27

mark一下

我有我特色 发表于 2017-7-17 10:24:21

感谢楼主大公无私的分享,下来学习一下!

nitu 发表于 2017-7-17 19:22:27

楼主的精神我们都要发杨光大。。{:lol:} {:lol:}
多谢楼主的资料,改天一定要好好学习。

liu_shenglun 发表于 2017-7-23 19:01:50

多谢分享{:lol:}

unicode 发表于 2017-7-25 11:24:16

感謝樓主無私提供

chuanyang 发表于 2017-8-10 18:09:46

好贴,谢谢!

RudeBoy 发表于 2017-8-10 19:19:02

这是多久的好贴了

569350810 发表于 2017-8-10 22:40:48

谢谢分享~

rootxie 发表于 2017-8-11 23:29:52

本帖最后由 rootxie 于 2017-8-11 23:34 编辑

楼主还在搞吗?发现不少问题
power off 触发点在 period-100,实际上 PWM设置为25K,period=72M/25K=2880,而且ADC设置成7.5Cycle,实际一个通道需要12/14*(7.5+12.5)= 17.14us的转换时间,有6个通道扫描,DMA转换一次,共计17.14*6 = 102us 实际已经快要过了3个周期,所以造成了 换向周期不均衡


另外BEMF那块 也是非常诡异,VoltBEMF 是UINT16类型,实际上应该只要是ADC赋值 基本都是大于0
    if (dir == 1)            
    {
      if (VoltBEMF > 0)
            return 1;
    }
    else
    {
      if (VoltBEMF <= 26)
            return 1;
    }




20061002838 发表于 2017-8-12 00:01:08

rootxie 发表于 2017-8-11 23:29
楼主还在搞吗?发现不少问题
power off 触发点在 period-100,实际上 PWM设置为25K,period=72M/25K=2880, ...

算错了吧兄弟,怎么可能转换一次要那么久
原来默认14M时钟,14个转换周期,1us时间
现在12M时钟,20个转换周期,一共慢了 14M/12M*20/14 = 1.667us,不是你算得那么多

后面一个问题你要自己研究了,我后面没有研究方波驱动了

rootxie 发表于 2017-8-12 00:15:17

20061002838 发表于 2017-8-12 00:01
算错了吧兄弟,怎么可能转换一次要那么久
原来默认14M时钟,14个转换周期,1us时间
现在12M时钟,20个转 ...

{:titter:}是算错了,是20/12=1.67,但是6个通道扫描 也要10us时间,
时间上CC4触发距离TIM1 UPDATE就100,实际也就100/2880* 1/25k = 1.39us,
说明第一个通道的ADC也没扫描完 就开始下一个PWM 了

20061002838 发表于 2017-8-12 00:33:36

rootxie 发表于 2017-8-12 00:15
是算错了,是20/12=1.67,但是6个通道扫描 也要10us时间,
时间上CC4触发距离TIM1 UPDATE就1 ...

后面3个通道的数据不需要PWM同步,所以不会造成影响
三路BEMF一共5us,25KHz 的 PWM,一个周期40us,怎么就上一次的还没转换完成下一次的PWM已经开始了

rootxie 发表于 2017-8-12 09:05:19

哥们,不好意思,昨晚睡着了,没及时回复,见示意图,一目了然
当然 如果程序我理解错的话,请见谅!

20061002838 发表于 2017-8-12 13:50:07

rootxie 发表于 2017-8-12 09:05
哥们,不好意思,昨晚睡着了,没及时回复,见示意图,一目了然
当然 如果程序我理解错的话,请见谅! ...

PWM是中心对称模式,触发ADC的时刻距离下次更新PWM还有20us左右

rootxie 发表于 2017-8-12 19:11:48

20061002838 发表于 2017-8-12 13:50
PWM是中心对称模式,触发ADC的时刻距离下次更新PWM还有20us左右

程序好像不是中央对齐模式的

20061002838 发表于 2017-8-12 21:44:48

rootxie 发表于 2017-8-12 19:11
程序好像不是中央对齐模式的

恩,是我错了,不应该使用边沿对齐模式

su33691 发表于 2017-9-26 15:01:56

把楼主的换相代码拿走了,用到有感BLDC上。多谢。

chenchunlin 发表于 2017-9-26 20:51:41

正在做类似的项目,很实用的资料

stm32_xiaocai 发表于 2018-1-4 15:21:15

tiancaigao7 发表于 2013-1-23 22:13
楼主可以考虑同步方式采样反电动势,但是不利用AD(利用AD一个是资源浪费,另外一个资源占用比较大);采用 ...

这方法不错

ronic 发表于 2018-1-6 20:05:00

好帖,谢谢FOC BLDC

No.5 发表于 2018-1-17 20:26:58

本帖最后由 No.5 于 2018-1-17 20:47 编辑

发现说的有错误

No.5 发表于 2018-1-17 20:28:49

本帖最后由 No.5 于 2018-1-17 20:47 编辑

发现说的有错误

No.5 发表于 2018-4-3 20:52:45

LiuShengAn 发表于 2013-11-6 09:24
我明白同步续流的作用,但不是整个PWM"OFF"阶段都处于续流状态。

我实际实验了一下,我觉得这个兄弟说的对。
请仔阅读他在197/199/201这三楼说的,我认为,所谓的同步整流,用不好就是刹车。
以AH-PWM,BL-ON为例,在PWMOFF期间,如果这个时间足够长,那么前半部分是续流过程,而接下来续流结束后,绕组AB工作在发电机状态,其电动势和电流方向与刚才的续流方向是相反的。如果是普通的二极管,这个能量就截住了,表现为转子在靠惯性空转。如果是AL-ON,BL-ON,那就是发电机输出短路状态。这个过程与电机、PWM频率、转速、负载都有关,也许明显,也许不明显,但肯定是不好的。
有个证据可以证明这一点:用同步整流的驱动方式,电机速度升降都很灵敏,特别是降速时。试问,这部分机械能去哪里了?在没有回馈电源的前提下,只能是消耗在绕组和功率管上了。
虽然帖子已经过气,但希望看到的还是讨论一下。

chxzh123 发表于 2018-8-25 13:00:17

MARK,好文章

jesse2012 发表于 2018-8-30 15:36:00

好文章 很长

thyewfty 发表于 2018-10-3 16:49:40

谢谢分享·{:smile:}

liwang 发表于 2018-10-6 16:32:10

用STM32F405来做,      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 1*/
      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 0*/
      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
像这样的没有输出

twjccmx 发表于 2018-12-2 09:48:28

最近也在研究BLDC,是我需要的

12tangyang12 发表于 2018-12-2 10:47:38

太棒了,研究研究

zcf287 发表于 2019-4-15 14:21:25

mark{:smile:}{:smile:}{:smile:}

zcf287 发表于 2019-4-15 14:28:48

mark{:smile:}{:smile:}{:smile:}

aisledianzi 发表于 2019-5-3 13:39:31


好贴!谢谢共享!

xyhh4 发表于 2019-5-3 14:15:36

20061002838 发表于 2013-1-23 22:32
ADC并不怎么占用资源,定时器+ADC+DMA基本不需要COU干预,判断过零点也比较容易。用比较器的话需要增加硬 ...

根据自己的经验,电机跑到这种波形,普通方法已经不行了,得把电机加速,产生相位差,才能过零换相成功

qqtfh 发表于 2019-8-29 14:17:49

做记号                        

wpp8504 发表于 2019-8-30 15:25:38

不错,还有调试心得,学习了

eastbest 发表于 2020-4-29 10:47:00

huangqi412 发表于 2015-10-4 22:41
对波形的下臂实现没看懂。   楼主意思应该是通过CCXE和CCXNE=0后输出无效电平,修改无效电平可以修改输出电 ...

OC1 和OC1N没有变化是因为你的OSSR没有置1。
“不由定时器驱动”的意思是:OC1和OC1N不再受CNT和ARR的影响,不是悬空。

eastbest 发表于 2020-4-29 10:48:58

7年前的文章,从头到尾看了一遍,收获良多,多谢楼主的分享!

eastbest 发表于 2020-4-29 11:07:43

本帖最后由 eastbest 于 2020-4-29 11:17 编辑

不知道为什么上传不了图片。。。。。
TIM_CCxCmd(BLDC_TIMER_NUM, TIM_Channel_3, TIM_CCx_Disable);   // 0
TIM_CCxNCmd(BLDC_TIMER_NUM, TIM_Channel_3, TIM_CCxN_Disable); // 0
楼主用TIM_CCxCmd 和CCxNCmd这两个库函数分别把OCx和OCxN Inactive掉,OCxN引脚会出现一个窄脉冲,见下图绿色波形最右边。
更好的办法是重写一个函数同时把CCxE 和CCxNE清零

eastbest 发表于 2020-4-29 11:10:49

本帖最后由 eastbest 于 2020-4-29 11:12 编辑

图片。不勾选纯文本才可以

3466756555 发表于 2020-4-29 11:15:09

非常感谢lz 这么久的帖子 还能翻出来
经典就是经典

dlream 发表于 2020-6-10 13:48:58

学习学习

stronger123 发表于 2022-6-15 11:45:51

学习学习

lpx280666373 发表于 2022-8-7 21:32:43

好贴!谢谢共享!

lpx280666373 发表于 2022-8-29 10:40:26

拜读第二遍
页: 1 2 3 [4]
查看完整版本: STM32做的BLDC控制器,ADC检测反电动势,公开资料