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.

[参考译文] TMS320F28388D:TMS320F28388D — 按索引进行 eQEP 初始化

Guru**** 2984730 points

Other Parts Discussed in Thread: TMS320F28388D

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1646791/tms320f28388d-tms320f28388d---eqep-initialization-by-index

器件型号: TMS320F28388D

您好:
我们将仿真 ABI 接口的器件连接到 MCU TMS320F28388D。
MCU 使用配置为测量位置的 eQEP 模块。
通过 Index Input 对 eQEP 模块进行初始化时出现问题。 位置使用偏移进行初始化、偏移取决于第一次出现索引信号期间的运动方向。 在下一次旋转期间、偏移似乎与初始设置一样恒定。

对于如何将 TMS320F28388D 配置为在没有此偏移的情况下运行、您是否有任何建议? 或者至少如何配置它、使偏移不取决于第一次运动的方向?

eQEP 模块现在配置如下:
QDECCTL[XCR]= 1
QDECCTL[SWAP]= 1
QDECCTL[QIDIRE]= 1
QEPCTL[FREE_SOFT]= 2
QPOSMAX = 8192.
QEPCTL[QPEN]= 1
其余的 eQEP 寄存器被设置为默认值。
在附图中、捕获了第一个索引出现期间两个运动方向的 ABI 波形。direction_2.pngdirection_1.png

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

    您好、  

    很抱歉、延迟的回复。

    该行为与“在第一个索引上复位位置计数器“模式一致。  如果在正向运动期间发生索引事件、则位置计数器将在下一个 eQEP 时钟时复位为 0。 如果在反向移动期间发生索引事件、则位置计数器将在下一个 eQEP 时钟时复位为 QPOSMAX 寄存器中的值。 请注意、这只会在第一次发生时完成、随后位置计数器值不会在发生索引事件时复位;相反、位置计数器值会根据最大位置进行复位。 如果要在每个索引脉冲上复位位置计数、应使用“在每个索引脉冲上复位位置计数器“选项。 这将照顾方向。

    从波形可以看出、您似乎未使用正交编码器。 如果没有、您还需要将 QDECCTL[QSRC]更改为 0x01(方向计数模式)。

     由于您的应用需要方向计数模式、您是否可以更改 QDECCTL[QSRC]=0x01? 请重试一次、如果这不起作用、请告诉我。  

    谢谢、

    Divesh

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

    您好、
    我未使用模式“在第一个索引上复位位置计数器“。 我正在使用模式“每个索引脉冲时位置计数器都会复位“(QEPCTL[PCRM]=00,根据数据表的默认值)。

    是连接的器件不是正交编码器。 这是另一款在门控模式下仿真正交编码器输出的旋转位置传感器。 其输出不是在方向计数模式下输出。

    从随附的图片(参考手册中,在每个指数脉冲模式下,位置计数器的描述被重置),我预计索引事件将在指数脉冲的上升/下降沿产生,取决于方向,但从测量,我觉得第一个索引是在下降沿产生的,独立于运动方向。

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

    尊敬的 Martin:

    波形 (A 和 B) 之间是否存在 90 度的相互偏移? 如果没有,有没有任何机制,你是通过它移动,使它们之间的相位是 90 度? 如果波形 A 和 B 发生 90 度以外的量变化、则可能会给出错误的结果。

    您可以一次尝试检查它是否为方向提供了正确的结果。

    谢谢、

    Divesh

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

    你好,你是什么意思“移动 90 度“? 在测量 A 波和 B 波形边沿时、边沿之间的精确距离由旋转速度给出。 但它们的顺序当然是同步的。  我 在第一个问题中提供的打印屏幕是通过逻辑分析仪在处理器输入时测量的数据、以及作为文本添加的值是从处理器的内存/寄存器读取的值(蓝色)。 红色阀由传感器串行通信提供。

    我也不确定您的意思是“尝试检查它是否为方向提供了正确的结果“。

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

    尊敬的 Martin:

    我之所以告诉您检查 它是否为方向提供了正确的结果、是因为我想检查它是否能够正确检测方向。 只有当两个信号 (A 和 B) 移动 90 时、eQEP 模块才能正常工作、否则无法提供正确的结果。  

    在测量 A 波形和 B 波形边缘时、边缘之间的确切距离由旋转速度给出? 否、A 和 B 信号之间的相位差不取决于速度的旋转。 它取决于编码器的结构。 使用 TRM 中可引用的 eQEP 状态机来计算方向。

    谢谢、

    DIvesh