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.

[参考译文] TMS320F2800157:eQEP 计时器周期和值

Guru**** 2538930 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1358260/tms320f2800157-eqep-timer-period-and-value

器件型号:TMS320F2800157

在 eQEP 看门狗中、我发现在更改 '看门狗定时器周期' '看门狗定时器值' 在这两个值的上限都介于0到65535之间、 看门狗定时器值[ns] '未发生变化、并且在大约8.333的默认值上 这是一个错误吗? 而要得到1秒的看门狗时间、"看门狗"与"看门狗计时器"的值 看门狗定时器周期' '看门狗定时器值'

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

    尊敬的 Kaustuv:

    您是否为此使用过任何示例? 您是否使用 driverlib 函数来更新看门狗计时器周期/值?

    此致!

    马瑞安

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

    我正在从头开始构建代码、因为找不到与看门狗 eQEP 相关的示例。 我也不使用任何 diverslib 函数来更新看门狗计时器值。 由于每个模块的解释和示例都很简洁、对于新开发人员来说、很难正确学习。  

    我们正在 通过使用该看门狗和任何 GPIO 的单信号输入来在 e2e.ti.com/.../tms320f2800157-ecap---interrupt-source---counter-equals-compare-isr-source 的另一个线程中寻求解决我们的问题的解决方案。 在这里、输入信号是1Hz 的连续脉冲。

    如果在 eQEP 中的看门狗超时提高 ISR 能够解决我们的问题、那么需要进行什么配置?

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

    尊敬的 Kaustuv:

    这可能是另一线程的解决方案。 如果您使用 eQEPxAIN、您可以通过该信号获取 QCLK。 然后、通过使用 EQEP 看门狗、可以发送如您所说的中断。

    1.配置输入到 eQEPxAIN

    2.配置 QDECCTL[XCR]= 0x00?  

    3.配置 QDECCTL[QSRC]= 0x01;

    4.配置 QEPCTL[WDE](启用看门狗)、QWDPRD (将看门狗周期设置为1s)、QEINT[WTO](启用看门狗中断源)。  

    Driverlib 函数: eQEP_enableWatchdog (uint32_t base、uint16_t period); eQEP_enableInterrupt (uint32_t base、uint16_t intFlags);

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

    您好、Ryan、

    我目前已测试上述配置。 我可能在".syscfg"文件中丢失了一些内容。 我将文件中的所有更改附加为 jpg。 请提供一些输入、因为这种方法仍然无法正常工作。

    在这里、对于中断函数 、我创建了"ISR_Card... _ISR"(第3个上传的文件) 正确。  输入脉冲 GPIO 40以1Hz 的频率连接到函数发生器。

    无论输入信号是打开还是关闭(函数发生器的1Hz 输入脉冲已连接或未连接到 GPIO 引脚40)、我发现了两种情况。 (输入脉冲无影响)

    -当看门狗周期的值<= 59时(参见图片,其中显示10000 ),它会第一次产生中断,永远不会产生进一步的中断。

    -当看门狗周期的值大于59时,不会产生任何中断。

    我寻求你们的宝贵意见。

    感谢 Ryan

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

    尊敬的 Kaustav:

    请参阅以下 PIE 表。 您已正确清除 eQEP 中断标志、但是您需要清除中断确认组。

    这是一个清除 ePWM 生成的中断的示例。 请注意"Interrupt_clearACKGroup"函数。

    此致!

    马瑞安

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

    您好、Ryan、

    我们很高兴地通知您,所讨论的方法和所有必要的更改都按预期工作。

    现在、我们有最后一个需要解决的问题。

    问题:

    我们有7个相同频率的信号。 在 eQEP 中、我们只有2个实例、这意味着只有两个输入 GPIO I、e eQEPxAIN、eQEPxBIN。

    我们需要以轮循方式检测所有7个信号。 如果我们能够 在运行时更改 eQEPxAIN 输入、我们就可以实现这一点。 在浏览 syscfg 文件时、我没有获得此功能。

    是否可以通过任何方法更改运行时的 GPIO 输入?

    此致

    考斯图夫

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

    尊敬的 Kaustuv:

    很高兴听到它正在工作!

    在运行时更改输入将需要 SYSCFG 无法提供的自定义逻辑。 您需要在更改输入引脚之前禁用 eQEP。

    如果您使用 PWMXBAR 作为 eQEP 的输入、那么您可以将 INPUTXBAR 路由到 PWMXBAR。 这样、您就可以更改 GPIO INPUTXBAR 的来源、以便实现您想要的结果。 如果使用器件引脚、则需要7个专用 GPIO 来路由循环。 但是、如果使用 PWMXBAR + INPUTXBAR、您可以通过在循环时为 GPIO 配置的一个 INPUTXBAR 实现相同的效果。  

    eQEP <- PWMXBAR <- INPUTXBAR <- GPIO

    此致!

    马瑞安

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

    您好、Ryan、

    我们很高兴地通知您,我们实施并测试了上述技术,它是绝对有效的。

    非常感谢您为解决问题所付出的不懈努力。

    在不久的将来、我们计划升级系统、以使用具有7个以上 eQEP 模块的不同电路板。

    请建议任何电路板、如果存在、可具有7个以上 eQEP 实例。

    此致、

    考斯图夫

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

    尊敬的 Kaustuv:

    遗憾的是、器件上大多数 eQEP 是我们的 TMS320F28P65x  、它具有多达6个 eQEP。 如果您有任何其他问题、请打开另一个帖子!

    此致!

    马瑞安

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

    您好、Ryan、

    非常感谢您的意见。

    此致

    考斯图夫