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.

[参考译文] TM4C123AE6PM:QEI 方向偶尔改变

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/588035/tm4c123ae6pm-qei-direction-changes-occasionally

器件型号:TM4C123AE6PM

大家好、

我开发了一个有刷直流运动应用、在该应用中、我希望从 QEI0获取速度和方向。 我的问题是、(对我而言、似乎是任意次数)、丢弃任何周期性、QEI_O_STAT 寄存器中的方向标志会切换、但看起来电机旋转顺畅(没有方向变化)。

我必须使用的编码器没有索引信号、因此它未连接到 CPU。 QEI 配置如下所示:

MAP_QEIConfigure (QEI0_BASE、(QEI_CONFIG_CAPTURE_A_B | QEI_CONFIG_NO_RESET | QEI_CONFIG_NO_SWAP)、23);

MAP_QEIVelocityConfigure (QEI0_BASE、QEDEV_CONFIG、QEIV_SIMPLE_TOSIMPLE_QE0*、QE0*(QEIV_INE0*);QEIINEIV_SIMPLE_CONFIG_SIMPLE_SIMPLE_TOSIMPLE_QE0*(QE0*)





MAP_QEIEnable (QEI0_BASE);

和中断处理程序、在这里我想计算当前 RPM:

void HandleInterrupt (){
MAP_QEIIntClear (QEI0_BASE、QEI_INTTIMER);

//方向补偿速度
浮点速度= MAP_QEIDirectionGet (QEI0_BASE)* MAP_QEIVelocityGet (QEI0_BASE);
_rpm =(**/*60Hz)*/* PulseCycle
;**/* 15Hz

我通过通过串行端口打印_rpm 的值来检查它,即使我在 HandleInterrupt()中放置了一个断点,并检查相应的 HW 寄存器,我看到方向标志发生了变化。

有人可以帮帮我吗? 原因可能是什么? 我出了什么问题?

此致、

Norbert

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

    我喜欢您的描述、并且在过去几年遇到过这种情况-尽管有另一家供应商的 ARM MCU。

    对我而言、两个方面出现"最可能:"

    • 您的编码器正在"干扰"其四路信号。  现在、您已经足够聪明、可以"寻找周期性"-但是、"电机速度的不精确性/变化"-使检测复杂化并混淆-它不是吗?  当我的小组遇到这个问题时-我们将"编码器"替换为"精确定时和受控数字信号"、"不能干扰"-并将这些信号输入 MCU 的 QEI 端口-问题消失了!  您可以考虑这样一种"测试方法"。
    • 如果方法1 (以上)不能证明令人信服(或被绕过)、那么您的 QEI 级是否可能会"累积计数"(这只是一个理论)-和"意外/意外翻转"(或其他违反)- MCU 会(以某种方式)将其称为"方向改变?"

    有时、当尝试解决困难的挑战时、"尝试"(真正导致)更快地出现问题"证明是有用的。   返回到您(可能)使用受控、正确的四路输入(我的第一个建议)-也许您可以系统地改变这些输入-并且"故意"使 MCU "非法报告"此类方向变化。  (可能)

    正如您所说、"驱动电机"-您是否已积极"排除"电流尖峰和/或其他高能瞬变-这可能会渗透 QEI 输入?   您是否曾尝试(两者)缩短编码器的四路输出-甚至可能是为了"屏蔽"它们?   我相信您的 MCU 确实支持(内部 QEI 信号滤波)-只要这两个 QEI 输入都同等应用-这也可能会证明有用。

    这种情况是否发生在多个电路板上?   单板问题"进食"时间/精力-比合理的时间/精力要吸引更多的注意力...

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

    您好!

    您可以看到以下输入电路原理图:

    HS0.A 和 HS0.B 信号通过施密特触发器(74HC14)连接到 MCU。 仅仅滤除干扰是不够的吗? 我应该如何设计/修改 QEI 的输入级?

    此致、

    Norbert

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

    感谢您提供原理图-它确实增加了简洁的细节-但仍有许多未回答的问题-限制了我/他人的诊断...

    也许你重新阅读我的初始帖子会比我(重复)这里的问题更有启发性。  我介绍了"多分支机构"诊断指南-但(仅限)单个分支机构-捕获了您的兴趣/响应...

    请注意、尚未(几乎)确定您的编码器存在"干扰"、您刚才提供的新数据(使用 HC14)已(几乎)从考虑中消除了"干扰"。  仍然- HC14在物理上靠近编码器非常重要-确保"编码器与 HC14输入的短/直接连接"。

    您添加到 MCU QEI 输入端的电阻器和电容器的值应"匹配良好"。 (因此不会对编码器的定时四路输出产生负面影响)

    值得高度关注的是有关"电路板(MCU)和编码器数量-这是一个问题!"的"未回答"问题。  (特别是-是否有任何装配体工作-不存在此问题?)

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

    您好!

    我仅在单板上检测到此问题。 我打开了具有最大值的毛刺脉冲滤波(数据表确定为系统时钟周期)。 似乎对我有所帮助、但并不能解决整个问题。

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

    [引用 user="Norbert Toth"]我仅在单板上检测到此问题。 [/报价]

    这是否意味着(几个)其他电路板上不会出现"此问题"?   如果是这种情况- MCU 和/或 QEI 布线/连接的完整性-对于该"单板"、则可能存在问题。