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-F28P65X: eQEP模块低速测量产生巨大速度脉冲

Part Number: LAUNCHXL-F28P65X
Other Parts Discussed in Thread: C2000WARE

Dear TI Expert:

eQEP模块低速测量产生巨大速度脉冲,具体描述如下:

编码器分辨率4*ENCODER_SLOTS=4 * 2048,eQEP外设时钟200MHz,eQEP module edge-capture unit配置如下:

EQEP_setCaptureConfig(myEQEP1_BASE,EQEP_CAPTURE_CLK_DIV_32,EQEP_UNIT_POS_EVNT_DIV_1);
测量1RPM转速时,过几分钟会出现巨大的速度脉冲,有时候会达到几千RPM,CapTimeCount = EQEP_getCapturePeriodLatch(EQEP1_BASE),
检测到到UPEVENT发生时的锁存值CapTimeCount为几十,对应的时间不足1us,所以此时速度有巨大脉冲,经过排查,产生UPEVENT前后的POSCNT位置计数值相差为1。正常来说,转速1RMP,
发生一次UPEVENT,来说这个值一般为有几十ms,而实际偶尔会出现UPEVENT发生时的锁存值CapTimeCount为几十(对应的时间不足1us)的情况,
经过调整EQEP_UNIT_POS_EVNT分频数,将其分频数增大,或者调整EQEP_CAPTURE_CLK_DIV分频数将其分频数增大,
或者同时增大EQEP_UNIT_POS_EVNT分频数和EQEP_CAPTURE_CLK_DIV分频数,依旧会出现巨大的速度脉冲,虽然出现巨大的速度脉冲的频率有所降低。
请告诉我:出现这种情况巨大的速度脉冲的原因是什么?为什么UPVENT会在不足1us的时候产生一次?
  • 您好

    是不是指 SDK 示例? 如果是、您要捕获的信号的频率是多少? 您尝试捕获的最小/最大 rpm 是多少? 您是否曾尝试过我们的 SDK 示例之一?

  • 不好意思,手机回复了两次,一直发送失败。现在用电脑回复一下,此时用的是自己的代码,原因是自己的代码有问题,感谢阁下的答复和回应~

  • 您好

    您是否看到 eQEP 示例有问题? 根据所需的最小 RPM、将设置单位计时器周期。 假设您有一个1000线编码器、eQEP 时钟运行频率为120MHz、并且最大 rpm 为150rpm。 假设您需要1%的精度、即测量1.5 rpm 时所需的最小转速。 为了实现这一点、QUPRD 必须设置为值120,000,000。 如果有100Mhz eQEP、相同的编码器和 rpm 测量、则 QUALPRD 单元计时器输出必须为1,000,000。 该值等于100Hz 或1ms。

    为什么UPVENT会在不足1us的时候产生一次?
  • 您这个是M法测速时的eQEP_ISR中断发生一次所对应的时间吧,在EQEP_enableUnitTimer(uint32_t base, uint32_t period)设置第二个参数,speed=ΔX/T,对应的是T,是个固定值。UPEVENT的这个是T法测速用的,speed=X/ΔT,统计的是ΔT,不是固定的值。

    另外,M法的精确测量转速,speed=ΔX/T中的这个T肯定是越大测得的值越准吗,但是太大了实时性就不好,而且这个ΔX也需要尽可能大,测量的转速也就越精确,如果转速越低,测量的转速的精度也不高。我在低速时用的是T法测速,不是M法测速,UPEVENT的设置和QUPRD的设置是无关的吧。

    然后,关于您提到的精度问题,如果测量某个转速,需要确保1%的精度,比如测量100RPM的转速,要求精度达到1%,即要能测出1RPM的转速来,是如何计算的?是通过speed=ΔX/T,其中ΔX=1,speed=1RPM来计算的T,再换算QUPRD么?

  • 您好

    比如测量100RPM的转速,要求精度达到1%,即要能测出1RPM的转速来,是如何计算的?是通过speed=ΔX/T,其中ΔX=1,speed=1RPM来计算的T,再换算QUPRD么?

    QUALPRD 根据速度测量速率进行转换。 我们在 C:\ti\c2000\C2000Ware_5_04_00_00\driverlib\f28p65x\examples\c28x\eQEP\eqep_ex2_calculation.xlsx 中找到可以用作参考的计算器。