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.

[参考译文] TIDM-Delfino-EtherCAT:EMIF CAN#39;t START。 SPI 工作正常。

Guru**** 2589280 points
Other Parts Discussed in Thread: CONTROLSUITE

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/663138/tidm-delfino-ethercat-emif-can-t-start-spi-works-fine

器件型号:TIDM-Delfino-EtherCAT
Thread 中讨论的其他器件:TMDSECATCNCD379DcontrolSUITE

大家好。

我很高兴在 F28379D 修订版1.1 Launchpad 上运行了一个示例、其中包含 来自 TMDSECATCNCD379D_EtherCAT_Solution_Ref 的 EtherCAT 通信 我在 ET1100和 uC 之间使用了 SPI、通信正常。 我做的下一步是准备项目以使用 EMIF 运行相同的示例、通信不起作用。 我使用 SSC 的 ESI 文件刷写了 EEPROM、该文件为异步通信做好了准备。 有趣的是,我可以使用 ESC_debugUpdateESCRegLogs()读取 ET1100内存,读数看起来不错。

有什么想法我做了什么错?

BR。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Dawid、
    您能否确保在 SW 和 HW 中正确配置 EMIF 信号? 您能否告诉我、如果您使用 EMIF1或 EMIF2、您正在构建 controlSUITE 中的哪个项目、以及构建配置是什么? 还要检查是否正确启用了 PDI 中断、并在 CCS 项目中检查是否有任何用于使用堆栈构建 HAL 的宏?

    当你说它不起作用时-这到底意味着什么? 是否无法从主设备识别该节点? 节点是否未进入 OP 模式?

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

    Santosh、

    我正在使用 controlSUITE 中的项目- TMDSECATCND379D_V1.0、项目名称:TMDSECATCNCD379D_EtherCAT_Reference。 我正在使用构建配置 NO 2 (EMIF RAM)和 EMIF1。 我的项目中的宏如下所示:

    我说沟通不起作用。 我的意思是、我可以在 TwinCAT 中看到从节点(我也可以刷写 EEPROM)、但它无法进入 OP 状态。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Dawid、
    您能否通过在 HAL 的 ISR 处理程序中放置一个断点来检查您是否要执行 PDI ISR? 这是否与其他线程中的忙状态有关? 将代码迁移到 Launchpad 时、除了 EMIF 信号外、还需要检查 SYNC /LATCHand PDI ISR 信号(IO)。 查看软件和硬件是否都使用相同的 IO?

    此致
    Santosh Athuru
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Santosh、
    我将在星期一的实验室中检查 PDI ISR。 本主题与其他线程的忙状态有关、因为在另一个线程中、我看到通过将 EMIF 状态从高电平有效更改为低电平有效来解决 EMIF 问题。 因此、我可以在我的应用中检查它。

    您写道:"将代码迁移到 Launchpad 时、除了 EMIF 信号外、还需要检查同步/LATCHand PDI ISR 信号(IO)。" -您是要按断点检查 PDI ISR 吗?

    "查看软件和硬件是否都使用相同的 IOS?" -您是指在 TIDM-DELPHINO-EtherCAT 上切换? 如果是这样、当然、我在开关上设置 EMIF、并且我在项目中的预定义符号中设置适当的宏。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Dawid、

    [引用 USER="Dawid Balcertzaka]周一 我将在实验室中查看 PDI ISR。 本主题与其他线程的忙状态有关、因为在另一个线程中、我看到通过将 EMIF 状态从高电平有效更改为低电平有效来解决 EMIF 问题。 因此、我可以在我的应用中检查它。
    [/报价]

    如果您遵循 TI 参考设计和/或使用 TMDSECATCNCD379D 提供的 Hte 原理图,则提供的配置有效。 我相信另一位用户有自己的电路板、该电路板针对忙信号具有不同的工作状态设计。

    [引用 USER="Dawid Balcertzaka]">您写道:"将代码迁移到 Launchpad 时、除了 EMIF 信号外、还需要检查同步/LATCHand PDI ISR 信号(IO)。" -您是要按断点检查 PDI ISR 吗?

    "查看软件和硬件是否都使用相同的 IOS?" -您是指在 TIDM-DELPHINO-EtherCAT 上切换? 如果是这样、当然、我在开关上设置 EMIF、并且我在项目中的预定义符号中设置适当的宏。
    [/报价]

    在上面、是的、即启用 DCX 时的 PDI ISR 以及同步 ISR。 如果持续触发 PDI ISR、则您知道硬件和软件初始化信号良好、否则您必须检查硬件、将哪个 GPIO 路由为 PDI ISR、并为其更改软件。 同步 ISR 也是如此。

    希望这对您有所帮助。

    此致

    Santosh Athuru

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

    Santosh、

    我检查了是否达到 PDI_ISR。 如果我使用 SPI、则点击 PDI_ISR。 如果我使用 EMIF、则不要点击 PDI_ISR。 接下来该怎么办?

    BR。

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

    Dawid、

    在 HW 的 EMIF 配置中、您能否检查用于中断线的 GPIO 是什么? 检查 HAL SW、它很可能配置不同的 GPIO。 您只需更改软件以匹配硬件即可。

    此致

    Santosh Athuru

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

    Santosh、

    我在 HAL SW 中检查了 EMIF 的硬件配置、它看起来不错。 以下屏幕来自我的 CCS 和原理图:

    LaunchPad J9高密度连接器:

    TIDM-DELPHINO_EtherCAT J6高密度连接器:

    正如您在引脚49上看到的、它是 GPIO107、它位于我的以下配置中:

    Santosh、接下来我应该检查什么?

    BR、
    Dawid。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Dawid、
    谢谢、是的。 我看到软件使用 GPIO107、与硬件原理图相同、您提到调试寄存器读取日志正在正确读取寄存器值。

    您能否验证以下功能? 在支持 TMDSECATCNCD379D 的最新软件版本中、我有以下注意事项:GPIO31和 GPIO34在 EMIF1使用和通过/失败信号之间存在冲突。 如果您的代码正在调用此函数,则暂时禁用以下和 ESC_signalFail ()和 ESC_signalPass (),然后尝试? 如果它正常工作、您可以找到另一个用于通过/失败信令的 GPIO、或者只需忽略、因为您有 TwinCAT 主站可以告知从节点出错。

    void ESC_passFailSignalSetup (void)

    //注意:-在使用 EMIF1时不调用此函数是因为存在此函数
    //与 GPIO31和 GPIO34与 EMIF1信号和 LED 发生冲突
    //因此,对于 LAUNCHXL2.0,用户只会知道是否存在错误
    //两个 LED (GPIO31和 GPIO34都为高电平或低电平表示没有错误
    // Launchpad XL 2.0)

    (笑声)
    (笑声)
    (笑声)



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

    Santosh、

    非常感谢您提供下一条建议、但同时我发现了错误原因。 请看一下 GPIO40和 GPIO41。 要在 J9上路由这些信号、必须在1引脚和2引脚上的 J11和 J13金引脚上放置一根跳线。 今天、我看到我只有 J11上有一个跳线... 我也在 J13上放置一根跳线、然后通信已启动。 我非常非常非常的羞愧:)

    再次感谢 Santosh 的帮助、问题得到了解决。

    BR、
    Dawid。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Dawid、
    谢谢。 我在 GPIO40和 GPIO41上看到了跳线、但我错过了它们也是 EMIF 用例的地址线、而不是 I2C。

    很高兴找到了解决方案。

    此致
    Santosh Athuru