打印
[技术问答]

用新唐N76E003做BLCD之二———一步一步跟我做无刷电机驱动板

[复制链接]
楼主: tianxj01
手机看帖
扫描二维码
随时随地手机跟帖
21
tianxj01|  楼主 | 2020-6-22 08:46 | 只看该作者 |只看大图 回帖奖励 |倒序浏览
叶春勇 发表于 2020-6-21 20:25
这个我换成EG2133,三半桥驱动,不知行不行?

看芯片的逻辑,AL是反逻辑输入,这个和EG2132明显不和,不过EG2131的输入逻辑和这个是一模一样的,而且EG2131的各项指标和2133的单路好像一模一样,所以肯定可以用,而且由于分开几个芯片,则实际功耗大大增加,也就是意味着驱动能力可以提高不少。

使用特权

评论回复
22
叶春勇| | 2020-6-22 09:06 | 只看该作者
tianxj01 发表于 2020-6-22 08:46
看芯片的逻辑,AL是反逻辑输入,这个和EG2132明显不和,不过EG2131的输入逻辑和这个是一模一样的,而且EG ...

这个我没注意。型号选错了。
这个是EG2134


这个是EG2133

应该选型EG2134


使用特权

评论回复
23
mmuuss586| | 2020-6-22 09:33 | 只看该作者
bucuo

使用特权

评论回复
24
tianxj01|  楼主 | 2020-6-22 11:12 | 只看该作者
叶春勇 发表于 2020-6-22 09:06
这个我没注意。型号选错了。
这个是EG2134

2134优势在于体积小,紧凑,缺点就是驱动负荷大的话,芯片容易过载。
2132则正好相反,3个芯片,驱动负荷可以打很多,但是PCB就不够紧凑。
至于价格,貌似三片和一片的价格基本上一样,厂家也是这样考虑的吧。

使用特权

评论回复
25
antusheng| | 2020-6-22 13:00 | 只看该作者
好贴,楼主的技术越来越牛了,这次做的波形真漂亮。

使用特权

评论回复
26
598330983| | 2020-6-22 23:16 | 只看该作者
跟楼主学习一下大招。

使用特权

评论回复
27
tianxj01|  楼主 | 2020-6-23 18:43 | 只看该作者
本帖最后由 tianxj01 于 2020-6-24 09:27 编辑

现在开始讲程序处理部分。
整个程序最核心的部分,是几个换相数据,下面直接给出换相表:
volatile u8 code MotorPhaseStateHightTab[]={0xFE,0xFB,0xFB,0xEF,0xEF,0xFE};
volatile u8 code MotorPhaseStateLowTab[]={0x20,0x20,0x02,0x02,0x08,0x08};
volatile u8 code HallSeqTab[]={0,2,4,3,6,1,5,0};//======================================
MotorPhaseStateHightTab 看字面应该就可以明白,这是上管换相数据。
Tab数据查表后,直接用于N76E003的PMEN寄存器。
关于PMEN寄存器的官方说明文档描述是这样的:
PWMn输出掩码使能位
0 = PWMn 信号输出
1 = PWMn 根据PMDn设定的电位值掩码
我们看看顺序0的表格内容=0xFE,二进制是11111110,也就是只有PWM0通道输出PWM信号(PWM0是A相的上臂输出端),其他个PWM端口根据PMD的数据来确定。
//======================================
这里我们再看看官方对PMD寄存器的定义:
PWMn掩码数据寄存器
PWMn信号输出掩码寄存器设置的电平,当其相应的PMENn位设置时。
0 = PWMn 掩码,输出低电平
1 = PWMn 掩码,输出高电平
//======================================
然后我们再看看PMD查表后的第一拍数据=0x20,二进制是00100000,也就是这个时候,PWM5通道输出高电平电平(注意是高电平,而不是PWM信号,这就可以实现单极性半桥控制)。(PWM5是C相的下臂输出端)
因此,MotorPhaseStateLowTab就是下管换相数据,Tab数据查表后,直接用于N76E003的PMD寄存器。大家可以对比着下面的时序图,来分析上面的2个换相表。上面的顺序1,就等于下面图表60-120°区间,其他的以此类推,换相表最后一个数据,0xFE=11111110,即AH=PWM,下臂为0x08=00001000即BL=H,循环过来对应的是下图0-60°

