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.

[参考译文] TMS570LS1227:eQEP 周期寄存器有问题

Guru**** 2943400 points

Other Parts Discussed in Thread: HALCOGEN

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1013360/tms570ls1227-having-problems-with-the-eqep-period-register

器件型号:TMS570LS1227
主题中讨论的其他器件:HALCOGEN

我让 eQEP 在电机控制器应用的正交时钟模式下运行。 位置计数器和方向解码器工作正常、但我很难从 QUPRD 寄存器中获得用于速度计算的合理值。

我正在轮询捕获溢出标志(COEF)、我可以看到溢出的发生、我认为这是导致问题的原因、因此我相当确定这是由我 初始化捕获寄存器的方式引起的、但我不确定原因。

在 HALCoGen 中、有一个名为"example_eqepEdgeCapture"的示例、是否还有一个寄存器设置应该是什么的示例?

我的当前设置为:

- VCLK4设置为90MHz。

-编码器的典型频率为50Hz。

TIA

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

    50Hz 应该正常。 最大输入频率为 VCLK4/2=45MHz。

    eQEP 是否使用 HALCOgen GUI 进行配置? HALCOGen 有一个示例: example_eqepEdgeCapture

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

    王杰、大家好、谢谢你的回答。

    是的、这是我使用的示例(见下面)。 然而、QCPRD 中的值不正确、这 就是我认为 eQEP 寄存器初始化导致这种情况的原因。 理想情况下、如果 eQEPinit 例程或实际 HALCoGen 文件可用、这将有所帮助。

    if ((eqepREG1->QEPSTS & 0x80U)!=0U)

              {

                    /*单位位置事件之间经过的时间*/

                    deltaT = eqepREG1->QCPRD

                    /*从 deltaT 计算速度以及单位位置的值。 *

             速度=(float)(unit_position_X/deltaT);

                    /*清除状态标志。 *

                    eqepREG1->QEPSTS |= 0x80U;

              }