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:无法使用 EtherCAT RAM

Guru**** 2582455 points
Other Parts Discussed in Thread: C2000WARE

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1173287/tms320f28388d-can-not-use-the-ethercat-ram

器件型号:TMS320F28388D
主题中讨论的其他器件:C2000WARE

我想将 ESC RAM 用作正常 RAM。 我们不使用 EtherCAT 本身。
我在评估板上使用来自 C2000Ware_3_04_00_00_Software 的示例 f2838x_CPU1_PDI_hal_test_app。
F2838x 的 REVID 仍然为0x0000 0000、因此它是 TMX 器件。
写入 ESC RAM 时、RAM 中的值保持为0。 因此、整个 ESC PDI RAM 范围的测试失败。

为了使程序到达此处、必须进行以下修改:

  • 之后     
    ESC_resetESC();
    插入了以下行:
    SYSCTL_LOADateSharedPeripheral (SYSCTL_PALLOCATE_EtherCAT、0U);
  • 测试
    while (ESC_loadedCheckEEPROM ()!= ESC_EEPROM_Success)
    已注释掉。

为什么无法写入 ESC RAM、或者必须执行什么操作才能写入 EtherCAT RAM?

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

    Simon、  

    我们将很快就此再次与您联系。

    谢谢。

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

    Simon、  

    希望您已参考此主题 :https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/956370/tms320f28388d-problem-to-use-the-ethercat--ram

    相关专家正在休假、下周早些时候将与您联系。

    [引用 userid="511330" URL"~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1173287/tms320f28388d-can-not-use-the-ethercat-ram "]要使程序进入此处,必须进行以下修改:

    您能否解释一下为什么以这种方式进行了这些修改?

    谢谢。

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

    您好、Sahil、

    是的、确切地说、我指的是所提到的主题。

    • "sysctl_allocateSharedPeripheral (sysctl_PALLOCATE_EtherCAT、0U);" 被插入是因为"PALLOCATE0.EtherCAT"位被否则被设定为1、EtherCAT 因此被分配给 CM。 根据文档"技术参考手册 SPRUII0D"复位后、该位应该为0!
    • 测试"while (ESC_loadedCheckEEPROM ()!= ESC_EEPROM_Success)..." 因为在其他情况下始终会发生错误。 错误发生的原因尚不清楚、但如果只使用 EtherCAT RAM、则不得加载 EEPROM。  

    此致、

    Simon

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

    Simon、  

    Unknown 说:
    "sysctl_allocateSharedPeripheral (sysctl_PALLOCATE_EtherCAT、0U);" 已插入、因为"PALLOCATE0.EtherCAT"位已设置为1、因此 EtherCAT 已分配给 CM。 根据文档"技术参考手册 SPRUII0D"复位后、该位应该为0![/QUERP]

    如 TRM 中所述、不需要上述行、默认访问映射到 CPU1。 您可能会注意到、CPU1示例中没有任何一个具有该函数调用。 话虽如此、调用该函数也不会有很大的负面影响。

    您的查询已分配给专家、因此您可以很快收到回复。

    谢谢。

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

    Simon、

    您能否确认以下内容:

    1.您的硬件设置是什么? 您是否正在使用控制卡?

    2.您是否对示例中的任何其他内容进行了注释、例如 pinmux config 或其他初始化序列?

    EEPROM 加载失败表示上述步骤之一未正确执行。  

    此致、

    Praveen

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

    您好 Praveen、

    1. 是的、我使用 controlCARD MCU063A-。
      处理器上的代号为:
      XF28388DZWTS
      7 92A9GVW
      ->器件版本为0。
    2. 我仅在提到的项目中更改了示例。 引脚复用配置或其他初始化序列我没有更改。

    我认为无需加载 EEPROM、因为我们只想将 EtherCAT RAM 用作通用 RAM。

    此致、

    Simon

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

    Simon、

    为了使 CPU 能够访问 ECAT RAM、需要完成 EEPROM 加载步骤。 因此、我建议您尝试刷写 EEPROM 以完成 EEPROM 加载。 要对控制卡中的 EEPROM 进行编程、请参阅 C2000ware 中的 EtherCAT 软件用户指南: \libraries\communications\EtherCAT\f2838x\docs

    同时、我将尝试与内部团队联系、看看是否有其他方法。

    此致、

    Praveen

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

    您好 Praveen、

    我现在已经按照手册中的说明安装了 TwinCAT 程序、但在扫描器件时、它找不到 controlCARD。 我现在不想跟进这个问题、因为在我们的目标中、我们希望使用 EtherCAT RAM 作为通用 RAM、而不使用 EEPROM。
    我们对一种允许通过配置内部寄存器访问 EtherCAT RAM 的解决方案感兴趣。

    此致

    Simon

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

    您好、Simon、

    您还可以通过 FAST 端口(用户指南的地址列表第8.3节)访问 EtherCAT RAM、而无需完成 EEROM 加载。 您可以尝试使用此地址吗?

    此致、

    Praveen

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

    您好 Praveen

    在"EtherCAT 从站控制器软件用户指南"(最新版本 v2.01.00.00)中找不到第8.3节。 在哪里可以找到参考用户指南或快速端口地址列表?

    此致

    Simon

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

    Simon、

    抱歉,我应该更明确一点。

    我在器件数据表中的意思是:

    www.ti.com/.../datasheet

    此致、

    Praveen

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

    你好,拉文

    好的、在数据表中我可以找到第8.3节、但我找不到一个"快速端口"。 EtherCAT RAM 的起始地址为0x00030800:  

    在文档"技术参考手册"(SPRUII0D)中 、EtherCAT RAM 的起始地址为0x00050800:

    这两个文档之间存在差异。 论坛中  
    tms320f28388d-problem-use-the-etherCAT--ram
    之间 CM 中地址的差异
    Christopher Chiarella 回答了"技术参考手册"和"数据表"。 "技术参考手册"中的地址似乎是正确的。

    在"f2838x_CPU1_PDI_hal_test_app"示例中 、ESC 寄存器基地址为:
    #define ESC_base 0x50000UL
    CPU1中的 EtherCAT RAM 可能位于地址0x00050800。 您可以确认这一点吗?

    此致

    Simon

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

    Simon、

    EtherCAT RAM 可通过两个地址进行访问。 TRM 中列出的地址需要加载 EEPROM、而快速端口地址不需要加载 EEPROM。  请尝试通过0x00030800地址进行访问

    此致、

    Praveen

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

    您好 Praveen

    是的、没错、这就是解决方案、谢谢。

    我可以在地址0x00030800的 CPU1和地址0x400b1000的 CM 中写入和读取 EtherCAT RAM。

    尽管在 ECAT_ACCESS_CTRL 中设置了 ENABLE_DEBUG_ACCESS 位、但我无法通过调试器查看此存储器区域。

    此致

    Simon

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

    Simon、

    这可能是因为 CCS GEL 文件存储器映射定义没有列出该存储器、而只是对其进行阻止。 您是否能够通过直接 CPU 访问来使用此存储器?

    此致、

    Praveen

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

    您好 Praveen

    是的、我可以写入和读取 ECAT RAM、如果修改了文件 f28388x_cm.gel、也可以调试该存储器区域。
    我可以将.bss 区域映射到 ECAT RAM 中。
    但是、我必须在源代码中将存储器区域设置为0、因为.bss 区域的自动0设置发生在将该存储器区域从 CPU1分配到 CM 之前。

    此致

    Simon

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

    Simon、

    是的、在我们将内存分配给 CM 之前、不能对内存进行零处理。

    很高兴听到您的要求得到了关注。

    祝你度过美好的一天

    此致、

    Praveen