//======================================
HallSeqTab表 则是霍尔输入逻辑转变为顺序的换相拍子的转换表格。也就是霍尔输入端口读进去的数据,和拍子顺序的对应关系,{0,2,4,3,6,1,5,0}表格把000和111输入都填的0,这是无效输入,合法的输入只有1-6表格单元,霍尔输入101时候,HallSeqTab[5]=1,也就是换相顺序1,霍尔输入001时候,HallSeqTab[1]=2,也就是换相顺序2。...........霍尔输入100时候,HallSeqTab[4]=6,也就是换相顺序6。

实际操作非常简单,每次查询(或者中断处理)执行下面的操作就是了:
if(HallSwtch>0&&HallSwtch<7)u8HallSensorMotorPhaseState = HallSeqTab[HallSwtch]; //检查合法霍尔输入,并把霍尔输入转换成顺序的换相数据
PMEN = MotorPhaseStateHightTab[u8HallSensorMotorPhaseState-1];          //ABC相上臂驱动换相
PMD  = MotorPhaseStateLowTab[u8HallSensorMotorPhaseState-1];                //ABC相下臂驱动换相

也许有得人会问,你再弄个霍尔输入逻辑转换表,干嘛不按照实时输入霍尔数据的数字,重新安排驱动的上下管换相表格呢?这样做当然是可以的,只不过做表格时容易出错,关键是电动机反转逻辑现在这样更容易简单化处理,倒置一下查出来的霍尔输入对应顺序再去差换相表格就直接实现电动机反转了。


今天就到这里...............





使用特权

评论回复
28
pigluffy| | 2020-6-23 22:59 | 只看该作者
學習學習

使用特权

评论回复
29
zlf1208| | 2020-6-24 14:40 | 只看该作者
本帖最后由 zlf1208 于 2020-6-24 15:34 编辑
tianxj01 发表于 2020-6-23 18:43
现在开始讲程序处理部分。
整个程序最核心的部分,是几个换相数据,下面直接给出换相表:
volatile u8 code ...

做BLDC驱动,霍尔换向与三相绕组的对应关系是个**烦,网上很多参考给出的结果不一定能够直接拿来用,而且不同的资料说得还不一样,只能知其然而不知其所以然,为此我特意画了电机和霍尔安装关系的结构图,对应关系和转换条件直观明了,彻底把二者的关系 描述清楚了。为了表达对楼主的敬意,在此与大家分享。使用图中的结果,一定要确保电机的三相绕组UVW和三个霍尔传感器之间的对应关系与图中描述的完全相同。不同的顺序和命名,都可以经过转换,得到图示的结果。




使用特权

评论回复
30
tianxj01|  楼主 | 2020-6-24 16:34 | 只看该作者
zlf1208 发表于 2020-6-24 14:40
做BLDC驱动,霍尔换向与三相绕组的对应关系是个**烦,网上很多参考给出的结果不一定能够直接拿来用,而 ...

我在上一个关于纯理论的用N76E003做BLCD的帖子时候,我就发过这个通过运算逻辑来进行输出换相的公式:

使用特权

评论回复
评论
zlf1208 2020-6-24 17:36 回复TA
我有个毛病,做事一定要知其然还要知其所以然。楼主的图只解释了正转,如何做到反转也胸有成竹,我觉得我的图可以推导可以验证,还可以搞清楚物理过程 
31
dcp| | 2020-6-25 09:22 | 只看该作者
LZ乃电机高手,出套件吗?

使用特权

评论回复
32
darklighttt| | 2020-6-27 17:25 | 只看该作者
支持下,谢谢分享!确实是一步步开始做的。

使用特权

评论回复
33
darklighttt| | 2020-6-27 17:29 | 只看该作者
支持下,这个帖子讲解的太详细了,看完可以学到不少的东西、

使用特权

评论回复
34
YOUTHFUL| | 2020-7-5 16:54 | 只看该作者
楼主威武!谢谢分享!

使用特权

评论回复
35
nawu| | 2020-7-6 17:19 | 只看该作者
非常感谢楼主分享

使用特权

评论回复
36
qcliu| | 2020-7-6 17:19 | 只看该作者
介绍的很详细

使用特权

评论回复
37
tfqi| | 2020-7-6 17:20 | 只看该作者
楼主辛苦了

使用特权

评论回复
38
wiba| | 2020-7-6 17:20 | 只看该作者
太好了 真是我需要的

使用特权

评论回复
39
zljiu| | 2020-7-6 17:20 | 只看该作者
看着一点也不麻烦啊

使用特权

评论回复
40
jrcsh| | 2020-7-24 23:33 | 只看该作者
学习

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则