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.

[参考译文] TMS320F28379D:使用 eQEP 模块的速度测量

Guru**** 2606725 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/681614/tms320f28379d-speed-measurement-using-eqep-module

器件型号:TMS320F28379D

尊敬的先生、我正在使用三相交流感应电机、其中我耦合了 QEP 编码器。 我只需使用两行编码器、因为在实际电机中、只有两行用于测量速度。  

编码器具有1024条线路。 我已经获取了现有的示例代码、并根据我的要求更改了一些变量、如下所示:基本 RPM = 3000、QEP 线路= 1024。  

我将这两个信号馈送到控制卡并运行代码、但我观察到 RPM 速度的变化 超过了50 rpm。 我完全没有获得稳定的速度。  

请告诉我、对于我来说、eQEP 模块的最佳配置是什么。  

这是硬件问题还是我的采样 错误。 我还发送了我所执行的配置。

//.9999-4096转换为 IQ26定点格式
#define mech_scaler 16383
//在本示例中为2极对
#define POLE_PAIRS 3.
//编码器与相位 A 之间的角度偏移
#define CAL_ANGLE 0
//请参阅 eQEP_ex2_calculation.c (4096*3000)中的公式5
#define SPEED_SCALER (((((uint64_t) 32 * DEVICE_SYSCLK_FREQ / 64)* 60)/(12288000))
//基本/最大转速为6000rpm
#define base_RPM 3000

空 initEQEP (空)


//
//将解码器配置为正交计数模式
//
eQEP_setDecoderConfig (EQEP1_base、(eQEP_CONFIG_1X_RESULATION |eQEP_CONFIG_Quad交|eQEP_CONFIG_NO_SWaP));
eQEP_setEmulationMode (EQEP1_base、eQEP_EMULATIONMODE_RUNFREE);

//
//将位置计数器配置为在索引事件发生时重置
//
eQEP_setPositionCounterConfig (EQEP1_base、eQEP_POSITION 重置_IDX、0xFFFFFFFF);

//
//启用单位计时器,将频率设置为50Hz
//
eQEP_enableUnitTimer (EQEP1_base、(DEVICE_SYSCLK_FREQ / 50));

//
//将位置计数器配置为在单位超时时时锁定
//
eQEP_setLatchMode (EQEP1_base、eQEP_LATCH_UNIT_TIME_OUT);

//
//启用 eQEP1模块
//
eQEP_enableModule (EQEP1_base);

//
//配置和启用边沿捕捉单元。 捕获时钟分频器
// SYSCLKOUT/64。 单元位置事件分频器为 QCLK/32。
//
eQEP_setCaptureConfig (EQEP1_base、eQEP_CAPTURE_CLK_DIV_64、eQEP_UNIT_POS_EVNT_DIV_32);
eQEP_enableCapture (EQEP1_base);

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

    尊敬的 Ashutosh:

    编码输出的计数/旋转次数是多少? 根据您使用的配置,它看起来是4096/转(1024*4),这是正确的吗?

    如果是、则需要将 eQEP 的分辨率更改为2倍。

    eQEP_setDecoderConfig (EQEP1_base、(eQEP_CONFIG_2X_RESULATION |eQEP_CONFIG_Quad交|eQEP_CONFIG_NO_SWaP));

    此外、还需要少量说明:

    1.如何计算 rpm、是否使用示例(PosSpeed_calculate (&posSpeed))?

    2、rpm 的预期值是多少、它是3000?

    3.您如何根据您的信息为微分器提供索引脉冲、您认为您使用的是双通道编码器、两个通道均相移90度、对吗?

    此致、

    Nirav

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

    主席先生,  

    是的、计数为4096 /转。  

    是的、我使用的是相同的示例。

    我想测量2700rpm 最大值、因此我将3000rpm 作为 baserpm

     我没有使用索引脉冲,因为这是一个低功耗设置,我有索引脉冲,但在高功率设置中,它们不提供索引。  

    我还无法理解这两个预分频器。  

    Amosh Bhshutatt

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

    哦、好的、将分辨率更改为2倍是否有帮助?

    预分频器用于捕捉单元、更多细节请参考 TRM 中的"eQEP 边缘捕捉单元"一章。

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

    好的、我明白了。

    关于 QEP 传感器的最后一个问题是 、我们是否需要 QEP 传感器 和 MCU 引脚之间的任何滤波器电路。 如果我们必须放置电路、请提供一些应用手册或任何有助于我设计滤波器的内容。  

    谢谢你  

    Amosh Bhshutatt

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

    您不需要使用滤波器电路、而是可以在 micro 上使用 GPIO 滤波器。 并可以根据系统中的噪声配置设置。

    此致、
    Nirav