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.

[参考译文] LAUNCHXL-F28P65X:与 CPU2的 EtherCAT 通信

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1346512/launchxl-f28p65x-ethercat-communication-with-cpu2

器件型号:LAUNCHXL-F28P65X
主题中讨论的其他器件: C2000WARE

尊敬的工程师:

我们有一个 LAUNCHXL-F28P65X 用于 EtherCAT 测试。 与中所述的解决方案结合使用

"">e2e.ti.com/.../launchxl-f28p65x-unable-to-scan-for-the-device-by-twincat"、

在我们更换 PHY 芯片后、EtherCAT 工作正常。  我们的测试代码为:

"C:\ti\c2000\C2000Ware_5_01_00_00\libraries\communications\ethercat\f28p65x\examples\f28p65x_cpu1_echoback_solution"

该工程仅使用 CPU1。 我们使用了闪存构建选项、因此即使重新供电也能正常运行。  但是、当我们使用 CPU2测试 EtherCAT 通信时、它不能正常工作、下面是我们的完整测试程序、您应该可以轻松地重现此过程。

1.软件版本

CCS:12.5.0.00007  

C2000Ware:C2000Ware_5_01_00_00

TwinCAT 版本:v3.1.4024.12

SSC 版本:5.12

示例项目位置:***\C2000Ware_5_01_00_00\libraries\communications\ethercat\f28p65x\examples\f28p65x_cpu2_echoback_solution

2.问题说明

使用 SSC 生成 EtherCAT 堆栈源代码并导入 f28p65x_CPU2_echoback_solution 工程:

两个项目都切换到闪存构建并添加_LAUNCHXL_F28P65X 宏定义:

添加 EterhCAT 堆栈源路径、以确保正确编译 f28p65x_cpu2_echoback_solution 工程:

编译后、获取 f28p65x_cpu1_allocat_ecat_to_cpu2和 f28p65x_cpu2_echoback_solution 的以下信息:

为确保正确下载到闪存、为 f28p65x_cpu1_allocat_ecat_to_CPU2添加了以下配置:

下载完成后、首先点击 CPU1的工程以运行、然后点击 CPU2的工程以运行:

将生成的 xml 文件从 SSC 复制到"C:\TwinCAT\3.1\Config\Io\EtherCAT"、然后重新打开 TwinCAT 以开始扫描:

虽然可以扫描器件、但在点击 OK 后、CPU2指示它已输入非法错误:

同时、TwinCAT 无法进入 OP 状态:

因此、我们想问 f28p65x_cpu2_echoback_solution 项目是否正常运行? 是不是我们错过了一些关键步骤?

如果您也可以重现问题、我们如何解决该问题?

谢谢!

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

    问题迎刃而解。  关键是下载顺序。 在运行 CPU1程序之前、请考虑尚未将 GSRAM 权限分配给 CPU2。 我们需要先下载 CPU1的程序并运行、然后下载 CPU2的程序并在之后运行、这样就可以正常工作。  以下是关键步骤:

    1. 为 CPU1加载程序并运行;

    2. 确保 CPU2内核未连接;

    3、连接 CPU2内核,为 CPU2加载程序;

    4.运行 CPU2、工程应该可以工作。