MCX A346 上的双 PMSM FOC
本应用笔记介绍了如何在恩智浦 MCXA346 MCU 上实现无传感器双电机 FOC。有关该软件的完整使用说明,请参阅AN14717。 本应用笔记主要介绍单并联 PMSM FOC 的原理,以及使用恩智浦开发套件的硬件和软件实现,包括详细的外设设置、驱动程序说明和 FreeMASTER 操作指南。
主板:FRDM-MCXA346
类别:电机控制
外设:ADC、PWM
工具链:MCUXpresso IDE
1.软件
- 下载并安装MCUXpresso IDE V25.03 或更高版本。
- 下载并安装最新版本的FreeMASTER (3.2.2.2)。
- 从 Git 存储库 an-mc-pmsm-dual-mcxa346 下载代码。
- 适用于 Visual Studio Code 的 MCUXpresso:此示例支持适用于 Visual Studio Code 的 MCUXpresso,有关如何使用 Visual Studio Code 的更多信息,请参阅此处。
2.硬件
- FRDM-MCXA346 开发板。
- 2 个FRDM-MC-LVPMSM。
- 2 台LINIX 45ZWN24 电机。
- 个人电脑
- USB type-C 电缆和 24V 适配器。
3. 设置
3.1 导入项目
3.1.A 从应用程序代码中心导入项目
- 打开 MCUXpresso IDE,在快速启动面板中,选择从应用程序代码中心导入
- 通过直接搜索名称或者选择感兴趣的标签找到您需要的demo,打开项目,点击GitHub链接,然后下一步。
- 选择主分支,然后单击下一步。
- 在“目标”->“目录: ”窗口中选择 repo 的本地路径。MCUXpresso IDE 会将 repo 克隆到您选择的路径,克隆过程完成后,单击“下一步” 。
- 在项目导入向导窗口中选择“导入现有的 Eclipse 项目”,然后选择“下一步”。
- 选择此 repo 中的项目(此 repo 中只有一个项目),然后完成。
3.1.B 将 git repo clone 到本地路径后导入项目
- 从GitHub克隆 repo an-mc-pmsm-dual-mcxa346。打开 MCUXpresso IDE,在快速启动面板中,选择从文件系统导入项目。
- 在“项目目录(解压后)”项中选择仓库的本地路径,然后点击“下一步” 。如果你从 GitHub 下载了压缩包,请在“项目存档(zip)”**项中选择包的本地路径。
- 选择此 repo 中的项目(在“项目:”窗口中显示,此 repo 中只有一个项目),然后完成。如果您单击“选项”项中的“将项目复制到工作区”,则项目将粘贴到您的 IDE 工作区,您所做的更改将保存在工作区的副本中。
3.1.2 然后您将在Project Explorer窗口中看到该项目。
3.2 编译项目
该项目包含 3 个配置,Debug、Release和Releasesramx。ReleaseSRAMX配置具有独立的链接脚本,用于在 SRAMX 中分配频繁调用的代码以提高性能。在Project * Explorer窗口中右键单击*项目名称,然后选择Properties打开属性窗口。打开Manage Configurations,选择要使用的配置,然后Set Active。预处理器中定义的 符号RTCESLMAUON用于控制 MAU 功能。如果定义了RTCESLMAUON且等于 1,则PARK 变换中使用的sin和cos函数以及 BEMF 观测器中使用的atan函数将由 MAU 计算。 使用工具栏中的 build 按钮编译项目。
3.3 硬件设置
3.3.1 连接电机和电源屏蔽板。
将第一台电机(M1)的三相线按照相序(白色宽线-A相;蓝色宽线-B相;绿色宽线-C相)连接到第一台FRDM-MC-LVPMSM上的J7连接器。对第二台电机(M2)和第二台FRDM-MC-LVPMSM重复相同步骤。
3.3.2A 将电机套件与转接板组合。
将第一块 FRDM-MC-LVPMSM开发板连接到NXP 双电机适配器板的J1M1~J4M1 Arduino 接口。将第二块 FRDM-MC-LVPMSM开发板连接到适配器板的J1M2~J4M2 Arduino 接口。FRDM -MCXA346开发板连接到适配器板底部的J1FRDM1~J4FRDM1 Arduino 接口。适配器的 GERBER 文件和原理图位于路径“an-mc-pmsm-dual-mcxa346dualmotoradapter_board”。
3.3.2B 将电机套件与飞线组合在一起。
将第一块 FRDM-MC-LVPMSM开发板连接到FRDM-MCXA346开发板的J1~J4 arduino 接口。将第二块 FRDM-MC-LVPMSM开发板按照以下规则连接到第一块 FRDM-MC-LVPMSM开发板:
| M1 | z | M2 | 功能 | | M1 | z | M2 | 功能 |
| :------ | :---: | :------ | :--------: | :-: | :------ | :---: | :------ | :----------: |
| J2-11 | --> | J2-1 | 电流 | | J1-7 | --> | J3-15 | PWMAT |
| J2-13 | --> | J2-3 | 抑制 | | J1-5 | --> | J3-13 | PWMAB |
| J2-15 | --> | J2-5 | 电流 | | J1-11 | --> | J3-11 | PWMBT |
| J2-17 | --> | J2-7 | 电压总线 | | J1-9 | --> | J3-9 | PWMBB |
| J2-19 | --> | J2-9 | 当前总线 | | J1-15 | --> | J3-7 | PWM_CT |
| J3-14 | --> | J3-14 | 接地 | | J1-13 | --> | J3-5 | 脉宽调制CB |
| J3-4 | --> | J3-4 | P3V3 | | | | | |
3.3.3
使用24V 适配器为 FRDM-MC-LVPMSM 开发板供电。使用 USB 数据线通过J15
接口 连接到 FRDM 开发板。编译完成后,使用工具栏中的调试按钮下载代码。根据板载调试器中的固件,在“Debug As”中选择CMSIS-DAP或J-Link 。
3.4 运行演示
按下FRDM-MCXA346上的SW3 键可控制电机 M1运行或停止,按下 SW3 键可控制电机 M2运行或停止。或者使用 FreeMASTER 工程“pmsmfloat.pmpx”控制电机,该工程位于包路径“an-mc-pmsm-dual-mcxa346motorcontrolfreemaster”下,用于控制电机、改变转子转速以及查看转速或其他值。 “pmsmfloatrelease.pmpx”用于Release配置。“pmsmfloatreleasesramx.pmpx”用于Releasesramx配置。
4.结果
以下是演示的CPU负载性能(未启用MAU):
| | 调试 - 配置 | 发布 - 配置 | Release_sramx - 配置 |
| :---------------------- | :------------------: | :------------------: | :--------------------: |
| 快速循环间隔 | 62.5微秒(16千赫) | 62.5微秒(16千赫) | 62.5微秒(16千赫) |
| M1 的快速循环处理时间 | 13.0微秒 | 13.2微秒 | 7.5微秒 |
| M1 的快速循环加载 | 20.7% | 21.1% | 12.0% |
| M2 的快速循环处理时间 | 12.9微秒 | 13.2微秒 | 7.5微秒 |
| M2 的快速循环加载 | 20.7% | 21.1% | 12.0% |
| 慢循环间隔 | 1毫秒(1千赫) | 1毫秒(1千赫) | 1毫秒(1千赫) |
| M1 的慢循环处理时间 | 1.7微秒 | 1.7微秒 | 1.1微秒 |
| M1 的慢循环加载 | 0.17% | 0.17% | 0.11% |
| M2 的慢循环处理时间 | 1.7微秒 | 1.7微秒 | 1.1微秒 |
| M2 的慢循环加载 | 0.17% | 0.17% | 0.11% |
| CPU 总负载 | 41.7% | 42.6% | 24.3% |
以下是演示的 CPU 负载性能(启用 MAU):
| | 调试 - 配置 | 发布 - 配置 | Release_sramx - 配置 |
| :---------------------- | :------------------: | :------------------: | :--------------------: |
| 快速循环间隔 | 62.5微秒(16千赫) | 62.5微秒(16千赫) | 62.5微秒(16千赫) |
| M1 的快速循环处理时间 | 11.0微秒 | 11.2微秒 | 6.5微秒 |
| M1 的快速循环加载 | 17.7% | 17.7% | 10.4% |
| M2 的快速循环处理时间 | 10.8微秒 | 11.1微秒 | 6.5微秒 |
| M2 的快速循环加载 | 17.3% | 17.8% | 10.4% |
| 慢循环间隔 | 1毫秒(1千赫) | 1毫秒(1千赫) | 1毫秒(1千赫) |
| M1 的慢循环处理时间 | 1.8微秒 | 1.6微秒 | 1.1微秒 |
| M1 的慢循环加载 | 0.18% | 0.16% | 0.11% |
| M2 的慢循环处理时间 | 1.8微秒 | 1.7微秒 | 1.1微秒 |
| M2 的慢循环加载 | 0.18% | 0.17% | 0.11% |
| CPU 总负载 | 35.3% | 35.8% | 21.0% |
5. 常见问题
如果适用,请在此处添加常见问题解答。如果没有,请删除此部分。
6. 支持
在此提供帮助的 URL。
项目元数据
来源:恩智浦appcodehub
1009
