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.

[参考译文] TMS320F28377S:步进电机的 PWM 周期计数

Guru**** 2459240 points
Other Parts Discussed in Thread: CONTROLSUITE

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/684516/tms320f28377s-count-pwm-cycles-for-stepper-motor

器件型号:TMS320F28377S
Thread 中讨论的其他器件:controlSUITE

您好-

我使用 F28377S 在每个位置控制中断期间将轨迹/系统配置速度转换为 PWM 频率、从而驱动步进电机。  这种方法效果相当好、但 不会以正确的步骤数结束移动(这对应用程序可能是可以的、也可能不是-还不确定)。  我想在移动过程中对 PWM 周期进行计数。  通过参考手册和论坛、我发现这是可能的。  我想在硬件中使用其中一个板载模块(eCAP、TZ、捕捉/比较系统、XBAR 等)执行此操作、 但需要一些有关如何执行此操作的指导。  我想避免使用中断来递增计数变量。

谢谢-

Mary

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

    ECAP 示例可从获得
    C:\ti\controlSUITE\device_support\F2837xS\V210\F2837xS_Examples_CPU1

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

    您好、Ramesh-

    感谢您的回答。  我将 PWM 输出信号连接到 GPIO8、并将其设置为 ECAP1的输入 XBAR (INPUT7SELECT)、现在我在 ECAP 模块中获取步进计数。

    接下来、我想在计数达到特定数字时停止软件中的 PWM。  我可以将同一 GPIO 引脚输出到 TZ1并以这种方式停止吗?

    再次感谢-

    Mary

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

    我不认为将该引脚用作 TZ 引脚是您想要做的事情。 一旦 PWM 开始、您就会跳闸 PWM。

    在多个周期后停止有点棘手、但您应该能够使用 ECAP 或 PWM 中断以及适当加载动作限定符中的影子寄存器来将 PWM 置于恒定状态。 还可以选择通过 TZFRC 寄存器使用软件强制跳闸、但关断可能会在开关周期的中间发生。 您需要评估您的应用是否可以接受。

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

    尊敬的 Mary:

    另一种选择可能是使用 eQEP 外设。  它是器件的最佳脉冲计数器。  它的主要用途是与增量编码器连接。
    (ECAP 实际上最好被视为可以测量方波-占空比/周期的东西)

    然后、可以将 eQEP 设置为在如此多的计数(您可以定义)之后生成中断。  最简单的方法是将要生成的步进量设置为 QPOSMAX 并让其成为中断。  我想您面临的主要挑战是、当您移至新序列时、使 QEP 计数与对 QPOSMAX 的任何写入保持一致。


    谢谢、
    Brett

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

    您好-

    感谢您的回答。  我已经在为编码器使用 eQEP。  编码器分辨率比步进分辨率要低得多(与传统硬件配合使用)、因此我也希望能够对步进进行计数。   

    这是我最终所做的、它运行良好。  我将 PWM 输出馈送到设置为 eCAP 的 GPIO INPUTXBAR 中。  我使用所有4个 CEVT 来对上升沿进行计数。  我将计数例程移入 CLA 并使其持续运行。  我初始化移动开始时的计数和事件、然后观察计数。  当步进在移动结束之前达到一定数量的步进时、我会将 PWM 周期从已配置的值更改为每个电机控制 ISR 1步进、直到最后步进数等于移动中的步进总数。

    为了从外部验证我的计数是否准确、我们使用了一个能够进行边沿计数的示波器。  我的方法的计数在几个距离和速度上与示波器的计数相匹配。   

    我对结果非常满意、必须要说的是、我非常喜欢这款 F28377S 处理器。

    感谢您的帮助-

    Mary