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.

[参考译文] TMDS243GPEVM:增加 TMDS243GPEVM#39示例应用的 EtherCAT 从站邮箱大小的方法。

Guru**** 2524550 points


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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1185326/tmds243gpevm-increasing-method-for-ethercat-slave-mailbox-size-of-tmds243gpevm-s-sample-application

器件型号:TMDS243GPEVM

大家好、我将使用 EtherCAT_SLAVE_SIMPLE_DEMO_AM243x-EVM_r5fs0-0_FreeRTOS_ti-arM-clang 作为参考项目来开发 EtherCAT Salve 器件。

参考设计的默认邮箱大小为256字节、如下所示。

但我想增加容量。 以太网 EtherCAT、其使用的数据大于256字节。

尽管从站堆栈代码会对数据进行分频并以多个帧的形式发送、但邮箱大小有限、但我希望以单个帧的形式发送数据。

当我增加邮箱的大小时、堆栈代码不起作用、它告诉我"无效的邮箱配置"

我在 ESI 中更改了邮箱的大小。

和、已按如下方式更改堆栈代码配置。

我是否需要更改 ESI 或从代码中的其他信息?

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

    您好、Skym、

    我们已经开始研究这个问题

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

    您好、Skym、

    为了增加有关 EOE 的邮箱大小、您必须考虑多个阶段:

    project.h 包含应用程序使用的默认设置、请使用正确的邮箱定义:
    定义 ET1100_boot_MBXOUT_DEF_LENGTH      256  //引导程序邮箱大小*/
    #define ET1100_boot_MBXIN_DEF_LENGTH       256  //引导程序邮箱大小*/
    #define ET1100_MBXOUT_DEF_LENGTH           256     //标准邮箱*/
    #define ET1100_MBXIN_DEF_LENGTH            256        //标准邮箱*/

    由于 EOE 在自举中不起作用、但在 PreOP 和更高版本中起作用、我希望您增加标准邮箱大小。 当然、这必须在 API 调用(project.h 定义或直接在调用时)和 ESI 中同步完成、以便这些值再次匹配应用和 EEPROM 仿真。

    如果您使用评估板、请确保在进行这些更改后擦除 SPI 闪存、因为我们的演示在 SPI 闪存中仿真了 EEPROM perspers立场、并且应在进行如此大量的重新配置后将其复位。

    请告诉我这是否有帮助。

    此致

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

    您好、Skym、

    可通过 project.h 中的建议定义访问用于更改邮箱的 API 调用 本身是

    EC_API_SLV_setStandardMailbox (ptSlave、
       ET1100_MBXOUT_START、ET1100_MBXOUT_DEF_LENGTH、ET1100_MBXIN_START、 ET1100_MBXIN_DEF_LENGTH);

    EC_API_SLV_setSyncManConfig (ptSlave、
                                                            0、ET1100_MBXOUT_START、  ET1100_MBXOUT_DEF_LENGTH、
                                                            ET1100_MBXOUT_CONTROLREG、ET1100_MBXOUT_ENABLE);
    EC_API_SLV_setSyncManConfig (ptSlave、
                                                            1、ET1100_MBXIN_START、  ET1100_MBXIN_DEF_LENGTH、
                                                            ET1100_MBXIN_CONTROLREG、ET1100_MBXIN_ENABLE);

    这将配置邮箱大小和有关同步管理器、这些管理器是处理邮箱所必需的。

    此致

    Nilabh A.

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

    你好 Nilabh Anand

    在我第一次尝试更改 project.h 中的常量时、我已经尝试更改了

    我检查了您提到的函数的参数。 很明显、这些参数会发送到函数。

    但我再也看不到上述函数以及  EC_API_SLV_mainLoopCyclic()中的内容了

    我想 ,在 EC_API_SLV_mainLoopCyclic()内部,邮箱配置错误可能会出现。

     您是否能够看到函数  EC_API_SLV_mainLoopCyclic();?

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

    您好 Sykim、

    您是否意味着即使在 project.h 中更改常量也无法解决 问题。 它是否会导致一些误差? 您还能解释一下:

    但我再也看不到上述函数以及  EC_API_SLV_mainLoopCyclic()中的内容了

    我想 ,在 EC_API_SLV_mainLoopCyclic()内部,邮箱配置错误可能会出现。

     您是否能够看到函数  EC_API_SLV_mainLoopCyclic();?

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

    尊敬的 Nilabh Anand:

    在使用的 TwinCAT I 中、当我尝试将从器件运行状态从初始模式更改为预操作模式时、从器件(AM243x EVM 从器件)返回邮箱配置错误的状态。  

    然后 TwinCAT 向我显示错误消息   "Invalid mailbox configuration"(无效的邮箱配置)

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

    您好 Sykim、

    我们与内部团队进行了讨论、在我们堆栈的 Beckhoff 从站示例代码部分、邮箱的最大大小已增加。 下一个版本将在 Beckhoff 从站示例代码补丁中包含0x400而不是0x100的大小。

    因此、我的建议是基于您是否获得了 beckoff 堆栈代码、如果是、您可以重新编译堆栈代码。

    否则、我们可以在下一版本中提供此修复。

    BR

    Nilabh A.

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

    Nilabh   Anand、您好!

    感谢您的跟进。

    实际上、我正在使用您的基本示例项目、因此该项目使用发布的堆栈。

    我能否收到有关预期日期的信息、或者您能否在修改后的堆栈代码发布时通知我?

    如果您想详细了解我们的计划或业务模式、请发送电子邮件至: sykimh@ls-electric.com

    谢谢你。