利用 A4964KJPTR-T 电机驱动器加快汽车和物联网 BLDC 电机应用开发

作者:Jacob Beningo

投稿人:DigiKey 北美编辑

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

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

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

BLDC 电机极简介绍

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

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

TRINAMIC 的 24 V、4000 RPM BLDC 电机 QBL4208-41-04-006 图片图 1:QBL4208-41-04-006 是一款 24 V、4000 RPM BLDC 电机,最高速度下可提供略高于 0.06 Nm 的扭矩。(图片来源:TRINAMIC Motion Control GmbH)

如需更大扭矩,设计人员可以使用 QBL4208-41-04-025,这款电机也是来自 TRINAMIC Motion Control(图 2)。这是一款 24 V、4000 RPM BLDC 电机,可提供略高于 0.25 Nm 的扭矩。

TRINAMIC Motion Control 的 24 V、4000 RPM BLDC 电机 QBL4208-41-04-025 图片图 2:TRINAMIC Motion Control 的 QBL4208-41-04-025 是一款 24 V、4000 RPM BLDC 电机,最高速度下可提供略高于 0.25 Nm 的扭矩。(图片来源:TRINAMIC Motion Control GmbH)

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

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

软件与专用芯片解决方案

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

  • BOM 成本与人工成本
  • 电路板复杂性与软件复杂性
  • 维护时间和成本

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

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

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

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

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

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

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

Allegro MicroSystems 的 A4964KJPTR-T 电机驱动器

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

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

Allegro 的 A4964KJPTR-T BLDC 电机驱动器示意图(点击放大)图 4:A4964KJPTR-T BLDC 电机驱动器工作电压为 5.5 V 至 50 V,提供无传感器启动和换向。电机速度可通过 SPI 或专用 PWM 信号进行配置。(图片来源:Allegro MicroSystems)

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

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

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

  • 诊断
  • 电机速度
  • 平均供电电流
  • 供电电压
  • 芯片温度
  • 需求输入
  • 应用的桥峰值占空比
  • 应用的相位前移

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

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

A4964KJPTR-T 使用技巧与诀窍

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

  • 状态寄存器在每次写入芯片时都会通过 SPI 接口返回,而不是用作专门的可寻址寄存器。这意味着驱动代码在写入芯片时需要监控 SPI 总线 SDO 线路以获得状态信息。
  • 故障信息包括在状态寄存器中,但当微控制器提供地址访问信息时,在前五位中可以看到每次 SPI 事务的芯片状态概览。此数据可用于确定是否出现任何问题。
  • 存储器映射中有两个独特的寄存器,一个只读,一个只写。这很简单,但要注意不要试图读取只写寄存器,这样做会把读序列中的任何伪数据写入该寄存器中。
  • 该芯片有非易失性存储器,可用于存储默认参数。这些参数被加载到 RAM 中,并在启动时使用。为确保芯片最有效地启动进入就绪状态,应将“安全”启动值写入芯片。
  • 如果终端设备在嘈杂或重辐射环境中使用,那么设计应用程序代码定期重新确认配置数据是不错的主意。芯片配置存储在 RAM 中,这意味着它很容易受到宇宙射线、位反转以及所有可能发生在电子产品中的奇怪、罕见事件的影响。

结语

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

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

免责声明:各个作者和/或论坛参与者在本网站发表的观点、看法和意见不代表 DigiKey 的观点、看法和意见,也不代表 DigiKey 官方政策。

关于此作者

Jacob Beningo

Jacob Beningo 是一位嵌入式软件顾问,目前与十几个国家的客户保持合作,通过帮助客户改善产品质量、降低成本和加快上市时间来大幅改变他们的业务。Jacob 先后发表了 200 多篇关于嵌入式软件开发技术的文章,是一位广受欢迎的演讲者和技术培训师。他拥有三个学位,其中包括密歇根大学的工程硕士学位。如有需要,欢迎随时通过 jacob@beningo.com 与其联系,也可访问其网站 www.beningo.com,并订阅其月度 Embedded Bytes Newsletter

关于此出版商

DigiKey 北美编辑