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.

[参考译文] TMS320F2.8386万D:EMAC:接收缓冲器中的附加字词

Guru**** 2459310 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1081578/tms320f28386d-emac-additional-words-in-reception-buffer

部件号:TMS320F2.8386万D

您好,

我成功地在以太网上实现了数据接收,而不会中断使用,但我遇到了一些我不理解的事情。

对于接收,我已将EMAC配置为在存储和转发模式下工作。

我正在发送68字节的数据包,由于内部回送,我成功地接收了这些数据包。

RDES3以写回格式告诉我收到了72个字节(我假定68个字节+ FCS)。

但是,当我进入我的接收缓冲区时,它中还有两个额外的单词,你可以从下面的屏幕截图中看到:

这对我来说并不正常,但我没有解释。

此致,
克莱门特

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

    您好,

    如果能就此问题得到答复,我将不胜感激。

    谢谢!

    克莱门特

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

    克莱门特

    很抱歉,我目前 不在办公室,因此无法回复您的邮件。   将在本周中查看,

    同时,请告诉我,在收到数据后,您的RDES3值中的值是多少?

    此致

    Siddharth

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

    你好Siddharth:

    哦,没问题。

    RDES3包含 0x3001.0048万 ,看起来非常好。

    我今天上午进行了一些调查:

    • 如果我将数据包大小更改为72字节+ FCS,我还有一个32位的单词(似乎是重复两次的FCS)
    • 如果我将数据包大小更改为76字节+ FCS,则没有其他单词
    • 如果我将数据包大小更改为80字节+ FCS,则没有其他单词
    • 如果我将数据包大小更改为84字节+ FCS,我有另外两个32位的单词(似乎是重复两次的前一次DMA传输的最后32位单词)
    • 如果我将RX DMA最大脉冲长度更改为1 (而不是4),则在任何情况下都没有额外的32位字。

    因此,这似乎与以下事实有关:如果数据包长度+ FCS与突发长度不符,则会添加额外的词语。 这似乎没有记录,错误或正常行为?

    我的结论是,如果:

    • 数据包大小为一个32位字,小于突发长度的倍数(但是FCS的突发长度的倍数)
    • 数据包大小是突发长度的倍数(不包括FCS)

    希望它有所帮助,

    克莱门特

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

    所以我仍然遇到这个问题。

    我发送了每封私人邮件的CCS项目导出。

    克莱门特

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

    您好,

    有没有关于这个主题的新闻?

    此致,

    克莱门特

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

    克莱门特  

    我能够再现您所看到的行为。   

    目前,您可以使用 RDES3 值来获取接收的字节数。

    此致

    Siddharth

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

    Siddharth,

    因为DMA超出了允许的内存,所以如果我有在接收缓冲区后开始的变量,其值将被覆盖,那么建议不要将DMA_Ch0_RX_Control寄存器中的RXPBL字段设置为1?

    如果我的理解是正确的,这是外围设备中的一个错误?

    此致,

    克莱门特

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

    克莱门特  

    在与IP集成团队讨论此主题后,发现必须将DMA突发长度(RxPBL)配置为1才能使其工作。  

    此行为将作为勘误表记录。

    此致

    Siddharth