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.

[参考译文] C2000来驱动2个 BLDC 电机

Guru**** 2042910 points
Other Parts Discussed in Thread: MOTORWARE, C2000WARE, C2000WARE-MOTORCONTROL-SDK
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1041421/c2000-to-drive-2-bldc-motors

主题中讨论的其他器件:MOTORWAREC2000WAREC2000WARE-MOTORCONTROL-SDK

我在数据表中看到、对于某些基于 C2000的 TMS 系列 MCU、它具有14个 PWM 通道、每个通道具有16位计时器。

我们正在考虑将此处理器系列用于大规模生产。

我们希望使用 FOC (磁场定向控制)技术来驱动2个不同的 BLDC 电机。

该处理器提供14个 PWM 通道、在本例中、12个通道(每个引擎6个通道)足以满足我们的需求。

然而、这些串行处理器的特性之一 InstaspIN-FOC 是否支持在软件中同时驱动2个电机?

同时驱动2个 BLDC 电机需要软件支持。

提前感谢您的回复。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    是的、某些启用了 InstaSPIN-FOC 的 C2000控制器可以同时驱动两个 BLDC/PMSM、例如 F2806xF/M、F2804xC。

    您可能会在 motorWare 中找到使用 F28069F 和 InstaSPIN-FOC 进行双电机控制的 lab10d。

    http://www.ti.com/tool/c2000ware

    Lab10d 位于文件夹:C:\ti\motorware\motorware_1_01_00_18\sw\solutions\instaspin_foc\boards\boostxldrv8305_revA\f28x\f2806xF\projects\ccs\proj_lab10d

    和 Lab_is11、用于通过 MotorControlSDK 中的 F280049C 和 InstaSPIN-FOC 进行双电机控制。

    http://www.ti.com/tool/c2000ware-motorcontrol-sdk

    文件夹中的 is11_DUAL_MOTOR_eabi:C:\ti\c2000Ware_MotorControl_SDK_3_03_00_00\solutions\boostxl_drv8320rs\f28004x\ccs\sensorless_focc

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    首先、感谢您的回答。

    F28052是否足以满足此要求?

    显示14个 PWM 通道。

    再次感谢你。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    是的、也可以。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我想提供更多信息;

    对于使用编码器的位置控制 FOC 配置、该编码器通过 SPI 提供数字角;我想咨询。

    再次感谢。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我们没有带 SPI 接口的编码器的参考代码。 但您可以参阅最新 MotorControlSDK 中的通用电机控制实验室、该实验室可支持同时运行基于 FAST 的无传感器 InstaSPIN-FOC 和基于增量编码器的含传感器 FOC 的 PMSM/BLDC。 有关该实验的详细介绍,请参阅以下链接中的实验用户指南。

    C2000WARE-MOTORCONTROL-SDK: https://www.ti.com/tool/C2000WARE-MOTORCONTROL-SDK

    Universal Project and Lab User's Guide (通用项目和实验室用户指南): https://www.ti.com/lit/ug/spruj26/spruj26.pdf

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    感谢您的回答。

    它可能不是直接 SPI 绝对传感器的示例。 没问题。 但是、如果我们有来自 SPI 传感器的角值、例如180π、即57.2958度、那么是否没有 API 像 STM32系列那样直接将其引入电机 SDK?

    STM32的示例代码;
    //转子机械角度
    mecAngle =(int16_t)(57.2958/360) 65536)

    如果有的话,这对我们来说是个好消息。

    问题正是这一点;当系统首次打开时、我们已经知道了位置角值、而根本不会移动转子。 (在本示例中为57.2958度)因此、当系统首次通电时、不应进行对准。 转子不应出于对齐目的移动、相反、它应锁定在已知角度位置。

    系统应获得57.2958度的值、并且应能够使用 MOTION (new_position, time)等代码将其移动到所需位置。

    e.g;运动(65度、0.5秒);

    如果没有初始对准、是否可以通过将电机加电到该位置来保存当前位置并锁定当前位置?

    谢谢。。。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您可以看看上面推荐的示例、该示例具有满足您要求的函数、并将信号从编码器转换为转子角度。

    F28004x 是一款浮点控制器、可轻松实现您提到的代码。

    [引用 userid="500343" URL"~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1041421/c2000-to-drive-2-bldc-motors/3852890 #3852890"]如果没有初始对齐,是否可以通过在该位置为电机加电来保存当前位置并锁定当前位置?

    这取决于编码器或控制器是否已断电。 是的、您可以保存转子位置并将其保持在当前位置。