欢迎您来到半岛在线登录官网

半岛在线登录官网

公司新闻 知识专区 无刷小百科

快速玩“转”BLDC:这个电机驱动开发的小技巧你想不想知道?

发布时间:2024-01-23 08:41:18 | 作者: 半岛在线登录官网


  从远程物联网 (IoT) 控制的车库开门器和车窗到卫星推进控制器,无刷直流 (电机,设计人员面临的问题是驱动电机所需的控制算法很复杂,而且往往是专用的。这使得一般工程师很难在合理时间内启动并运行这种电机。

  开发人员通常只能选择在微控制器上运行的基于软件的解决方案(这是一种灵活的软件解决方案,但也给微控制器带来了计算负担),或者使用专用集成电路 (IC)。后者封装了完整的BLDC电机控制功能,并将BLDC控制从主机转移到其中。

  本文首先讨论基于微控制器的软件解决方案和专用硬件芯片解决方案之间的区别,随后深入探讨怎么样去使用Allegro MicroSystems的A4964KJPTR-T——专为简化汽车应用BLDC电机控制而设计的电机驱动器。本文将展示如何与A4964KJPTR-T交互,以及一些避免意外行为的最佳做法。

  BLDC电机在广泛的速度范围内提供高效扭矩输送,噪音小,没有有刷电机的机械摩擦。BLDC电机由电流而非电压控制,用途广泛,其形状、尺寸和成本也因应用不同而各异。

  例如,TRINAMIC Motion Control的QBL4208-41-04-006是一款24V、4000RPM的电机,可提供高达0.06Nm的扭矩(图1)。该电机很轻巧(0.662lb),并为研发人员提供了多种电机控制选择,如利用反电动势 (BEMF) 的无传感器操作,或使用能报告位置的内置传感器。

  BLDC电机通过三相线驱动,产生磁场,磁场再推动永久磁铁,使转子移动并转动电机。

  理论上,这听起来很容易,但实际上,驱动BLDC电机相当复杂,研发人员只能选择使用软件框架来驱动电机,或者选择专用芯片解决方案。

  在解决如何转动BLDC电机的问题时,研发人员应该考虑若干因素。这一些因素基本上可归结为:

  从硬件的角度来看,走软件路线可能非常着迷,因为专用芯片解决方案会给BOM增加一些额外的成本。若不使用专用芯片,则能去掉该成本,花很少的钱去买微控制器,把所有控制算法放进该微控制器里。这似乎是双赢的做法,但团队往往没考虑到该决定的全部后果。

  是的,BOM成本降低了,但微控制器上增加了额外负担,要处理BLDC状态数据并持续驱动电机。如果微控制器还要对其他传感器进行采样、与无线电通信和控制别的设备,那么稍不注意,软件开发和维护成本就可能突飞猛涨。

  不过,微控制器中基于软件的解决方案具备灵活性,因为团队可以微调其电机控制算法。使用软件也并不代表事情总会趋于极度复杂。

  例如,通常情况下,将电机控制算法移入微控制器会占用更多的RAM,并需要大量闪存。然而,如果团队使用专为电机控制而设计的微控制器,如Texas Instruments的F280049CRSHSR电机控制微控制器,算法已内置在微控制器ROM的库中。这在某种程度上预示着向应用程序添加的额外代码只有对库进行访问的函数调用,所有繁重的工作都由该库完成。

  不过,转动BLDC电机不仅是软件的问题,还需要硬件。图3显示了使用C2000微控制器的应用实例,其中F280049CRSHSR是该系列的成员。此图说明了驱动BLDC电机所需的一切以及可选项。除了微控制器,还需要某种三相功率级,用来驱动BLDC电机的三个相位,使电机转动。

  图3:Texas Instruments的C2000微控制器专为电机控制应用而设计。此图为应用实例,中间是微控制器,其余为驱动BLDC电机的必需和可选电路。(图片来自:Texas Instruments)

  利用微控制器驱动电机无疑具有吸引力,但专用硬件解决方案怎么样呢?我们来看看Allegro MicroSystems的A4964KJPTR-T电机驱动器芯片。

  Allegro MicroSystems的A4964KJPTR-T电机驱动芯片是专用BLDC电机驱动器,其中包含了驱动电机所需的所有能力(图4)。该芯片专为汽车应用而设计,并与N沟道MOSFET搭配使用,具有无传感器启动和换向功能,因此就需要的外部硬件极少。A4964KJPTR-T的工作电压范围也很广,从5.5V至50V,不仅适用于汽车系统,而且几乎涵盖了所有标准应用。

  A4964KJPTR-T最引人注目的特性或许是,它能通过串行外设接口 (SPI) 与微控制器或中央电子控制单元 (ECU) 相连接,以配置电机运行的各种寄存器。显然,该微控制器不需要像运行电机控制算法本身的微控制器那样强大。

  另外,很有意义的是,A4964KJPTR-T电机速度也可以在没有SPI的情况下驱动,只需提供脉冲宽度调制 (PWM) 信号即可。它有非易失性存储器可以存储电机设置,上电时加载这些设置,允许只用PWM信号来控制电机。

  从配置角度而言,A4964KJPTR-T有32个可寻址16位寄存器,外加一个状态寄存器。状态寄存器很独特,每次SP读/写操作时传输前5位,以便软件能检查一般状态,了解是不是有任何故障或问题。对芯片执行写操作时,A4964KJPTR-T不会回传数据,因此能读取所有状态寄存器。

  在32个可寻址寄存器中,还有两个特殊寄存器。寄存器30是只写寄存器,寄存器31是只读寄存器。只写寄存器允许开发人员以0 – 1023之间的值设置需求输入,即驱动电机的占空比速率。只读寄存器的数据根据写入寄存器29(即回读选择寄存器)的请求数据而改变。该寄存器允许检索各种遥测信息,例如:

  除了这些特殊寄存器,其余30个寄存器允许对具体的电机应用做调整,并允许使能或禁用故障,如限流和栅极驱动故障。

  专用电机驱动器很有意义,其将运行电机所需的各种配置都存储在几十个配置寄存器中。这极大地消除了微控制器原本会产生的软件开销,也许更重要的是,还极大地降低了软件开发和维护成本。驱动BLDC不过是发送PWM(这不会造成微控制器的任何开销),或者使能电机位并提供基于SPI的需求输入来转动BLDC。

  A4964KJPTR-T的连接很简单,以下是研发人员应牢记的几个“技巧与诀窍”,可以简化和加快他们的开发,例如:

  ● 状态寄存器在每次写入芯片时都会通过SPI接口返回,而不是用作专门的可寻址寄存器。这在某种程度上预示着驱动代码在写入芯片时需要监控SPI总线SDO线路以获得状态信息。

  ● 故障信息包括在状态寄存器中,但当微控制器提供地址访问信息时,在前五位中能够正常的看到每次SPI事务的芯片状态概览。此数据可用于确定是不是出现任何问题。

  ● 存储器映射中有两个独特的寄存器,一个只读,一个只写。这很简单,但要注意别试图读取只写寄存器,这样做会把读序列中的任何伪数据写入该寄存器中。

  ● 该芯片有非易失性存储器,可用于存储默认参数。这些参数被加载到RAM中,并在启动时使用。为确保芯片最有效地启动进入就绪状态,应将“安全”启动值写入芯片。

  ● 如果终端设备在嘈杂或重辐射环境中使用,那么设计应用程序代码定期重新确认配置数据是不错的主意。芯片配置存储在RAM中,这在某种程度上预示着它很容易受到宇宙射线、位反转以及所有有几率发生在电子科技类产品中的奇怪、罕见事件的影响。

  用于汽车、物联网或其他应用的BLDC电机实现相当普遍,但驱动会很复杂。为了应对软件复杂性,研发人员可以使用专用BLDC电机驱动器,如A4964KJPTR-T,其中封装了所有电机控制功能。

  虽然仍然需要软件与芯片交互,但运行软件的微控制器只需要设定配置设置,A4964KJPTR-T就会负责驱动电机。尝试使用A4964KJPTR-T时,研发人员会发现,遵循所提供的“技巧与诀窍”能够在一定程度上帮助节省不少时间,避免许多麻烦。