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.

[参考译文] AM2634:如何在定制板中测试 eQEP

Guru**** 2322270 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/1519544/am2634-how-to-test-the-eqep-in-the-customized-board

器件型号:AM2634
主题:SysConfig 中讨论的其他器件

工具/软件:

您好的团队、

我使用的是 eQEP_POSITION_SPEED 示例

SDK 版本- 09_02_00_55


我正在开发定制硬件、在该 eQEP 模块中、为此、我们配置了引脚多路复用  

EQEP2_A - B13
EQEP2_B - A13

EQEP0_A - U18
EQEP0_B - T18







1.我们的代码在 driver_config ()函数中被触发,我们尝试调试它将进入汇编代码和结构化,但这种情况不会发生在定制电路板中,我们面临的问题


2.在这里,我移除了 EPWM ,因为我们通过模拟器提供脉冲,您可以提供测试代码来测试两个 EQEP。


您能立即以我们要求的速度重播吗

谢谢您、  

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

    对响应延迟深表歉意、

    如果自定义板中有问题、但 eval 板中没有问题、并且在 driver_config ()函数中出现问题、我将专门查看 driver_config ()函数。 看看 SDK 中列出的示例,我看不到 drivers_config ()函数。 您指的是什么?

    此致、
    Jason Osbron

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

    尊敬的 Jason:

    实际上我们在 Drivers_eqepOpen ()函数中得到的问题就在这个函数内

    1.当我们测试  EQEP0_A - U18、 EQEP0_B - T18时、我们成功获得了输出... 但在测试后、则使用 EQEP2_A - B13
    EQEP2_B - A13 /* CONFIG_EQEP2初始化*/部分中的这些引脚代码结构、它将进入 HwiP_DATA_ABORT_HANDLER_c 以及它结构。

    2.如何配置   SysConfig 中的这些引脚 EQEP2_A - B13、EQEP2_B - A13 有没有其他的东西是依赖,有做吗?

     

    下面是我的 驱动程序 eqepOpen () 驱动程序开放代码:

    静态 void Drivers_eqepOpen (void)

    /* CONFIG_EQEP0初始化*/
    /*设置 eQEP 模块的选通输入源*/
    eQEP-setStrobeSource (SPEED_SENSOR_1_BASE_ADDR、eQEP_SELECTION_FROM_GPIO);
    /*设置 eQEP 模块输入信号的极性*/
    eQEP-setInputPolarity (SPEED_SENSOR_1_BASE_ADDR、FALSE、FALSE、FALSE、FALSE);
    /*配置 eQEP 模块的正交解码器单元*/
    eQEP-setDecoderConfig (SPEED_SENSOR_1_BASE_ADDR、(eQEP_CONFIG_正 交| eQEP_CONFIG_2X_resolution | eQEP_CONFIG_NO_SWAP);
    /*设置 eQEP 模块的仿真模式*/
    eQEP-setEmulationMode (SPEED_SENSOR_1_BASE_ADDR、eQEP-EMULATIONMODE_STOPIMMEDIATELY);
    /*配置 eQEP 模块位置计数器单元*/
    eQEP-setPositionCounterConfig (SPEED_SENSOR_1_BASE_ADDR、eQEP_POSITION_RESET_IDX、0);
    /*设置当前编码器位置*/
    eQEP-setPosition (SPEED_SENSOR_1_BASE_ADDR、0);
    /*禁用 eQEP 模块单元计时器*/
    eQEP-disableUnitTimer (SPEED_SENSOR_1_BASE_ADDR);
    /*禁用 eQEP 模块看门狗计时器*/
    eQEP-disableWatchdog (SPEED_SENSOR_1_BASE_ADDR);
    /*配置可以锁存位置计数的正交模式*/
    eQEP-setLatchMode (SPEED_SENSOR_1_BASE_ADDR、(eQEP_LATCH_CNT_READ_BY_CPU|eQEP_LATCH_RISING_SELECTION|eQEP_LATCH_RISING_INDEX);
    /*设置正交模式适配器(QMA)模块模式*/
    eQEP-setQMAModuleMode (SPEED_SENSOR_1_BASE_ADDR、eQEP_QMA_MODE_BYPASS);
    /*在索引期间禁用方向更改*/
    eQEP-disableDirectionChangeDuringIndex (SPEED_SENSOR_1_BASE_ADDR);
    /*配置位置计数器初始化模式*/
    eQEP-setPositionInitMode (SPEED_SENSOR_1_BASE_ADDR、(eQEP_INIT_DONE_NOTICE));
    /*设置编码器位置计数器的软件初始化*/
    eQEP-setSWPositionInit (SPEED_SENSOR_1_BASE_ADDR、FALSE);
    /*设置编码器位置计数器的初始值*/
    eQEP-setInitialPosition (SPEED_SENSOR_1_BASE_ADDR、0);
    /*禁用 eQEP 模块*/
    eQEP-disableModule (SPEED_SENSOR_1_BASE_ADDR);

    eQEP-SourceSelect sourceSelect;
    sourceSelect.sourceA = eQEP_SOURCE_ZERO;
    sourceSelect.sourceB = eQEP_SOURCE_ZERO;
    sourceSelect.sourceIndex = eQEP-SOURCE_ZERO;
    eQEP-selectSource (SPEED_SENSOR_1_BASE_ADDR、sourceSelect);

    /* CONFIG_EQEP2初始化*/
    /*设置 eQEP 模块的选通输入源*/
    eQEP-setStrobeSource (SPEED_SENSOR_2_BASE_ADDR、eQEP_SELECTION_FROM_GPIO);
    /*设置 eQEP 模块输入信号的极性*/
    eQEP-setInputPolarity (SPEED_SENSOR_2_BASE_ADDR、FALSE、FALSE、FALSE、FALSE);
    /*配置 eQEP 模块的正交解码器单元*/
    eQEP-setDecoderConfig (SPEED_SENSOR_2_BASE_ADDR、(eQEP_CONFIG_正 交| eQEP_CONFIG_2X_resolution | eQEP_CONFIG_NO_SWAP);
    /*设置 eQEP 模块的仿真模式*/
    eQEP-setEmulationMode (SPEED_SENSOR_2_BASE_ADDR、eQEP-EMULATIONMODE_STOPIMMEDIATELY);
    /*配置 eQEP 模块位置计数器单元*/
    eQEP-setPositionCounterConfig (SPEED_SENSOR_2_BASE_ADDR、eQEP_POSITION_RESET_IDX、0);
    /*设置当前编码器位置*/
    eQEP-setPosition (SPEED_SENSOR_2_BASE_ADDR、0);
    /*禁用 eQEP 模块单元计时器*/
    eQEP-disableUnitTimer (SPEED_SENSOR_2_BASE_ADDR);
    /*禁用 eQEP 模块看门狗计时器*/
    eQEP-disableWatchdog (SPEED_SENSOR_2_BASE_ADDR);
    /*配置可以锁存位置计数的正交模式*/
    eQEP-setLatchMode (SPEED_SENSOR_2_BASE_ADDR、(eQEP_LATCH_CNT_READ_BY_CPU|eQEP_LATCH_RISING_SELECTION|eQEP_LATCH_RISING_INDEX);
    /*设置正交模式适配器(QMA)模块模式*/
    eQEP-setQMAModuleMode (SPEED_SENSOR_2_BASE_ADDR、eQEP_QMA_MODE_BYPASS);
    /*在索引期间禁用方向更改*/
    eQEP-disableDirectionChangeDuringIndex (SPEED_SENSOR_2_BASE_ADDR);
    /*配置位置计数器初始化模式*/
    eQEP-setPositionInitMode (SPEED_SENSOR_2_BASE_ADDR、(eQEP_INIT_DONE_NOTICE));
    /*设置编码器位置计数器的软件初始化*/
    eQEP-setSWPositionInit (SPEED_SENSOR_2_BASE_ADDR、FALSE);
    /*设置编码器位置计数器的初始值*/
    eQEP-setInitialPosition (SPEED_SENSOR_2_BASE_ADDR、0);
    /*禁用 eQEP 模块*/
    eQEP-disableModule (SPEED_SENSOR_2_BASE_ADDR);

    sourceSelect.sourceA = eQEP_SOURCE_DEVICE_PIN;
    sourceSelect.sourceB = eQEP-SOURCE_DEVICE_PIN;
    sourceSelect.sourceIndex = eQEP-SOURCE_DEVICE_PIN;
    eQEP-selectSource (SPEED_SENSOR_2_BASE_ADDR、sourceSelect);

    }

    因为同样的事情,如果我们在 eval 板中配置,我们没有遇到任何问题,但在定制板中,我们在  Drivers_eqepOpen ()的 eqep2配置中遇到问题;

    请尽快重播…

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

    尊敬的 Jason:  

    您能否为此尽快重播...

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

    您好、

    我现在正在研究这个。

    在查看它的同时、尽管我认为这 不可能是问题、但我应该确认-从此页面下载了所有必需的附加 SDK 工具、对吗?

    此致、
    Jason Osborn