查看: 6904|回复: 1

STM32 NUCLEO中级教程3: BLDC中H-PWM-L-ON驱动方式下的6路PWM波形输出

[复制链接]
  • TA的每日心情
    开心
    2018-9-18 06:28
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]初来乍到

    发表于 2014-12-10 16:59:35 | 显示全部楼层 |阅读模式
    分享到:
    BLDC又称直流永磁电机,或永磁同步电机,采用电机控制器通过电子控制分配方式实现换向!直流无刷电机广泛应用于汽车、工具、工业工控、自动化以及航空 航天等行业!目前BLDC电机应用十分广泛,采用MCU输出6路PWM波形控制三相H桥电路驱动BLDC是一种十分重要的技术应用。在带HALL的BLDC中,常根据HALL值的变化,采用六步换向法来驱动三相H桥。这里面最常用的PWM控制方式就是H-PWM, L-ON的方式,也就是上桥臂MOS管上输出PWM,下桥臂MOS管保持常ON的方式。这一篇文章就来讲解一下H-PWM-L-ON驱动方式下的6路PWM波形输出,如有对BLDC驱动感兴趣,可以基于STM32-NUCLEO-072RB开发平台做一个扩展板,上面加载三相H桥电路和反馈电路进行深入测试。第一部分内容讲解一下带HALL的BLDC换向表分析。第二部分内容讲解一下代码实现。
    一、带HALL的BLDC换向表分析
    在带HALL的BLDC中,一般是由霍尔传感器测量转子的位置,然后由其输出的3位二进制编码去控制逆变器中6个功率管的导通实现换相。
    下图是一个HALL传感器在电机转动一周的情况下输出值:

    HALLA/B/C输出的值并不是安装顺序排列,而是安装0x05、0x04、0x06、0x02、0x03、0x01的方式出现。如果采集到的HALL值是反向顺序,则说明电机是反向转动了。
    下面是利用示波器采集到的BLDC的HALL值输出:


    下面是常用的三相H桥逆变电路:

    根据六步换向原则,每步三个绕组中一个绕组流入电流,一个绕组流出电流,一个绕组不导通。确定通电顺序如下:
    1.A+C-2.C+B-3.A+B-4.B+A-5. B+C-6.C+A-
    每步磁场旋转60°,每6步磁场旋转一周,每步仅一个绕组被换相。
    这样,在电机正转情况下,根据HALL值来确定的导通相和驱动管导通情况如下:

    要想实现在HALL值出现时的驱动管导通相,6路PWM引脚必须提前一相配置下一个导通相的状态,并将参数存储在定时器的影子寄存器中,通过COM事件的产生,同步更新定时器各个PWM引脚的配置。下面是针对定时器要实现的预配置通道及导通相配置。

    在设置参数中,要利用到STM32的COM事件:
    COM事件是专门为电机控制用的,它只出现在高级定时器中!“当在一个通道上需要互补输出时,预装载位有OCxM、CCxE和CCxNE。在发生COM换相事件时,这些预装载位被传送到影子寄存器。这样你就可以预先设置好下一步骤配置,并在同一个时刻同时修改所有通道的配置。COM可以通过设置TIMx_EGR寄存器的COM位由软件产生,或在TRGI上升沿由硬件产生。” COM事件的触发有两种方式,一种是软件触发:利用库函数实现;另一种是硬件触发:利用STM32 定时器霍尔接口实现,由霍尔值改变来产生上升沿触发
    下面讲解一下具体的软件实现过程。
    二、Keil-mdk工程文件及代码实现
    1、Keil-mdk工程模板中加入PWM.C文件,在includes.h文件中加入PWM.H头文件

    2、在PWM.H头文件增加宏定义 --霍尔传感器引脚PC6/PC7/PC8

    3、霍尔传感器接口 HALL_GPIO_Init()函数代码实现

    霍尔传感器电路是一种OC门电路,需要增加上拉电阻才能有输出,在配置引脚端口时,可以内部不增加上拉,浮空即可。
    霍尔传感器电路结构和霍尔接口电路


    4、高级定时器初始化Timer1_Init()代码实现


    配置好定时器,初始化是配置在定时模式,不能输出PWM,否则有容易引起MOS管短路的风险。
    5、换向函数实现:BLDC_Hall_Convet()
    这个是根据HALL值来进行换向,因为没用硬件H桥电路,这里仅是手动转动电机实现换向,所以COM事件通过软件来产生。

    其他霍尔值的配置类似。
    6、中断复位函数实现:
    在COM事件中断中,进行换向判定:

    7、主函数代码main.c代码实现

    在main.c里面初始化定时器配置后,就要对电机HALL值进行判断,然后设置不同的PWM输出。
    打印输出的HALL值:

    实际输出的H-PWM-L-ON波形与STM32技术参考手册波形是一致的

    一个硬件连线图:
    回复

    使用道具 举报

    该用户从未签到

    发表于 2019-5-9 13:44:57 | 显示全部楼层
    我有个疑问,hall有变化你才产生com事件换向,那hall什么情况下才会变化呢?启动的时候你没有给换向,hall就不会变,不变就不换向,这是死循环吗?
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /2 下一条

    手机版|小黑屋|与非网

    GMT+8, 2024-4-19 07:42 , Processed in 0.117343 second(s), 19 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2020, Tencent Cloud.