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.

[参考译文] CCS/LAUNCHXL-F28377S:EtherCAT

Guru**** 2561550 points
Other Parts Discussed in Thread: LAUNCHXL-F28379D, CONTROLSUITE, TMS320F28379D

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/607617/ccs-launchxl-f28377s-ethercat

器件型号:LAUNCHXL-F28377S

工具/软件:Code Composer Studio

您好!

我对用于高性能 MCU 的 EtherCAT 接口参考设计有几个问题。 我已将 LAUNCHXL-F28377S launchpad 和 EtherCAT 背负式 FB1111-0141 (SPI)连接在一起、如 tidubq6.pdf、第5页、图6所述。 我的单核 Launchpad (LAUNCHXL-F28377S)和 tibubq6.pdf 的双核 Launchpad (LAUNCHXL-F28379d)均未输出 SPI_IRQ 和 EEPROM_LOADED 引脚的已加速 GPIO。 在对提供的示例 CCS 工程进行全面搜索后、我发现(如果我错了、请纠正我的错误)选择了使用 SPI_IRQ 引脚连接 GPIO78 (而不是 GPIO136)。 至于 EEPROM_LOADED 引脚、我还没有找到任何东西。 可以帮我解决这个问题吗?

-我使用的是 SPI 通信模式。

我还遵循了有关 TwinCAT3的指令、但当我最终对 EEPROM 进行编程时(为了对 EEPROM 进行编程、我使用了 tidcc35.zip 中包含的 pdi_test_app_spi.bin、该可从参考设计页面下载。 首先,我用该文件编写了 EEPROM,然后我读取了 EEPROM),我遇到了2个问题。 第一个问题是、如果我关闭 SmartView 窗口并再次打开它、那么它似乎处于初始状态、我不知道我是否做了任何错误。 第二个问题是、无论我尝试什么、 EtherCAT 回扫 FB1111-0141都不会切换到工作状态。 我出了什么问题? 提供了使用提供的 bin (SPI)文件写入 EEPROM、然后读取 EEPROM (保存)后的 SmartView 选项卡。

在运行 CCS 工程之前、我是否需要切换到 TwinCAT 的运行模式?

谢谢、

