OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4171|回复: 22

STM32F0 做BLCD驱动程序

[复制链接]

2

主题

18

帖子

0

精华

初级会员

Rank: 2

积分
112
金钱
112
注册时间
2017-10-10
在线时间
24 小时
发表于 2017-10-21 16:00:41 | 显示全部楼层 |阅读模式
1金钱
电调控制的速度一旦超过5000,电机就开始出现高频异响声音。  
按照示波器观察,这个梯形并不完美,前面高,后面低,能指点一下吗

IMG_20171021_154637_HDR_[B@7a3724b.jpg

最佳答案

查看完整内容[请看2#楼]

这样的波形是->换向滞后造成。接下来就我自己找原因吧
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

2

主题

18

帖子

0

精华

初级会员

Rank: 2

积分
112
金钱
112
注册时间
2017-10-10
在线时间
24 小时
 楼主| 发表于 2017-10-21 16:00:42 | 显示全部楼层

这样的波形是->换向滞后造成。接下来就我自己找原因吧
回复

使用道具 举报

2

主题

18

帖子

0

精华

初级会员

Rank: 2

积分
112
金钱
112
注册时间
2017-10-10
在线时间
24 小时
 楼主| 发表于 2017-10-21 16:02:37 | 显示全部楼层
黄色是过零检测
回复

使用道具 举报

3

主题

19

帖子

0

精华

高级会员

Rank: 4

积分
673
金钱
673
注册时间
2016-6-6
在线时间
107 小时
发表于 2017-11-4 19:21:18 | 显示全部楼层
问下楼主你这个是用的比较器还是ADC呢?
回复

使用道具 举报

6

主题

305

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
2876
金钱
2876
注册时间
2016-7-17
在线时间
404 小时
发表于 2017-11-4 20:56:34 | 显示全部楼层
是换相点滞后了吧?
回复

使用道具 举报

2

主题

18

帖子

0

精华

初级会员

Rank: 2

积分
112
金钱
112
注册时间
2017-10-10
在线时间
24 小时
 楼主| 发表于 2017-11-6 09:34:29 | 显示全部楼层
染不黑的夜 发表于 2017-11-4 19:21
问下楼主你这个是用的比较器还是ADC呢?

是ADC的,没用比较器
回复

使用道具 举报

2

主题

18

帖子

0

精华

初级会员

Rank: 2

积分
112
金钱
112
注册时间
2017-10-10
在线时间
24 小时
 楼主| 发表于 2017-11-6 09:36:17 | 显示全部楼层
染不黑的夜 发表于 2017-11-4 19:21
问下楼主你这个是用的比较器还是ADC呢?

那,是不是pwm低电平时候,adc采样悬空端,数值当从正到负或者从负到正时,就是过零事件?
回复

使用道具 举报

3

主题

19

帖子

0

精华

高级会员

Rank: 4

积分
673
金钱
673
注册时间
2016-6-6
在线时间
107 小时
发表于 2017-11-6 10:48:02 | 显示全部楼层
理论上是悬空端的符号变化,但我发现用一个较小的数值来比较的话波形会好点
回复

使用道具 举报

2

主题

18

帖子

0

精华

初级会员

Rank: 2

积分
112
金钱
112
注册时间
2017-10-10
在线时间
24 小时
 楼主| 发表于 2017-11-6 11:36:26 | 显示全部楼层
f1174562 发表于 2017-11-4 20:56
是换相点滞后了吧?

应该是的,问题在于过零检测这里。。。
用的是H-PWM L-ON 方式, 在pwm off时候检测悬空端的符号变化。adc采不了负数,所以用一个比较小的值作为比较。 这样的思路对不对
回复

使用道具 举报

2

主题

18

帖子

0

精华

初级会员

Rank: 2

积分
112
金钱
112
注册时间
2017-10-10
在线时间
24 小时
 楼主| 发表于 2017-11-6 11:39:02 | 显示全部楼层
染不黑的夜 发表于 2017-11-6 10:48
理论上是悬空端的符号变化,但我发现用一个较小的数值来比较的话波形会好点

是的,我现在用的是150作为比较。  adc最大是4096。这样大概可以吧
低速转时候换向波形宽度比较对称,速度一上去了就GG了。如果思路正确的话,我就要考虑是不是系统哪里的延迟比较大了。。
回复

使用道具 举报

6

主题

305

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
2876
金钱
2876
注册时间
2016-7-17
在线时间
404 小时
发表于 2017-11-6 13:26:07 | 显示全部楼层
可以的,只要是0左右就可以。
回复

使用道具 举报

2

主题

18

帖子

0

精华

初级会员

Rank: 2

积分
112
金钱
112
注册时间
2017-10-10
在线时间
24 小时
 楼主| 发表于 2017-11-6 21:21:49 | 显示全部楼层
f1174562 发表于 2017-11-6 13:26
可以的,只要是0左右就可以。

我最开始的问题,现在没有完全解决。
我在定时中断里换相,中断回调函数执行时间太长所以换相受影响。修改后得到改善,但是没有完全解决,现在可以6对极达到1万1千转,之前只能到4千多。

前辈你说的在0左右就可以,理论上是不是直接等于0就是最完美的
回复

使用道具 举报

6

主题

305

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
2876
金钱
2876
注册时间
2016-7-17
在线时间
404 小时
发表于 2017-11-7 10:50:51 | 显示全部楼层
a510550964 发表于 2017-11-6 21:21
我最开始的问题,现在没有完全解决。
我在定时中断里换相,中断回调函数执行时间太长所以换相受影响。修 ...

你找到过零点以后还要再延时30°的时间,所以不一定需要找到等于零的时刻,可以靠软件修改延时时间。
回复

使用道具 举报

3

主题

19

帖子

0

精华

高级会员

Rank: 4

积分
673
金钱
673
注册时间
2016-6-6
在线时间
107 小时
发表于 2017-11-8 10:46:26 | 显示全部楼层
ADC低速的时候在PWM_OFF阶段采样,你转到高速就换成PWM_ON采样,这样切换应该没有啥问题的
回复

使用道具 举报

2

主题

18

帖子

0

精华

初级会员

Rank: 2

积分
112
金钱
112
注册时间
2017-10-10
在线时间
24 小时
 楼主| 发表于 2017-11-8 11:07:05 | 显示全部楼层
染不黑的夜 发表于 2017-11-8 10:46
ADC低速的时候在PWM_OFF阶段采样,你转到高速就换成PWM_ON采样,这样切换应该没有啥问题的

pwm_on采样的时候,零点还是悬空端的0v吗?还是说需要求出零点?
回复

使用道具 举报

2

主题

18

帖子

0

精华

初级会员

Rank: 2

积分
112
金钱
112
注册时间
2017-10-10
在线时间
24 小时
 楼主| 发表于 2017-11-8 11:13:48 | 显示全部楼层
染不黑的夜 发表于 2017-11-8 10:46
ADC低速的时候在PWM_OFF阶段采样,你转到高速就换成PWM_ON采样,这样切换应该没有啥问题的

这是9000 rpm的波形,前后还是不对称。这个是在pwm_off期间去取adc和0做对比。如果pwm_on的话,就不是adc和0做对比了吧
IMG_20171108_110903.jpg
回复

使用道具 举报

2

主题

18

帖子

0

精华

初级会员

Rank: 2

积分
112
金钱
112
注册时间
2017-10-10
在线时间
24 小时
 楼主| 发表于 2017-11-8 11:40:31 | 显示全部楼层
染不黑的夜 发表于 2017-11-8 10:46
ADC低速的时候在PWM_OFF阶段采样,你转到高速就换成PWM_ON采样,这样切换应该没有啥问题的

是不是利用另外两相pwm(on)时候,一个PGND,一个VCC。然后求出一个1/2VCC作为参考零点
回复

使用道具 举报

3

主题

19

帖子

0

精华

高级会员

Rank: 4

积分
673
金钱
673
注册时间
2016-6-6
在线时间
107 小时
发表于 2017-11-9 12:58:56 | 显示全部楼层
PWM_ON是悬空端和母线电压对比
回复

使用道具 举报

3

主题

19

帖子

0

精华

高级会员

Rank: 4

积分
673
金钱
673
注册时间
2016-6-6
在线时间
107 小时
发表于 2017-11-9 13:00:11 | 显示全部楼层
你一直都是PWM_Off来检测的话占空比不能调制到100%
回复

使用道具 举报

2

主题

18

帖子

0

精华

初级会员

Rank: 2

积分
112
金钱
112
注册时间
2017-10-10
在线时间
24 小时
 楼主| 发表于 2017-11-9 16:29:25 | 显示全部楼层
染不黑的夜 发表于 2017-11-9 13:00
你一直都是PWM_Off来检测的话占空比不能调制到100%

pwm_on 的代码写完了还没测试,就发现了新问题。
回复

使用道具 举报

2

主题

18

帖子

0

精华

初级会员

Rank: 2

积分
112
金钱
112
注册时间
2017-10-10
在线时间
24 小时
 楼主| 发表于 2017-11-9 16:38:44 | 显示全部楼层
染不黑的夜 发表于 2017-11-9 13:00
你一直都是PWM_Off来检测的话占空比不能调制到100%

虚线为0V,黄色跳变代表的是换相,这个是梯形下降部分的放大。 可以看出来真实情况:在2个 pwm 周期前的位置过零。检测到过零事件时候已经晚了。
现象:pwm_off期间中间位置尖峰,ad开启采样就会出现,关闭采样尖峰消失。
影响:尖峰明显影响到了过零检测, 尖峰电平高低并不完全一致。不能软件消除。

问题: 你们ad采样时候会出现这个情况吗?尖峰。

这个大概就是转速上去后失步的原因吧?

111.jpg
回复

使用道具 举报

2

主题

18

帖子

0

精华

初级会员

Rank: 2

积分
112
金钱
112
注册时间
2017-10-10
在线时间
24 小时
 楼主| 发表于 2017-11-9 17:24:02 | 显示全部楼层
染不黑的夜 发表于 2017-11-9 13:00
你一直都是PWM_Off来检测的话占空比不能调制到100%

那个尖峰问题暂时解决了,AD采样SamplingTime变长,就不会错过了,但是波形完美点了,低速就开始失步了。应该是逻辑问题。我再找找
回复

使用道具 举报

3

主题

19

帖子

0

精华

高级会员

Rank: 4

积分
673
金钱
673
注册时间
2016-6-6
在线时间
107 小时
发表于 2017-11-9 21:58:35 | 显示全部楼层
峰尖你在电源输入那里加一个大电容,不需要延长采样时间
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-7 00:51

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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