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.

[参考译文] CCS/LAUNCHXL-F28377S:旋转编码器给出的值错误

Guru**** 2538960 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/609091/ccs-launchxl-f28377s-rotary-encoder-given-wrong-value

器件型号:LAUNCHXL-F28377S

工具/软件:Code Composer Studio

您好!

我 通过 QEP_A 引脚将1024 PPR 旋转编码器与 LAUNCHXL-F28377S 搭配使用。 我还使用串行通信端口将其发送到计算机以绘制速度 x 时间图。 问题是当电机的转速约为750rpm 时、值会出现错误。 请参见照片波纹低。

//来自 Example_posspeed.h

的部分代码#define POSSPEED_DEFAULTS{0x0、0x0、0x0、0x0、0x0、16382、2、0、0x0、\
50、0、000、0、\
0、0、0、\
(void (*)(long)) POSSPEED_Init、\
(void (*)(long))POSISPEED_CALC }

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

//Part from example_posspeed.c

void POSSPEED_Init (void)
{
EQep1Regs.QUPRD = 2000000; //频率为200MHz 时频率为100Hz 的单位定时器
// SYSCLKOUT
EQep1Regs.QDECCTL.bit.QSRC = 00; // QEP 正交计数模式
EQep1Regs.QEPCTL.bit.free_soft = 2;
EQep1Regs.QEPCTL.bit.PCRM = 00; // PCRM=00模式- QPOSCNT 复位打开
//索引事件
EQep1Regs.QEPCTL.bit.UTE = 1; //设备超时启用
EQep1Regs.QEPCTL.bit.QCLM = 1; //锁存装置超时
EQep1Regs.QPOSMAX = 0xffffffff;
EQep1Regs.QEPCTL.bit.QPEN = 1; // QEP 使能
EQep1Regs.QCAPCTL.bit.UPP=3; //
EQep1Regs.QCAPCTL.bit.CCPS = 6; //
EQep1Regs.QCAPCTL.bit.CEN = 1; // QEP 捕捉启用
}

是否有人知道如何解决这个问题?

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

    代码看起来正常工作、速度测量值正确、但上述特定条件除外。
    您可以通过检查一些东西来查看 QEP 操作是否符合预期。

    -您是否注意到 QEP 中设置了任何错误标志?
    -您能否监测 A/B/I 输入并检查是否有噪音?
    您检查过吗?

    此外、误差是可重复的、并导致相同的值吗?

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

    查看速度与时间关系图、问题看起来与 QEP 不相关。 速度变化的谐波性质更像是控制问题、而不是测量误差。 您是否在超过700 rpm 的电机轴运动中看到实际的物理干扰?

    再加上 Bharathi 的问题、您是否使用 IQmath?如果使用 IQmath、您的 global_Q 设置是什么?

    此致、

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

    Bharathi 和 Richard、大家好、

    感谢您的回复、我使用 freqcal 示例检查每个脉冲频率、当编码器的通道 B 达到约750 rpm 时、似乎有问题。 现在我知道这不是代码问题。
    感谢您的关注。

    Ryan