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/AM5728:TX FIFO 的 PRU 以太网问题

Guru**** 2560390 points
Other Parts Discussed in Thread: AM5728

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/615135/ccs-am5728-pru-ethernet-issue-with-tx-fifo

器件型号:AM5728

工具/软件:Code Composer Studio

您好!

我正在 PRU 上实施以太网协议。 我已经能够发送数据包。 我使用 CSS7中的 C 编译器。  我将 TI IDK 与 AM5728搭配使用。

为了发送数据包、我将数据和 CRC 推入 TX FIFO、然后从相应的 MII 中将 TX_ENABLE 置为有效。 我不使用„32位数据推送模式”。

现在我的问题是:

当我读取 TX-FIFO 水平时、每次我使用来自 R31的16位推送命令(如果我使用8位推送、则为2)、我看到它增加了4。

该寄存器(PRUSS_MII_RT_TXFLV1)始终显示我加载到其中的字节的双倍数量。

作为接收器、我使用 Linux 笔记本电脑和 Wireshark。 数据包被完整接收。

那么、TX-FIFO 级别是如何解释的? 是半字节? 我知道 TRM 会显示其字节。 或者是否有其他误差来源?


另外、在 C 语言中使用„32位数据推送模式"会很有意思。这里的问题是如何保证在一个周期内将4字节或2字节或1字节写入 R30。


我的初始化序列是:

   MII_RT.GET_PRU_REG_BIT (TXCFG).TX_CLK_DELAY        = 0x6;  

   MII_RT.GET_PRU_REG_BIT (TXCFG).TX_START_DELAY      = 0x40;

   MII_RT.GET_PRU_REG_BIT (TXCFG).TX_32_MODE_EN       = 0x0;    

   MII_RT.GET_PRU_REG_BIT (TXCFG).TX_AUTO_SEQUENCE    = 0x0;    

   MII_RT.GET_PRU_REG_BIT (TXCFG).TX_MUX_SEL          = 0x1;

   MII_RT.GET_PRU_REG_BIT (TXCFG).TX_BYTE_SWAP        = 0x0;

   MII_RT.GET_PRU_REG_BIT (TXCFG).TX_EN_MODE          = 0x0;    

   MII_RT.GET_PRU_REG_BIT (TXCFG).TX_AUTO_PREAMBLE    = 0x1;

要推送数据、请执行以下操作:
       _R30 = DATA_16 | TXMASK;
       _R31 = MII_TX_PUSH16;
R31处于 MII 模式。

我使用 CSS 和 XDS100检查了硬件寄存器。


此致

赫尔曼

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    软件团队已收到通知。 他们将在这里作出回应。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Hermann、

    >>如何解释 TX-FIFO 级别? 是半字节? 我知道 TRM 会显示其字节。 或者是否有其他误差来源?

    SPRUHZ6I ( )显示了它的字节、但也列出了1 = 1半字节、2 = 1字节/ 2半字节... 它是否符合您的观察结果?

    TX_FIFO_LEVEL 定义 TX FIFO 中有效字节的数量

    0 =空

    1 = 1半字节

    2 = 1字节/ 2半字节

    (笑声)

    128 = 64字节/128半字节

    (笑声)

    192 = 96字节/ 192半字节

    此致、Garrett

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    是的、我观察到的所有内容都指向显示的值是 FIFO 中的半字节的方向。 因此,列名是正确的。 我认为 TRM 有点含糊。