牵引逆变器是电动汽车中的主要电源处理系统。该电源处理块的实时控制是一项关键任务,需要一个具有低延迟外设和确定性处理时间的微控制器单元 (MCU)。新推出的德州仪器 (TI) MCU AM263x 非常适合该应用。但是,为了加快 MCU 的市场推广,必须在与电动汽车牵引逆变器非常匹配的参考设计中对其进行演示。该演示也将帮助客户显著缩短软件开发时间,专注于产品的开发。本文档重点介绍牵引逆变器的软件框架,并借助参考设计汽车类大功率、高性能 SiC 牵引逆变器参考设计 演示了 AM263x 的实时控制模块的功能。
Sitara™ and Code Composer Studio™are TMs ofTI corporate name.
CoreSight™is a TM ofArm Limited (or its subsidiaries) in the US and/or elsewhere.
Arm® and Cortex®are reg TMs ofArm Limited (or its subsidiaries) in the US and/or elsewhere.
Other TMs
本文档的主要目的是介绍如何在汽车牵引逆变器参考设计中使用德州仪器 (TI) Sitara™ AM263x 系列微控制器 (MCU)。本参考设计是 TI 和 Wolfspeed 提供的基于 SiC 的 800V、300kW 逆变器参考设计,该参考设计尝试为设计人员和工程师提供着手点,来实现高性能、高效率牵引逆变器系统(汽车类大功率、高性能 SiC 牵引逆变器参考设计)。本参考设计的应用手册详细介绍了硬件和软件设计注意事项。但是,本应用手册不涵盖与 AM263x 相关的软件设计方面。本文档尝试涵盖该方面,以便能从各个方面完善参考设计文档。
TI 建议,本应用手册仅可在实验室环境中使用,不应将此参考设计作为成品供一般消费者使用。
TI 建议,本应用手册仅可由熟悉处理高压电子和机械部件、系统及子系统所存在相关风险的合格工程师和技术人员使用。
高电压! 电路板中存在可接触的高电压。如电路板的电压和电流处理不当或施加不正确,则可能导致电击、火灾或伤害事故。使用该设备时应特别小心,并采取相应的保护措施,以避免伤害自己或损坏财产。
表 1-1 总结了关键系统规格。
参数 | 规格(单位) | 说明 |
---|---|---|
POUT | 300kW | 额定输出功率 |
VDSmax | 1200 V | 最大漏源电压 |
VDC | 800V | 建议的直流总线电压 |
IDC | 300 A | 直流总线电流 |
fSWmax | 60kHz | 基于栅极驱动器辅助电源 |
IL | 360 A | 交流输出 RMS 电流 |
LPL | 5.3nH | 寄生电感,包括直流链路电容器和汇流条 |
CDC | 300μF | 直流链路电容器 |
LDC | 3.5nH | 直流总线电容器 ESL |
功率密度 | 32 kW/L | |
尺寸 | 28cm × 29cm × 11.5cm | |
重量 | 6.2 kg | |
体积 | 9.3L | |
面积 | 812 cm2 | |
P | 5 巴 | 冷却液工作压力 |
∆P | 200 毫巴 | 压力降 |
AM263x 是一个片上系统 (SoC),具有 Arm®Cortex®-R5F 集群和专用于实时控制的加速器。集群可以配置为双核模式或锁步模式。加速器命名为控制子系统,包括 ADC、DAC 和 PWM 等接口模块。本文档介绍了如何设置 R5F 内核、牵引逆变器功率级所需的一组接口模块,以及如何使用参考设计 TIDM-02014 实现功率级控制。有关 SoC 的更多详情,请参阅 AM263x Sitara™ 微控制器 数据表和 AM263x Sitara 处理器技术参考手册。有关逆变器硬件的详细信息,请参阅汽车类大功率、高性能 SiC 牵引逆变器参考设计 的设计指南。
Arm® Cortex®-R5F 集群包括两个 R5F 内核,附带 L1 高速缓存和紧耦合存储器 (TCM) 之类的存储器、标准 Arm CoreSight™ 调试和布线架构、集成式矢量中断管理器 (VIM)、ECC 聚合以及支持协议转换和地址转换的各种其他模块,以便于集成到 SoC。更详细的方框图请参阅 AM263x 技术参考手册。使用 AM263x 进行实时控制的关键在于了解高速缓存和 TCM 的影响。在编写程序时,可以通过链接命令文件将指令和数据分配给片上 RAM 或 TCM。在执行过程中,片上 RAM 中经常使用的指令和数据会自动进入高速缓存。因此,执行时间显著改善。但是,片上 RAM 中的数据直到从高速缓存写回后才更新。当数据在高速缓存中时,只能通过内核中运行的指令访问数据。Code Composer Studio™ (CCS) 等集成开发环境 (IDE) 的存储器视图将无法读取数据。然而,通过在内核内部运行通用异步接收器/发送器 (UART) 的一段程序,也可以使用 CSS 读取高速缓存。本应用手册详细讨论了 UART 方法的详细信息:用于牵引逆变器的 AM263x。另一方面,分配给 TCM 的指令和数据保存在地址中,可随时提供给存储器视图。通常情况下,程序在高速缓存和 TCM 中的执行速度相当快,而片上 RAM 中的程序执行则要慢得多。另外,从片上 RAM 向高速缓存转移程序的操作需要一些时间,并导致不可预测的延迟。如果此延迟对于应用要求很重要,强烈建议将应用程序存储在 TCM 中。有关 TCM 地址的详情请参阅 AM263x 技术参考手册。在此示例中,场定向控制的中断程序和软件旋转变压器数字转换器位于 TCM 中。链接命令文件作为示例放在 CCS 工程文件夹中。
实时控制加速器继承了全球广泛使用的德州仪器 (TI) 经典 C2000 控制模块。它包括模数转换器 (ADC)、模拟比较器、缓冲数模转换器、增强型脉宽调制器 (EPWM)、增强型捕捉、增强型正交编码器脉冲、快速串行接口、Σ-Δ 滤波器模块和纵横制。有关这些模块的详情请参阅 AM263x 技术参考手册。可以使用直观的系统配置工具 SYSCONFIG 来配置这些模块,从而减少对详细实施情况的关注。AM263x 软件开发套件 (SDK) 提供了 SYSCONFIG 工具的详细信息。模块同步的关键是在 EPWM 时基部分中配置 PWM 同步输入/输出,在 EPWM 事件触发部分中配置 ADC 转换开始 (SOC) 触发。时基用于对齐多个 PWM 通道,而事件触发用于同步 ADC、DMA 和中断等特性。牵引逆变器演示的 CCS 工程文件夹中有一个牵引逆变器示例。本例中设置了一个 PWM 通道,通过 DMA 和 DAC 以更高的频率触发旋转变压器激励信号更新,还使用三个 PWM 通道生成逆变器信号和 ADC SOC。这样,来自 DAC 的旋转变压器激励信号将对齐到所需的 ADC 采样相位。由于多个 ADC 器件可以共享同一个 SOC,因此可以在多个 ADC 器件中同时采集多个样本。在一个 ADC 器件中,可以在 SOC 配置部分中配置采样序列,并在 INT 配置中设置 ADC 中断。中断可以在一个 ADC 转换开始或结束时触发。有关 PWM 和 ADC 的部分简单示例可在 AM263x SDK 的 \examples\drivers\epwm 和 \examples\drivers\adc 下找到。有关 API 的更多详情,可在 AM263x SDK 的 \source\drivers 下找到。头文件的更多细节都在注释中。
AM263x 控制卡评估模块 (EVM) 是一款适用于德州仪器 (TI) Sitara™ AM263x 系列微控制器 (MCU) 的评估和开发板。此 EVM 具有用于编程和调试的板载仿真功能以及用于简化用户界面的按钮和 LED,可让您在 AM263x MCU 上轻松开始开发。控制卡还支持通过接头引脚访问关键信号,方法是使用高速边缘连接器 (HSEC),该连接器可以直接插入到 TIDM-02014 主控制板上。
牵引框架包括图 2-1 中突出显示的资源,并内置到图 2-2 中的牵引系统。TIDM-02014 是牵引逆变器参考设计硬件。它包括功率级、栅极驱动器、电流和电压采样、旋转变压器模拟前端、控制系统电源树和连接接口。电机包括接受正弦波激励并发送调制反馈、以检测位置的旋转变压器。场定向控制使用集群 0 内核 0 实现。ADC INT1 的实时控制部分将分配给 TCM,以精准确定执行时间。
如图 2-3 所示设置牵引系统后,TIDM-02014 参考设计需要设置软件环境才能运行该系统。为此,我们使用了 Code Composer Studio (CCS) 作为集成开发环境。
第一步,请下载并安装建议用于该工程的 CCS 版本 12.2.0 或更高版本。CCS 用户指南 提供了有关 CCS 安装和使用的更多详细信息。
虽然严格意义上没有必要建立实时调试接口,但是在调试任何使用 MCU 的功率转换应用时,建立一个实时调试接口有很多帮助。对于 AM263x,通过 CCS 与 AM263x 之间的 UART 连接启用实时调试。AM263x 控制卡的用户界面如图 3-1 所示。有关硬件连接的详细信息,请参阅 AM263x 控制卡用户指南。控制卡在一个 USB Micro-B 连接器中同时提供 JTAG 和 UART 调试端口。有关为调试端口创建目标配置文件的详细说明,请参阅应用手册适用于牵引逆变器的 AM263x。由于本应用手册还详细介绍了如何配置控制外设、中断和驱动程序接口,因此我们在此不再重复这些部分。
要将 TIDM-02014 的软件工程导入 CCS,请点击“Project”→“Import CCS Projects”,然后浏览至 TractionDemo_am263x-cc-rev2_r5fss0-0_nortos_ti-arm-clang2 文件夹并点击“Select Folder”。选择名为 TractionDemo_am263x-cc-rev2_r5fss0-0_nortos_ti-arm-clang2 的工程,然后点击“Finish”。现在,该工程显示在 CCS 的 Project Explorer 窗格中。用户指南提供了有关将工程导入 CCS 的更多详细信息。
libraries/foc 文件夹包含典型的 FOC 模块,包括 Park 和 Clarke 变换、PID 函数和估算器。这些模块独立于特定器件和电路板。
Motor 文件夹包含电机驱动控制文件,这些文件在中断服务例程和后台任务中调用电机控制核心算法函数。用户可以添加自己的用于系统控制、通信等功能的代码。这些模块专用于此参考设计工程,但与器件和电路板无关。
特定于电路板、特定于电机和特定于器件的文件位于根文件夹和 Motor 文件夹中。这些文件包含特定于器件的驱动程序,用于运行设计。如果要将工程迁移到您自己的电路板或其他器件,只需根据器件或电路板的引脚分配和功能更改 trinv.syscfg、Motor_param.h 和 Resolver_param.h 文件。
图 3-15 中显示了工程的总体结构。器件外设配置基于 AM263x Driverlib,部分使用 SysConfig 生成,使代码可跨硬件和器件移植。要将参考设计软件移植到不同的电路板或器件,用户只需更改 trinv_hal.c、trinv_hal.syscfg 和 trinv_hal.h 文件以及 trinv_settings.h 中的参数。
??? 图展示了固件的工程软件流程图,其中包括一个用于实时电机控制的 ISR、一个允许用户通过调试窗口更新电机控制参数的主循环。ISR 由 ADC 转换结束 (EOC) 触发。在主 ISR 中运行的函数在 trinv.h 头文件中定义。此外,在该设计中,通过旋转变压器接口来检测准确的电机位置。读取解析器信号的 ADC 值并执行相应位置、速度计算的函数在作为独立处理内核的控制律加速器 (CLA) 中运行。该函数在 trinv_cla_tasks_cpu1.cla 文件中定义。
对于 AM263x,通过 CCS 与 AM263x 之间的 UART 连接启用实时调试。通过实时调试,全局变量可以添加到表达式窗口,并可在程序持续运行期间读取/写入。通过所列文件中的调试程序建立连接。
虽然这里列出了四个文件,但应用程序只需要两个函数。一个是初始化中调用的“SerialCmd_init()”,另一个是 BareMetal 后台循环或 RTOS 低优先级任务中调用的“SerialCmd_read()”。此部分重点介绍如何创建 UART 连接和如何在 CCS 中启动实时调试。
AM263x controlCARD 在一个 USB 端口中提供 JTAG 和 UART 端口。有关硬件连接的详细信息,请参阅 AM263x 控制卡用户指南。控制卡在一个 USB Micro-B 连接器中同时提供 JTAG 和 UART 调试端口。必须为调试端口创建目标配置文件。图 3-3 至图 3-10 以屏幕截图形式提供分步指南。简而言之,创建一个目标配置文件,然后为其配置 JTAG 和 UART。图 3-10 中的 UART COM 端口需要与 JTAG 探头应用/用户 UART 的 PC 设备管理器 COM 端口匹配。图 3-10 中的波特率需要与下一步中配置的 SoC UART 波特率一致。
使用 UART0 作为调试接口的方法有多种,分别是调试日志和串行命令监视器。调试日志是一个内置工具,位于 SDK 的驱动程序移植层。正如串行命令监视器,它的函数必须在中断回调之外。它是一个实现字符串输入和输出的方便工具。但是,输入和输出只通过 UART 控制台。CCS 中没有表达式窗口和图形之类的内置 GUI。建议在图 3-11 所示的“Debug Log”中禁用 UART0,并为图 3-12 所示的串行命令监视器配置 UART0 实例。Sysconfig 中的 UART 名称“CONFIG_UART_CONSOLE”与“Serial_Cmd_HAL.c”中的 handle 名称匹配,因此不必修改初始化和后台循环所需的两个函数。它们可以如图 3-14 所示直接插入。
在构建程序之后,调试窗口应该会打开,其中包含在节 3.2.2中创建的目标配置文件。如果创建的目标配置文件尚未打开,可以按照图 3-14 并查看“Target Configuration”窗口的“User Defined”文件夹找到它。创建的目标配置文件应该在“User Defined”文件夹下。右键点击该文件后,显示一个菜单,里面有一个“Launch Selected Configuration”选项,如图 3-15 所示。然后,调试窗口将显示。在许多 CCS 教程中可以找到连接目标、加载映像和通过 JTAG 运行的步骤。在连接到 UART 之前,处理器必须连续运行。由于 UART 连接以程序的连续运行为基础,停止串行命令监视器程序运行的断点、暂停、终止或任何其他事件将打断 UART 连接并冻结 CCS。有时,习惯在这些特性可用时使用它们。建立在使用 UART 连接时断开与目标的 JTAG 连接,如图 3-16 所示。当处理器运行时,可直接选择 UART 连接 → Run → Load → Load Symbols,建立 UART 连接,如图 3-17 所示。
电机控制软件可以针对不同的测试模式进行配置,以实现增量软件测试。例如,如果既未定义 CLOSED_CURRENT_LOOP 符号,也未定义 CLOSED_SPEED_LOOP 符号,则 Vd 和 Vq 基准值直接被设置为默认测试值。该模式可用于测试 PWM 设置和开环逆变器运行。同样,如果仅定义 CLOSED_CURRENT_LOOP,而不定义 CLOSED_SPEED_LOOP,则可以直接设置 id、iq 基准。在这种情况下,可以通过设置斜坡发生器频率来设置电机转速。trinv_setting.h 文件中提供了用户电机类型和相应的参数。可以通过更改 USER_MOTOR 宏的值来更改默认设置。如果用户打算使用预定义电机列表之外的电机,则用户可以复制使用的模板。