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.

[参考译文] AM2432:何时可能驱动 ECAT PDI 信号缺失

Guru**** 2526310 points
Other Parts Discussed in Thread: AM2432

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1540325/am2432-when-could-drive-miss-ecat-pdi-signal

器件型号:AM2432


工具/软件:

尊敬的 TI 专家:

我们在应用中遇到了随机数据包丢失现象。  我们在正常情况下检查了 PDI 和 SYNC0 到达时间、并检查了数据包丢失情况。 我们发现、在正常情况下、PDI 在 SYNC0 之前大约为 90us、这是一种很好的情况。 但当发生数据包丢失时、PDI 在一个周期内丢失。 *周期时间 4 毫秒。

以下是 Sync0 时间 — PDI 到达时间的记录。 您可以看到、发生问题时、时间差会增大 4000us。 这意味着未触发一个周期的 PDI。

我们想知道何时会发生此现象(PDI 未到达)? 我们确信这不是 MC 问题,因为其他奴隶不会同时面临这个问题。

我们当前的实施使用了 Sync 0 和 PDI 中断。 此外、我们还有一个循环中断、对于 SYNC 0 和 PDI、其优先级都更高。

我们怀疑循环中断中的某些操作 会清除 PDI ISR 标志。 是否有一些 ECAT 寄存器可以反映 PDI 是否物理到达

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

    发生数据包丢失时、不能发生 SM 写入中断? 因此、依赖于 AL 事件请求和 AL 事件屏蔽配置的 PDI ISR 不会置为有效。 这是 ESC 的预期行为

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

    您好 Pratheesh、

    我们遇到的问题是、当驱动器检测到帧丢失时、由于 PDI_ISR 未触发。 但是、 在故障驱动器之后、检测到的驱动器较少。  

    如果问题是由物理层引起的、例如 CRC 错误、则所有这些错误都应该检测到相同数量的帧丢失、并且与 RX 错误计数器寄存器 (ESC 寄存器 0x300:0x301 和 0x302:0x303) 相同。  

    网络中有 170 多个节点。 9 个驱动器连接到一个扩展器的一个端口、第一个是 XMC4800、它未检测到帧丢失、其余是 AM2432。 第一个 AM2432 检测到 25 个帧丢失、第二个是 27、...、最后一个是 5。

    对于 RX 错误计数器、第一个驱动器的输入端口为 11、输出端口为 0。 对于其余驱动器、 输入和输出端口的 RX 计数器都为 0。  

    在客户一侧的另一个端口中、RX 错误计数器始终一致、前 10 个驱动器(所有驱动器均为 INOVANCE)为 7(输入端口)、54(输出端口)。 第 11 个驱动器检测到 来自无法识别的供应商的进/出 0 错误。 它旁边的驱动器检测到输入端口 54 错误、输出为 7 错误。   

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

    您好、建宇:

    我是否可以知道 PRU 内核时钟和 IEP 时钟的运行频率?

    我们将从一侧检查相同的配置并查看行为。  

    此致、
    Aaron

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

    嗨、Aaron

     PRU 内核时钟 为 200MHz

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

    感谢你的评分 我将检查如何在我们这边进行测试并了解行为。  

    此致、
    Aaron

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

    您好、

    是否有一些 ECAT 寄存器可以反映 PDI 是否物理到达

    很抱歉、我之前错过了此查询。 您可以将 PDI ISR 输出映射到外部 SOC 引脚(通过 4 个 PRU-ICSS 数字输出之一):

    1. 对 0x0E0A 供应商特定寄存器进行编程、以便在 4 个引脚之一之间进行选择。 例如、如果要将 PDI ISR 输出映射到 PRG1_IEP0_EDIO_DATA_IN_OUT31、请在寄存器中写入 0x80。 0x40、0x20 或 0x10(如果您希望分别映射到 PRG1_IEP0_EDIO_DATA_IN_OUT30、PRG1_IEP0_EDIO_DATA_IN_OUT29 和 PRG1_IEP0_EDIO_DATA_IN_OUT28)   。
    2. 将相应的 EDIO 引脚映射到 SYSCFG 中可用的外部 GPIO 引脚:

    还有几个问题:

    1. 在整个通信周期中观察到这种行为的频率如何?  
    2. 您使用哪个 EtherCAT 主设备进行测试?

    我通过物理引脚和软件侧检查它。 我们会尽快回复您。

    此致、
    Aaron

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    在网络中、有 170 多个节点。 9 个驱动器连接到一个扩展器的一个端口、第一个是 XMC4800、它未检测到帧丢失、其余是 AM2432。 第一个 AM2432 检测到 25 个帧丢失、第二个是 27、...、最后一个是 5。

    是否有可以跟踪 CRC 错误的工具提供帧捕获?

    第一个 AM2432 检测到 25 帧丢失、第二个是 27、...、最后一个是 5。

    您还能分享这些错误如何映射到 0x300:0x303