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.

[参考译文] DP83867E:DP83867E 似乎会丢失每个 MAC 帧的最后一个 CRC 半字节

Guru**** 2797805 points

Other Parts Discussed in Thread: DP83867E

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

https://e2e.ti.com/support/interface-group/interface/f/interface-forum/798572/dp83867e-dp83867e-seems-loss-the-last-crc-nibble-of-every-mac-frame

器件型号:DP83867E

我发现、在由2块 DP83867E 电路板组成的实验中、DP83867E 可能会丢失 MAC 帧的最后一个 CRC 半字节。 每个电路板都有一个 PHY 和一个 Spartan-6 FPGA、一个电路板发送数据、另一个电路板接收数据。 我使用 ChipScope 调试接收板 FPGA、并获得所附图片。还随附了原理图以供参考。

MAC 帧长度为1260字节、包括前导码和 CRC 字节。 因此,半字节总数为2520,十六进制为0x9D8。 但我们可以从图中看到半字节计数器 MAC_cnt 在0x9D7停止、显示最后一个半字节丢失。 从图片中可以得到的第二个证据是计算出的 CRC32_DATA 为0x13821EA7、该数据应以0x3128E17A 的形式在每个字节中反向半字节传输。 RX_DATA 的最后7个半字节为0x3128E17、并且结束半字节 A 丢失。

我想、由于硬件原因、我的 DP83867E 无法在很好的条件下工作、以至于最后一个半字节很容易丢失。任何人都知道最后一个半字节很容易丢失的情况是什么?

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

    几件事:

    1.我看了磁力。 DP83867需要磁性元件、但没有中间抽头短接。 对于您的实验、您能否尝试删除寄存器 R642并尝试情况是否有所改善。
    2.在 RGMII 接口上,是否已根据规格要求调整了数据和时钟的偏差?

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

    您好,Geet、

      1.中心抽头短接已作为附加图片删除。

     2. PHY 在100MBase-T 上工作、设置了 SMI、接口为 RMII。 是否仍应调整偏斜?

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

    链路应采用1000Base-T 模式。 您应查看用于链接速度的寄存器0x0011:位15、14。

    在1000M 中有链路但仍具有较低速度的数据传输时、RGMII 偏斜调整将会有所帮助。


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

    您好!

     我确实需要在100Base-T 模式下工作的 PHY、并且我已经使用 SMI 接口对其进行了设置。 您能给我关于 最后一个丢失的半字节的建议吗?

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

    接下来、我建议尝试使用 MAC 环回和反向环回来隔离 MAC 接口或 MDI (线路接口)上的问题。



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

    我要关闭此主题。 如果您需要进一步的帮助、请打开新主题并提供对此主题的引用。

    此致、
    GET
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    大家好,我把寄存器0x86的值设为0x0000,最后一个半字节不再丢失。 我认为是由 TX_DELAY 造成误差的。 我可以在数据表中看到1000Base-TX 的经销商值。 您知道如何了解100Base-T 的延迟值吗?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    相同的延迟值适用。 然而,在100M 时钟速度较低,因此限制更小。

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

    我要关闭此主题。 如果您有进一步的疑问、请打开新主题并提供对此主题的引用。

    此致、
    GET