This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
我们购买了 DRV8353RS 无刷直流电机驱动器评估模块、以促进 BLDC 电机驱动器的设计。 在尝试完成这项工作几周后、我们发现其他 EVM 在 较新设计和 /或 InstaSPIN-MOTION 支持的情况下可能更合适。 示 例包括具有 TMS320F28069M 或 DRV8301-69M-KIT 的 BOOSTXL-DRV8323RS。 您是否会推荐您认为最适合我们的要求的架构/评估模块 、该模块使用无传感器反馈控制将运行在500至10、000 RPM 之间的 BLDC 电机驱动至最大15安培、电压为14V (自动)。 电机具有非常低的 LQ/Ld
TMS320F28069M | 具有90MHz 频率、FPU、VCU、256KB 闪存、CLA、 InstaSPIN-MOTION |
David、
决定 DRV832x 和 DRV835x 之间的电压最大值是决定电压最大值、两者都能够使用 Instaspin。
DRV832x 的最大电压输入为60V、可轻松满足您的需求、DRV835x 的最大输入电压为100V。 除此之外、它们都是具有相似功能的最新一代器件。
您是否需要符合汽车标准的器件?
InstaspIN-FOC 和 InstaspIN-MOTION 都包含在用户指南中、链接如下: http://www.ti.com/lit/ug/spruhj1h/spruhj1h.pdf
调整电机的最佳方法是使用 Code Composer Studio 和 Instaspin。 器件 GUI 环境旨在让用户快速启动并运行、只需进行少量调整。 Instaspin 的螺母和螺栓需要通过上述用户指南中讨论的实验进行调整。 在 CCS 内、您可以编辑所有参数、识别电机并对其进行调优。
此致、
-Adam
尊敬的 Adam:
感谢您提供有关产品选择的信息。 此时、我们已经成功地使用 GUI 驱动电机、但我们需要使用"等式"中的几个变量来驱动程序控制下的电机。
为了进行测试、我们需要使用 BOOSTXL-DRV8353RS 改变程序控制下的电机速度。 即等效于 GUI 以驱动电机、但受程序控制。 DRV8353RS-EVM 具有一个 PCB、其中包含 DRV8353RS 栅极驱动器和 MOSFET、而另一个 F28027F"控制器" PCB 则像屏蔽层那样插入主板。 用户指南中记录的 SPI 命令位于 F28027F 栅极(速度)控制器和 DRV8353RS 栅极驱动器之间。 GUI 是否通过记录的 SPI 命令或其他协议与 F28027F 速度控制器通信? 那么、我们如何与 F28027F PCB 进行通信(可能是通过 USB 进行通信、因为没有其他连接器)?
•我们是否需要像 Arduino 这样的外部硬件、该程序与编译的 TI 模块进行通信、并调用启动、停止和调整速度、以及从模块获取电流、RPM、错误代码和任何其他相关信息的读数? 如果是、协议和命令集是什么? 这是否记录在某个位置?
•我们是否应该尝试修改 F28027F 编译模块以包含上述函数、这些函数会有效地将 GUI 驱动函数放入速度控制器代码中? 这可能不是一个好主意、因为它可能会减慢电机控制功能。
我们是否有任何代码示例可用于开发此类控制程序?
谢谢、David Cyr
尊敬的 Adam:
要回答您关于需要"符合汽车标准的器件"的问题、我们可以回答。 这是否会影响 DRV8353RS 或 TMS320F28027F 的选择。 TMS320F28027F MCU 是符合 AEC-Q100标准的汽车级 MCU、但是、根据数据表、DRV83x3RS 没有符合汽车级 AEC 标准的器件。 假设 DRV8343S-Q1EVM 或 DRV3205EVM 在功能上是等效的、我们是否会更好地符合汽车标准?
我们的目的是将 DRV8353RS 和 F28027F MCU 与 C2000生成的控制代码搭配使用、可能会根据您的建议进行修改。 但是、鉴于我们没有找到任何描述 GUI 和 F28027F 之间通信的文档、如果有一个在程序控制下驱动电机的示例、最好是在 C 或 C++中驱动电机、这将会非常有帮助。 GUI 加载控制程序后、会调用 F28027F 负载模块以启动、设置电机速度等、并从 F28027F 读取数据。 如果您可以指导我们使用描述此命令集和协议的文档或源代码模块、我们将不胜感激。
谢谢、
戴维 ·赛尔
David、
遗憾的是、我们不提供 GUI 方面的控制示例。 需要从 CCS 侧修改代码、以便为您提供所需的自定义命令和程序。
DRV8353不符合汽车标准、您需要使用 DRV8305或 DRV8343等 Q1器件。
此致、
-Adam
尊敬的 Adam:
我们从文档中得到的印象是、如果我们在 GUI 和 F82027F MCU 之间使用了命令集、C2000固件可以按原样使用(自定义 user.h)。 TI 已完成99.99%的工作来帮助我们实现目标、但似乎没有任何文档介绍通过 USB 端口连接 F82027F MCU 的接口。 如果不必要地拔出 C2000代码以对命令集进行逆向工程或重新创建已定义、调试和工作的内容、则需要大量的工作! 是否确定手册或源代码中未定义和记录此接口?
感谢你的帮助、
戴维·赛尔
David、
我可以询问这一点、但我知道这种情况不太可能、因为 EVM 从未打算轻松集成到最终产品中。 我们不是制造电机模块。 EVM 旨在作为一个示例、允许客户使用 DRV 和所需的周围 MCU/等 评估系统中的电机。
打算在最终应用中使用相同框架的客户将修改 C2000代码、因为他们无论如何都需要在其应用中执行此操作。
此致、
-Adam
为了简洁起见、我们没有解释我们将从 EVM 2板设计中剥离冗余组件、并使用应用逻辑控制器、BLDC MCU、DRVxxx 和 MOSFET 设计我们自己的单板。 但是、C2000代码具有极少的注释和如此多的源代码模块、难以理解在哪里完成。 该文档表示 C2000代码能够通过适当的定制 (user.h) 和来自 GUI 的正确输入来正确驱动 BLDC 电机。 如果情况并非如此、那么我们误解了文档。 但是、如果 C2000代码可以驱动 BLDC 电机、那么我们所需要的就是 MCU 和 GUI 之间的协议、这样我们就可以使用 C2000代码已经了解的命令将 GUI 替换为我们自己的应用逻辑控制器。 此命令集是否记录在任何位置?
David、
请给我一些时间来看看我是否可以获得这个指令集。
此致、
-Adam
尊敬的 Adam:
正如您所建议 的、我们可能会使用 DRV8305-Q1、因为它是汽车级的。 它 还具有板载 TMS320F28027F-Q1 MCU: http://www.ti.com/tool/DRV8305-Q1EVM 、因此无需插件 MCU 模块。 (4.4V 至45V、25A) 如果我们可以 让 DRV8353RS 来驱动电机、那么我们将围绕 DRV8305-Q1进行设计。 希望两个 EVM GUI 和 F28027F 之间的命令集和接口相同或非常相似。
感谢您对指令集进行此调查。 戴维·赛尔
尊敬的 Adam:
必须在某个地方提供有关该协议的文档。
了解 STMicroelectronics 提供的功能:
https://www.st.com/content/ccc/resource/technical/document/user_manual/5e/5e/d2/cb/07/35/45/a6/CD00298474.pdf/files/CD00298474.pdf/jcr:content/translations/en.CD00298474.pdf
Dave
Dave、
该 EVM 通过 USB 实现了调试探针和 JTAG。 您是否有一个可以仿真 USB 通信或处理 JTAG 的系统?
我与之讨论的人无法看到如何实现这一点。
在电路板上放置 DRV 并自行发送命令是否更简单?
此致、
-Adam
Dave、
链接的文档与 C2000团队编写并支持的 Instaspin 文档非常相似。 也许他们已经有了您所要求的东西?
最后、看起来、即使是 ST Micro 解决方案也不会围绕使用 Arduino 或类似的方法向随后旋转电机的 ST 评估板发送命令。
此致、
-Adam
尊敬的 Adam:
ST 文档中有一些调用、这些调用初始化 ESC 控制(START)、然后初始化用于驱动电机的命令(电流、扭矩或速度控制)。 TI 文档具有几乎不可能使用的低级命令。 我们需要更高级别的命令才能使用 TI 固件。
对于使用 Arduino 驱动的评估板、我们不打算使用 TI 评估板。 在我们演示 TI 固件可以正确驱动电机(使用评估板)之后、我们将从评估单元原理图开始、并删除冗余组件、 并使用串行通信来驱动电路、以与 GUI 相同的方式驱动 TI 电机驱动器。 我们计划设计一个同时包含定制 TI 电机驱动器电路和应用控制器的 PCB。 因此、需要使用高级命令集来驱动 TI 电机固件。
感谢您的帮助! Dave
"...在电路板上放置一个 DRV 并自行发送命令" 、这是个想法、但什么是高级命令集? TI C2000文档中的命令如此之低、我们将永远不会弄清楚如何使用此低级命令集。 例如、有命令用于检查旋转磁场的角度(或诸如此类的东西...) 这不是我们的想法。 TI 固件需要提供启动、运行、提高速度、加速率等高级命令 处理数学是一个非开始! 这就是我们认为 TI 固件应该关注的问题...
Dave、
我将把您的帖子转发给 C2000团队、因为他们是唯一能够提供您请求的高级命令集的人。
此致、
-Adam
InstaSPIN 解决方案并不意味着它是一个高级黑盒解决方案、您只需设置一些简单的命令即可。
如果您不愿意使用低级软件来设计自己的控制系统、则需要寻找另一种解决方案。
将帖子放入了错误的主题中。
我们的方法是通过基于基础控制算法的示例代码或设计来支持电机驱动应用、而不是详细的产品设计、因为每个产品都具有不同的控制规格。 您可能需要根据自己的要求设计控制逻辑、或者联系工程咨询公司为您详细设计。 如果您对示例代码有具体问题、请告知我们。 谢谢。
您好、Adam、这篇文章错误地发布到了错误的主题、但我确实看到您的回复、建议您去咨询公司... 但是、我仍然认为、如果 TI GUI 可以使用提供的 TI 固件来驱动电机、那么我们为什么无法使用与 GUI 相同的命令集从定制设计的应用控制软件中执行相同的操作? 我们所需要的只是与 TI 固件通信的 TI GUI 所使用的协议/命令。 为什么这么困难??? 如果固件有更好的文档记录、我们可以自行确定、但它很难加密。 如果您的客户必须在以下命令级别开发代码、那么使用 TI 固件将没有什么好处。 也可以从零开始。 至少我们会理解我们的代码!
上一帖子:
在这里、一定会有误解、因为我不能相信在数学、电气和电子工程领域拥有3个 PhD 的人需要使用 TI 的固件开发电机驱动器、该固件基于极低级别的技术来控制 BLDC 电机。
例如、InstaSPIN API 具有如下命令:
CTRL_getIab_in_pu () void CTRL_getIab_in_pu (CTRL_Handle handle、MATH_vec2 * pIab_in_pu);“从控制器获取 alpha/beta 电流输入矢量值”
或
CTRL_getVq_out_pu () inline _IQ CTRL_getVq_out_pu (CTRL_Handle handle),“从控制器获取正交电压输出值”
或
CTRL_computePhasor ()内联 void CTRL_computePhasor (const _IQ angle_pu、MATH_vec2 *pPhasor),“计算给定角度的相量”
为什么我们必须处理磁通、角度、相量和矢量、当我们只需要在指定限制范围内以可变速度驱动电机、检查错误并在故障结束时重新启动?
大多数固定参数都在用户模块中指定、因此如果有一个电机控制示例、我们可能能够针对电机驱动器进行调整。 最好是简单电机控制示例、该示例在启动电机、提高/降低速度、停止电机、检查错误等级别与 TI 电机控制固件进行交互。 然后、我们可以合理地与 TI 固件通信以控制我们的电机。 如果我们必须在上述示例命令级别重新设计控制逻辑,那么您是对的,我们就无法使用 TI 产品。
Dave
您可以查看 《InstaSPIN-FOC 和 InstaSPIN-MOTION 用户指南 》、其中对这些 API 函数和控制状态进行了非常详细的说明。
http://www.ti.com/lit/ug/spruhj1h/spruhj1h.pdf
如果您对参考实验室和代码仍有任何疑问、请告知我们。 谢谢。