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.

[参考译文] LAUNCHXL-F280049C:用于 FOC 应用的 Launchpad

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1128302/launchxl-f280049c-launchpad-for-foc-application

器件型号:LAUNCHXL-F280049C
主题中讨论的其他器件: TMS320F28377SC2000WARETMDXIDDK379D

大家好、

我们的客户正在寻找 LaunchPad 来实现混合步进电机的场定向控制。 根据我们的客户、控制周期必须非常快、小于50微秒。 电机驱动器为 POWERSTEP01、适用于步进电机控制。  

他需要 Launchpad 来 实现以下功能:

1.通过 eQEP 模块读取电机位置。

2.将电机位置转换为电气位置

3.生成一些脉冲以控制电机。

 LAUNCHXL-F280049C 似乎适合他的应用。 请确认吗?  

此致、

Danilo

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

    大家好、

    我们收到了客户发来的另一封电子邮件。

    使用 TMS320F28377S LaunchPad 作为控制器、与驱动板 EVPOWERStep01连接、以控制两相混合步进电机。 驱动板 EVPOWERStep01在 步进时钟 模式下工作、这意味着电机在每个步进时钟上升沿上移动一个微步进。 实际上、步进电机将成为具有与电机步进角相关的极对数的 PMSM 电机。

    目标:使用磁场定向控制(FOC)来保持负载角 PI/2、以便步进电机输出恒定转矩。 扭矩将与电流振幅成正比。

    因此、TMS320F28377S 应实现以下任务:

    1. 测量转子角度、使用 eQEP 模块、绝对转子位置将从寄存器 EQep1Regs.QPOSCNT 中读取  
    2. 将转子角度转换为电气坐标、标记为 RP
    3. 通过 EVPOWERStep01中标记为 CP 的 SPI 命令读取实际电流位置
    4. 负载角应始终为 PI/2、以微步长表示、标记为 LA。
    5. 计算递增或递减的电流位置 ST=LA+RP-CP
    6. 生成相应的电脉冲、参见 ST、使用 ePWM 模块。

     

    问题

    1. FOC 周期应小于50微秒。 TMS320F28377S LaunchPad 是否 适合此任务?
    2. ePWM 模块基于时间、已配置为根据频率生成占空比为50%的连续 PWM 信号。  EPWM 模块如何生成一定数量的 PWM 脉冲、从而驱动步进电机旋转特定的微步进?  现在我使用系统函数  delay_US(A), 当 CPU 运行此代码时,ePWM 时钟也会运行,找到延迟时间 A 与 PWM 数( A=Amount *500000/f_PWM)之间的关系 ,然后可以生成特定的 PWM 脉冲。   还有其他方法吗?

    此致、

    Danilo

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [~ userid="432284" URL" URL"μ C/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forume/1128302/launchxl-f280049c-launchpad-for-foc-application/4186234#4186234]FOC 周期应小于50微秒。 TMS320F28377S LaunchPad 是否 适合此任务?[/引述]

    这取决于 FOC 子例程的代码数量。  TMS320F28377S 是200MHz CPU、对于具有 FOC 的步进电机而言、它应该足够多。  

    [引用 userid="432284" URL"~μ C/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forume/1128302/launchxl-f280049c-launchpad-for-foc-application/4186234#4186234"]是否有其他方法?

    它们可以使用 ePWM ISR 作为计时器来计算延迟并执行换向。 他们可以找到有关如何在 C2000Ware 中配置 EPWM 及其 ISR 的示例。

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

    您好、Yanming、

    请参阅以下客户的回复。

    感谢您的支持。
    我有一些新问题。
     
    对于 ePWM ISR、 有两个问题:
     
    作为您的回复、我可以使用 ePWM ISR 作为计时器来计算延迟。
     
    哪个 代码被视为中断的进入?  在我的程序中、应首先执行一些代码、然后生成一些 EPWM 信号、然后重复控制循环。 在 C2000示例代码中、"main 函数"中只有一个"空闲循环"。 可以删除"空闲循环"、执行的函数位于中断函数中。  
     
    是否有方法或代码可以控制 PWM 信号何时输出以及何时不输出?
    我进行一些测试、我发现只要 CPU 时钟运行、ePWM 信号就会生成、以便它们与 其他代码成正比。   
     
     对于"eQEP_pos_speed.c"、请在 F2837xS 中检查项目"eQEP_pos_speed_cpu01"
     
    我无法理解以下代码:
    根据 我所说的 theta_mech = QPOSCNT/mech_scalt 说明。  
    在代码中、 mech_Scaled 定义为0.999/4000、因此 除法 更改为 乘法 吧?
     
     由于 pos16val 的数据类型   unsigned int (uint16)、 所以 theta_raw  是否始终是一个位置交互器?
     以及 tmp 的计算、  
    这行代码的作用是什么?  tmp  &=  0x03FFF000;如果 tmp<4096、结果始终为0
    此外、我还可以理解这两行。  
      p->theta_mech =(int)(Tmp>>11);        
      p->theta_mech &= 0x7FFF;
    此致、
    Danilo
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您可以通过 以下链接下载并安装适用于 C2000 MCU 的 MotorControl 软件开发套件(SDK)。

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

    您可以找到 controlCARD-F28004x/002x +用于高电压三相 PMSM 驱动器的 IDDK 示例项目。 客户可以参考此示例来设计自己的步进电机算法。

    C:\ti\c2000\C2000Ware_MotorControl_SDK_ \solutions\tmdxiddk379d\f28004x

    C:\ti\c2000\C2000Ware_MotorControl_SDK_ \solutions\tmdxiddk379d\docs

    [~ userid="432284" URL" url="μ C/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forume/1128302/launchxl-f280049c-launchpad-for-foc-application/4192770#4192770"]这行代码的作用是什么?  tmp  &=  0x03FFF000;如果 tmp<4096、结果始终为0[/报价]

    代码使用 IQ 格式和 PU 方法将 QEP 的数据转换为位置。  您可能需要查看以下链接以了解_IQmath 和_IQ 格式。

    C28x IQmath 库 (https://www.ti.com/lit/sw/sprc990/sprc990.pdf)

    如果您没有机会查看研讨会材料、我认为这将有助于揭秘一些术语和架构。

    https://training.ti.com/c2000-motorcontrol-training-series

    https://training.ti.com/introduction-motors-motor-control-part-1-introduction