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.

[参考译文] MCU-PLUS-SDK - AM243X:具有 LP 的 eQEP 接口

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1266156/mcu-plus-sdk-am243x-eqep-interface-with-lp

器件型号:MCU-PLUS-SDK
主题中讨论的其他器件:SysConfig

大家好、
希望您做得好。

我将使用 AM243x-LP 并对 eQEP 接口进行编程 以计算电机转速(  不需要位置数据)。  
  关于 TRM (7825页)中的速度计算、我有以下几行代码。

  1. 将 GPIO1_28设置为高电平              //选择 eQEP2函数  
  2. HW_WR_REG32 (0x0322,020,1250);  // EQUEP_QUPRD 寄存器;在 SysConfig 中配置的100kHz 开关频率和25MHz 时钟频率。
  3. HW_RD_REG32 (0x30220018)        // EQUEP_QPOSLAT 寄存器;读取增量位置值(X 增量)

我能够在编码器端子上看到 QEPA、QEPB 和 QEPI 信号、但当我将其插入 LP 的 J21时、我无法读取 eQEP_QPOSLAT 寄存器(0x03220018)中的"x (k+1)- x (k)"值。   
理想情况下、在 SysConfig 配置 eQEP 和 J21 LP 连接后、我应该能够在0x03220018 寄存器中看到一些非零值。

我在这里遗漏了一些重要的配置吗? 您能告诉我您对此有什么看法吗?

我使用的是 Teknic 电机(https://www.ti.com/tool/LVSERVOMTR)

如果您需要这方面的任何进一步信息,请告诉我,并祝您今后愉快。
谢谢。此致、
A·德斯卡尔

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

    大家好、
    希望您做得好。

    您可以分享我的未决问题的更新吗?
    或者、您也可以共享 AM243x 的示例代码、该代码使用 在 PWM 生成的中断处进行锁存的 eQEP 模块计算电机转速?

    提前表示感谢、祝您在未来一周愉快。
    谢谢。此致、
    A·德斯卡尔

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

    尊敬的 Vaidehi 

    我建议使用 SysConfig 来配置 eQEP 模块。  

    您可以使用"eQEP_enableModule (CONFIG_EQEP2_BASE_ADDR)"启用 eQEP 、然后使用"eQEP_getPosition (CONFIG_EQEP2_BASE_ADDR)" 获取位置(均位于 MCU-PLS-SDK -> eQEP.h)。

    如果使用 eQEP2、其基地址为:

    #define CONFIG_EQEP2_BASE_ADDR (CSL_EQEP2_REG_BASE)

    #define CSL_EQEP2_REG_BASE (0x23220000UL)

    此致!

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

    大家好、Masoud、
    感谢您的答复。

    您能否共享使用 PWM 中断进行速度计算的 AM243x-LP 的示例代码? 当前的 SDK 示例使用了 eQEP 中断、其中显示了该模块的隔离式应用。 但在电机控制中、使用 PWM 中断来锁存该模块是有益的。

    谢谢。此致、
    A·德斯卡尔

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

    当前版本的 MCU 和 SDK 支持基于单元超时事件方法进行速度计算、非常适合高速应用。 在此示例中、通过进行 GPIO 引脚切换来生成 eQEP 信号。 您可以使用此代码来开发您自己的代码。

     

    此致、

    马苏德

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

    大家好、Masoud、
    感谢您的答复。

    使用 GPIO 生成信号的电流示例当然是一个很好的示例、但它使用自己的中断。 我已经使用 PWM ISR 使电机在开环代码中旋转、并且我想使用此中断来锁存速度数据。  
    您能在这里帮助我吗?

    如果您愿意、我们也可以通过电话进行讨论。 很遗憾、我在 WebEx 上找不到您、但请随时给我写一条消息。

    提前表示感谢、祝您在前一天愉快。
    谢谢。此致、
    A·德斯卡尔

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

    Vaidehi,

    您只需像在驱动程序示例中一样初始化 eQEP。 然后、在您的 PWM ISR 中、您只需在任何 ISR 中调用 eQEP 函数。

    (在超高速 应用中、您可能需要使用 DMA 在 TCM 中写入 eQEP 值、以确保在周期的瞬间读取 eQEP。)

    此致!

    马苏德