Stamatis Athiniotis

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

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

    您好 Stamatis、

    对于单核启动板,您必须使用构建配置5或6。 右键单击项目,导航至“生成配置”->“设置活动”->选择选项5或6。

    根据您使用的 Launch Pad、您必须选择正确的构建配置、以便正确显示映射。 有关 IO 配置的详细信息、另请参阅 hal/etherCAT_slave_c28x_hal.h 文件。

    PDI HAL 测试应用程序不包含 EtherCAT 从站堆栈。 我们还有另一个即将推出的版本、支持适用于 F2837xD MCU 的 EtherCAT 从站堆栈演示和解决方案、请继续关注。  

    PDI HAL 测试应用程序随附的 EEPROM bin 文件仅允许客户从 C28x MCU 评估 PDI、访问 ET1100 ESC 寄存器和 RAM。 TI 参考设计提供的软件尚不支持 EtherCAT 从站堆栈。

    希望这对您有所帮助。

    此致

    Santosh Athuru

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

    您好、再次感谢您的回复、

    我在初始 POST (GPIO78 ->SPI_IRQ)中提到的引脚用于我当前正在使用的构建配置编号6。 问题是、在 GPIO 上、有关 EEPROM_LOADED 引脚的声明不会在整个项目中进行。 正如您所说、我已经检查 了 hal/etherCAT_slave_c28x_hal.h 文件、在该文件中、我发现 GPIO 连接到 SPI_IRQ。 stil 我无法看到 EEPROM_LOADED 在哪里!  

    "PDI HAL 测试应用程序不包含 EtherCAT 从站堆栈。 我们还有另一个即将推出的版本、支持适用于 F2837xD MCU 的 EtherCAT 从站堆栈演示和解决方案、请继续关注。"

    这意味着提供的 bin 文件无法实现 EtherCAT 通信? 因为我购买此 launchpad 和 ESCL 的原因很小、因为我认为我可以非常快速地建立 EtherCAT 通信(阅读完指南后)。 不过、Beckhoff 为我正在使用的特定 ESC 提供了一个皮肤文件(SSC)、因此我很愿意解决该问题。 请告诉我、由于我必须在截止日期之前完成、我非常着急、这个新演示何时发布。 请告诉我。

    "PDI HAL 测试应用程序随附的 EEPROM bin 文件仅允许客户评估 C28x MCU 的 PDI、从而访问 ET1100 ESC 寄存器和 RAM。 TI 参考设计提供的软件尚不支持 EtherCAT 从站堆栈。"

    为了访问这些寄存器、ESC 需要处于运行模式、对吧? 我是否也必须在 TwinCAT 上以运行模式切换?

    谢谢你

    期待收到您的回复

    Athiniotis Stamatis

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

    请参阅您在 TI 参考设计中获得的文档、该文档清楚地显示了可以通过 TwinCAT 进行何种通信。 借助提供的 bin 文件、我们将启用 ESC 上的 PDI 接口、以便从 MCU 访问寄存器和 RAM 空间。 TwinCAT 将能够扫描网络、您将能够从 TwinCAT 查看 ESC 的存储器空间。 文档显示了此操作的快照。

    配置的 EEPROM_LOADED 引脚在* hal.h 头文件第237行中定义。

    PDI HAL 测试应用程序中的寄存器访问此时仅用于读取、因为没有堆栈、因此示例/参考中未显示寄存器写入。 此外、从节点不必为寄存器/RAM 访问操作。 PDI 可根据 ET1100规格访问存储器空间。

    基于堆栈的演示/示例版本的当前时间线看起来像是第三季度末尾。


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

    1.如果我在预分频时正确无误,则您提到的头文件仅达到第158行,即 ethercat_slave_c28x_hal.h 头文件。

    2. TI 不提供 xml ENI 文件、而是提供 TwinCAT 无法识别的 bin 文件、因此我仍然无法相应地写入 EEPROM。

    3.您是否对有关 EtherCAT 实现的新"教程"的发布有任何更新?

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

    Stamatis、

    1..如果我在预选中回答正确,则您提到的头文件只会到达第158行,即 您所说的 ethercat_slave_c28x_hal.h 头文件。

    在上面、很抱歉、我应该提到从网络下载最新软件(http://www.ti.com/tool/tidm-delfino-ethercat )、软件将在2017年6月更新。  

    [引用 user="Stamatis athinioti"] TI 不提供 xml ENI 文件,而是提供 TwinCAT 无法识别的 bin 文件,因此我仍然无法相应地写入 EEPROM。

    在上面、在当前版本中、不支持 EtherCAT 从站协议栈、也不支持 EtherCAT 从站应用配置文件。 因此没有 ENI 文件。 即将推出的2017年10月版将提供所有这些功能。  

    提供的文档在第2.4节、图24和图25中展示了如何对 EEPROM 进行编程。 单击浏览后、在浏览窗口中指向 PDI 端口的二进制文件。

    [引用 USER="Stamatis athinioti"]您是否对有关 EtherCAT 实现的新"教程"的发布有任何更新?

    是的、计划于2017年10月发布。 我们将为客户提供附属软件、以便使用 SSC 工具(来自 ETG 网站)生成 EtherCAT 从站堆栈源和示例演示应用源。  这将作为 controlSUITE 更新进行规划。

    希望这对您有所帮助。

    此致

    Santosh Athuru

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

    感谢您的立即答复以及对我提出的每一个问题的热情回答。 我衷心感谢你的工作。

    1)"在上面、在当前版本中不支持 EtherCAT 从站协议栈、也不支持 EtherCAT 从站应用配置文件。 因此没有 ENI 文件。 即将推出的2017年10月版将提供所有这些功能。"

    因此、如果我想按照已经给出的教程来查看存储器的寄存器、我肯定需要 ENI 文件(它有精确的文档记录)。 根据您的说法、我必须推断、目前我无法从 C28x MCU 评估 PDI、无法访问 ET1100 ESC 寄存器和 RAM、因为未提供 xml 文件。   那么、上述步骤无法执行、教程不完整、我必须等待下一个版本才能评估 PDI?

    谢谢你

    Athiniotis Stamatis

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

    如果您在左侧窗格中查找蓝色选项、我相信屏幕截图会令人困惑。 请按照步骤3中提到的文本进行操作,其中提到,单击浏览(在快照中显示的窗口中),然后从下载的 SW/MASTER_FILES 目录中选择相应的 EEPROM 文件。


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

      

    这正是我一直在尝试做的事情、但无论我做什么、结果都显示在下面的屏幕截图中

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

    Athiniotis、

    您在上面的屏幕中看到的错误是正常的。 这是因为您尚未在 MCU 上运行 EtherCAT 从站堆栈。 您在 ESC 上编程的 EEPROM 文件的目的只是为了启用 PDI 接口。 PDI HAL API 测试应用程序现在可以使用提供的 HAL 访问 ESC 存储器。 PDI HAL API 测试未运行任何 EtherCAT 堆栈、因此 EtherCAT 主站将无法通过状态机将从节点置于 OP 状态。

    对 EEPROM 进行编程后、请按照第4.1节测试 PDI 接口访问。

    如果您担心检查 EEPROM 是否正确编程、则可以通过从 TwinCAT 本身读取 EEPROM 来进行检查。

    此致

    Santosh Athuru

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

     

    您意味着 EEPROM 现在已正确写入 ESC? "框1 (P00000002 R03160002)"的符号是否正确? 由于根据智能视图窗口(步骤2.4.4)、应具有所示的属性、而在我的情况下、当我浏览并微调用于 SPI 通信的相应 bin 文件并单击该文件时、智能视图窗口将保持为空。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Stamatis、
    是的。 应正确对 EEPROM 进行编程。 框1名称会显示为这样的名称、因为使用 TwinCAT 的此从站没有 ESI 文件。

    单击"Read E2PROM (读取 E2PROM)"按钮后会填充智能视图窗口。 写入时不会自动填充。

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

    您好 

    我按照您的说明操作、直到代码中描述的部分在下图中、红斑工作正常。 看起来 pdicontrol 没有更新、寄存器 ii 达到值0x100、然后函数 ESC_signalFail 被触发。 因此没有寄存器更新。 您是否知道这种情况的原因? 我是否在硬件方面出了任何问题? 唯一连接的引脚为:  

    • EEPROM 已加载
    • SPI_SEL
    • SPI_CLK
    • SPI_INT
    • SPI_DO
    • SPI_DI
    • 和5V 电源

    谢谢你

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

    您好、  

    我还尝试取消注释与 Slave_Select 引脚相关的行、以防它引起问题、但遗憾的是、堆栈提供错误、并且无法访问上述寄存器。 你有其他建议吗?

    Athiniotis Stamatis

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

    Stamatis、

    您能否验证 SPI 工作是否正常? 您是否必须更新代码以查看软件使用的 SPI 信号是否与硬件中连接的信号相同? 在使用 ESC 执行任何操作之前、必须正确读取 PDI 控件。 PDI 控制器读数为零表示 SPI 读取不起作用、因此您应该调试 SPI。

    此致

    Santosh Athuru

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

     

    SPI 的硬件连接如下:

    EEPROM_LOADED -> GPIO20 =引脚34 (Launchpad)

    SPI_SEL -> GPIO19 =引脚75 (Launchpad)

    SPI_INT -> GPIO78 =引脚11 (Launchpad)

    SPI_D_I (MOSI)-> GPIO58 =引脚15 (Launchpad)

    SPI_D_o (MISO)-> GPIO59 =引脚14 (Launchpad)

    SPI_CLK -> GPIO60 =引脚7 (Launchpad)

    GND ->引脚1、10、19、28、37、 ESC 的46

    5V (电源)-> ESC 的引脚47和49

    从堆栈和 pdf 中、我看到这些引脚是建立通信所需的唯一引脚。 缺少什么关键吗?

    此致

    Athiniotis Stamatis

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

    此外、

    我是否必须连接 GPIO61或更改工程堆栈才能正常工作?

    Athiniotis Stamatis

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Stamatis、
    我们将很快向网络发布基于堆栈的示例和解决方案项目以及硬件套件。 我一直很忙。

    我们计划返回到您的测试设置、并在我们完成发布后帮助进行调试、主要将 FB1111 SPI 板连接到 LaunchPad。 从初始审阅中、信号看起来正常、如果您已正确编程 SPI EEPROM 二进制配置、那么它应该起作用、我还将尝试使用 FB1111 SPI 板进行测试并告知您。

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

    Santosh Athuru 先生、您好!

    我对这一新项目非常感兴趣、非常渴望、您的有限时间完全可以理解。 期待新版本的发布、希望它适用于我的已有硬件。

    此致

    Athiniotis Stamatis

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好 Stamatis、
    据我所知、新软件适用于可从 TI 订购的 EtherCAT 套件、上线后、我将使用网络链接向您更新。 我建议您订购套件并了解硬件/软件、您应该能够以最少的工作量将软件移至您的硬件、并且让 TI 的套件与您一起帮助我们指导您的调试。


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

    新的 EtherCAT 套件网页现已上线、controlSUITE 更新后、您可以获取该套件的新软件支持。

    www.ti.com/.../tmdsecatcncd379d

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

    Santosh Arthuru 先生、您好!
    1)感谢您告知我。 我已经订购了我计划在我的应用中使用的双核 LaunchPad (Launchxl F28379d)、但与此同时、我想在我已经购买的 Launchxl F28377s 中测试该项目。 是否可以在没有重大改动的情况下这样做?  

    谢谢你

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Stamatis、
    我建议您至少订购一个 TMDSECATCNCD379D 套件、以便您参考。

    应该可以针对您的硬件调整和使用为 TMDSECATCNCD379D 提供的软件。 请参阅 www.ti.com/.../spruif9.pdf 的第4.1.2节

    为 TMDSECATCCND379D 提供的演示二进制文件将不适用于 LaunchPad、但 PDI HAL API 测试(不支持堆栈)和解决方案参考项目(www.ti.com/.../spruig9.pdf) (允许用户进行堆栈级评估/构建)可被修改并用于 LAUNCHPAD。 只需按照 www.ti.com/.../spruig9.pdf 用户指南中的步骤操作、并根据需要启用 SPI 端口来构建项目、启用的默认 SPI 端口为 SPI C。交叉检查项目中的 SPI 信号和您的硬件是否相同。


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

    桑托斯胡先生

    我已经按照参考解决方案中描述的步骤完成了您提到的建议。

    1) 1)在预定义变量中、我从 SPI C 更改为 LaunchPad 中提供的 SPI B

    2) 2)连接的引脚为:

    • 已加载 EEPROM ->GPIO20 (更改了代码)
    • SPI_INT  -> GPIO78 (更改了代码)  
    • SYNC0 -> GPIO62 (更改了代码)  
    • SYNC1 -> GPIO4 (更改了代码)  
      • ESC_RESET1100_GPIO ->未连接、因为我的 ESC (FB1111 0141)不提供复位引脚(此引脚是否会引起误差?)
    • SPI_SEL B -> GPIO66
    • SPI_CLK B -> GPIO65  
    • SPI_DO B -> GPIO64
    • SPI_DI B -> GPIO63
    • 和5V 电源

    谢谢你

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

    那么、它现在起作用了吗? 另外要检查的是 EEPROM 配置(前15个字节),我不确定,但 TI ESC 板的配置和 FB1111 0141板的配置可能不同? 您能否查看任何有效的 FB1111 0141示例/设置并使用相同的值、而不是 SPI 版本的 TI 示例 ESI 文件提供的值?

    最好检查一下它们为什么不同?


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

    遗憾的是、没有它不起作用、

    1)我单步进入代码、它会在以下 DO 循环中停止代码、我无法理解原因。

    2) 2) EEPROM 配置看起来不错、由于我的 ESC 具有相同的处理器 ET1100、我认为它不需要任何更改、但我会将其签出。 TI 是否为其 ESC 提供任何手册?

    谢谢你

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    TI 提供的 TMDSECATCNCD379D 参考套件使用 ET1100 ESC、因此您只需参考 ET1100 ESC 即可。
    www.ti.com/.../spruif9.pdf 的第3.5节 介绍了我们使用电路板在 SPI 模式3下工作的 EEPROM 配置值。 您能否使用有效的 FB1111电路板值对其进行交叉验证?

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

    您好、再说一次、

    1)使用 Beckhoff 为 ET1100 ESC 提供的 xls 文档(FB1111与您的开发套件具有相同的 ESC)并输入 SPI PDI 参考指南中列出的参数、 产生的配置十六进制代码为0x050E03CC0A000000、而在为您的套件提供的 Config.xml 中、配置十六进制代码为0x050E03EE409C00000000、尽管它应该是相同的、因为我们将引用相同的 ESC。 此外、我注意到随附的 xls 文档和参考指南之间的 ESC 寄存器地址存在一些不一致性(请参阅随附的屏幕截图)。

    2)您认为我在前面的评论中提到的连接引脚中有任何错误吗?

    3)您是否知道为什么程序在上一个问题中提到的特定 DO 循环处停止。

    感谢 youe2e.ti.com/.../et1100_5F00_configuration_5F00_and_5F00_pinout_5F00_v4.6.xls

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

    您好、Santosh 先生、

    如上一篇文章中所述、我更改了配置十六进制代码并生成了新的 sack、现在代码不会在上述 DO 循环中停止。 实际上、它看起来工作得非常好。 但是、ESC 仍处于初始化状态、不会切换到 OP 状态、因此即使我"在线写入" LED、开关的状态也不会改变。 您知道会发生什么错误吗? MainLoop 函数()现在一直在运行。

    谢谢你

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

    您好 Stamatis、

    感谢您的更新。 那么、您现在正在为配置更新十六进制代码后运行解决方案参考项目或 PDI HAL API 测试?

    此致
    Santosh Athuru

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

    您好、再说一次、

    1)我正在运行解决方案参考项目,但它不会切换到操作模式,但它会反复执行 MainLoop ()函数。 我是否需要在已产生的堆栈中进行更多更改才能使其正常运行?

    2)我注意到,在生成栈的 SSC 项目中,虽然 TMS320F2837x 属于32位微控制器系列处理器,但16位微控制器寄存器却被置位。 您如何解释这一事实?

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

    #1> mainLoop ()将保持运行并检查栈状态转换请求和其他内部维护。 运行 MainLoop 并不意味着堆栈将正常运行。 是否尝试手动将从节点置于状态机转换? 如果是、从节点是进入预操作还是安全操作? 您在这里看到了什么误差? 您能否检查 ESC 上的 PDI 错误计数器寄存器和其他错误计数器寄存器、以查看是否需要调试 PDI?

    2>28x MCU 上可寻址的最小数据单元为16位。 这意味着一个字节也是16位、并且每个地址指向存储器中的一个16位。

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

    您好、再说一次、

    1) 1)当您说"手动将从节点置于状态机转换"时、您是说通过 TwinCAT? 因为如果你这么说、我已经尝试过几次、同一错误仍然在发生:

    错误1 2017年10月17日06:48:04 174 ms |'框1 (TMDSECATCNCD379D EtherCA)'(1001):'init to PREOP' failed! 错误:"检查器件状态是否为 PREOP"。 预期 AL 状态'0x0001'和'0x0002'。 AL 状态代码'0x001e - cfg 中的 SM 无效'
    错误2 2017年10月17日06:43:39 368 ms |'框1 (TMDSECATCNCD379D EtherCA)'(1001):状态更改中止(请求的'PREOP'、返回'init')。

    2)"您能否检查 ESC 上的 PDI 错误计数器寄存器和其他错误计数器寄存器以查看是否需要调试 PDI"我正在尝试调试 PDI、我可以推断、它不接收任何输出、ALEvent 寄存器保持为0。

    3)是、但 SSC 工具"询问"主机微控制器是16位还是32位架构、而不是可由 uC 寻址的最小数据单元。

    4) 4)堆栈中还有一个名为 SWAPWORD()的函数、该函数不执行任何操作、会不断跳过、因为在整个代码中没有任何对其的定义。 它是否由 SSC 工具自动产生?

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

    此外(在 PDI_hal_test 中、它仍然无法正常工作)、

    我注意到它停止的部件如下:

    虽然第一次读取和写入成功执行并且 DTest_data 变为0xBAADF00D。 然而在第二次写入和读取中没有正确执行并且 DTest_data doe 不会变为0x00000000、所以代码停止并永久执行 ESC_signalFail ()函数。

    您是否知道问题的根源是什么? 因为这可能表示导致参考指南项目中错误的原因。

    谢谢你

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

    这表明 SPI 端口存在问题、可能发生故障。 请进一步调试 SPI、您可能必须对信号进行范围控制并检查时序。

    此致

    Santosh Athuru

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

    您好、再说一次、

    今天、我收到了 Launchxl F28379D 并更改为配置 SPI C、这是所提供项目的原始配置(参考项目)

    单步执行代码、我注意到 SSC 配置和 SPI 初始化之间存在另一个不一致。 实际上、在 SSC 中、选择了产生的十六进制代码(参考设计 pdf 中也提到了该代码) SPI 模式3、该模式通常转换为 CLKPOL=1 & CLK_PHASE_=1

      

    然而在 ESC_initSPIFIFO ()内部、它是针对 CLKPOLARITY = 1和 CLK_PHASE_0 (非模式3)编写的

    是否应该  为:SpixRegs->SPICTL.bit.CLK_PHASE = 1; 以匹配 SSC 工具的类似配置?  

    谢谢!

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

    此外、

    u16PdiCtrl 寄存器保持65535、如图所示、并且不会像以前那样变为0x05。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    现在我感到困惑了。 我想您说过您已经过 PID 控制读取阶段,并且处于 mainloop()中?

    您是否能够订购 TMDSECATCCND379D 套件? 如果您有一些工作要与您的电路板进行比较、这将会有所帮助。
    那么、使用新的 LaunchXL 板、您如何连接 FB1111板? FB1111板位于哪些连接器上?

    您可以根据您的硬件/文档更改时钟极性和相位、我尚未使用 FB1111 SPI 端口对 F28379xD 进行过多测试、但我已经使用我们的 ET1100板多次测试了 SPI 访问、提供的参考代码有效。 用户可以根据其硬件设计根据需要对其进行修改。


    您现在有两个硬件平台、您正在尝试使用它们吗?
    1.>具有 FB1111 SPI 板的 F2837xS Launchpad (在 Launchpad 上使用 J1、J2、J3、J4接头)?
    2.>F2837xD LAUNCHXL 与 FB1111 SPI 板(在 Launchpad 上使用 J1、J2、J3、J4接头)?


    此致
    Santosh Athuru
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    此外、请查看此论坛帖子
    e2e.ti.com/.../631455
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Santosh 先生、

    我要为这件事负责,抱歉,我现在将努力澄清一切。  

    1)对于我之前的电路板(launchxl f28377s)、实际上、我已经经历 了 PDI 控制读取阶段、并且处于 mainloop()中、但 ESC 没有变为运行状态。 但是、借助我今天获得的新电路板(launchxl F28379D)、我尝试了 SPI A 和 SPI C (更改了连接的引脚和预定义的符号以匹配)、但我无法通过 PDI 控制阶段。 如前所述,寄存器 u16PdiCtrl 保持65535 (0xFFFF),不会进入 main loop()。 在这两种情况下、我都是指参考指南项目-

    2) 2)在两种情况下、FB1111-0141 SPI 都用作 ESC (正如我之前所说、它具有 ET1100、因此我的 ESC 和 ESC 的配置必须相同)。 事实上、现在我已经收购了新电路板(launchxl F28379D)、我将重点介绍这款特定的硬件、因为这正是我打算在最终应用中使用的硬件。

    3)没有、我没有订购您提到的套件、因为我认为相同的配置应该适用于我的应用、因为我们处理的是完全相同的处理器(TMS320F28379D)、当然、ESC 也具有相同的处理器。

    4)您已经使用 SPI 模式3和代码中提供的初始化(CLKPOLARITY = 1和 CLK_PHASE_= 0 (非模式3)测试了 ET1100 、它是否正常工作?

    5)我尝试对信号进行示波、但 SPI 的时钟为100MHz、我的 saleaL8未对其进行示波。 我是否应该减小时钟频率以进行测试?

    谢谢你

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我认为 SPI 的频率为20MHz、是的、TMDSECATCCND379D 套件附带的软件适用于 SPI 和 EMIF。 尽管它是相同的 ET1100、但 EEPROM 配置可能会有所不同、有其他论坛用户在 EMIF 上使用不同极性的 BUSY 信号、调试过程需要一段时间。 因此、最好查看您的原理图和我们的原理图之间的差异。

    对于您的#4>是、您可以验证您是否拥有套件。 此时、我们没有足够的时间来复制带 LAUNCHPADXL 的 FB1111电路板的设置、但最好是获取套件并试用。 该套件中的 EtherCAT 子卡适配器也可与 F28379D LAUNCHXL 搭配使用、并且可通过一些微小的软件修改(SPI 端口选项)让软件在 Launch Pad 环境中工作。

    对于您正在进行的评估级别、如果您有几个 TMDSECATCNCD379D 套件、它无疑将有助于缩短您的开发周期。

    希望这对您有所帮助。

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

    您好、再说一次、

    我在尝试访问0x0140地址时限定了 SPI 的信号范围、以阐明是否存在正确的 PDI。 SPI 配置正确。 此外、正如我之前提到的、在您的配置中、可以清楚地看到使用了 SPI 模式3。 但是,在 SPIInit()函数中,它的声明是不同的。 在我的代码中、我尝试了您的和我的 CLKPOL 和 CLKPHASE、但两者都未按预期工作。

    范围内的信号(除 SOMI 外)为

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

    此外、在示例中提供的十六进制代码中、对应于 SYNC0和 SYNC1脉冲的推挽高电平有效配置、而在上图 中、这两个引脚都被称为推挽低电平有效。 以下哪一项是预期的配置?

    谢谢你

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

    您好、再说一次、

    EtherCAT 终于开始使用我的硬件了。 具有以下 SPI 配置(来自提供的堆栈的原始配置)

    SpixRegs->SPICCR.bit.CLKPOLARITY = 1;//上升沿

    SpixRegs->SPICTL.bit.CLK_PHASE = 1;  //添加 Clk wrt SPISTEA 的1/2周期延迟

    并更改 GPIO、以便与我的 Launchpad 兼容

    ESC_RESET_ET1100_GPIO 未连接到我的 ESC 中、因此我编写了该代码

    #define ESC_RESET1100_GPIO      136 //不在 FB1111-0141 ESC 中!!

     

    感谢您的支持

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

    Stamatis、

    感谢您发布解决方案。 如果您有任何疑问、请使用论坛。  

    此致

    Santosh Athuru

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

    Statimatis、

    同步配置由用户决定、用户可以选择 ESC 支持的任何内容。 参考示例设置为使用高电平有效、如果您查看源代码、则相应地设置 C2000 MCU 中断检测。  文档中的功能描述中包含了更多的 EEPROM 字节、我们将其放在那里供用户更好地理解、它可能不一定与参考示例一对一匹配。

    此致
    Santosh Athuru