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:TX L1 FIFO 未被清空、未启用数据保护

Guru**** 2524550 points


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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1234800/am2432-tx-l1-fifo-is-not-being-emptied-no-data-gets-sended

器件型号:AM2432

您好!

我正在尝试在 PRU 上编写自己的开关实现。 为此、我编写了汇编程序代码来测试通过以太网发送和接收数据。 接收正常、但我无法让 PRU 发送数据。 我使用 L1 FIFO 和 R30/R31接口的两种方式。 在寄存器0x300B 2068中、我可以清楚地看到 FIFO 充满、但永远不会变为空。 我在填充 FIFO 后已尝试手动设置 TX_ENABLE、但 TX_EN 似乎从未被置位。

从参考手册中我了解到、当满足以下条件时会自动设置 TX_EN:

TX L1 FIFO 不为空
2.数据包间隙(IPG)计时器过期
3. RX_DV 至 TX_EN 计时器过期
4. TX_EN 比较计时器过期

据我所知、所有这些要求都得到了满足、所以我不知道 FIFO 为什么没有被清空。

 那么、以下几个问题可能会让我更进一步解决我的问题:

1.向 MII 发送数据的最低要求是什么? 我是否需要发送有效帧、或者0xFF 的一些字节是否仍会被进一步处理? 我是否需要配置 MAC 和 MDIO?

2、如果设置了 RX_DV 或 TX_EN、我可以从哪里读取? 从何处可以看到上面命名的计时器是否已过期?

此外,在我的研究期间,我发现这在参考手册第3261页:

4.11.2.4.1.1.4.1 TX 抢占编程模型
开始新的帧。
1.等待发生 R31.TX_EOF 事件
2.将数据载入 TX L2 FIFO 直到整个帧结束
3。发出 R30.TX_EOF + TX_CRC_HIGH + TX_CRC_LOW

它不应该是 R31而不是 R30?

提前感谢您的回答。

此致

让徒玛丽亚斯

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

    尊敬的 Maruis:

    我们的专家是 OOO 直到下周。 请预计在6月18日前收到回复

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

    该主题有什么更新吗?

    此致、Marius

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

    我对它进行了深入研究、但仍然无法获取 PRU 来发送数据包。 我还在 RxTx 模式下尝试了任务管理器、但除了 TX L2水印事件外、所有 TX 任务都不会生效。 这个任务的运行方式正如预期的那样、但是我想知道为什么 TX S4任务从未被调用、因为在 FIFO 溢出时应该调用此任务、这显然确实如此。 非常感谢您的回答。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我在填充 FIFO 后已尝试设置 TX_ENABLE 手动,但似乎 TX_EN 从未被置位。

    首先要确保 PHY 向 MII 提供 TX_CLK。请注意、在 MII 模式下、TX 信号会交换到相反的端口、这可以通过在 MII_RT TXCFG0/1寄存器中正确配置 MUXSEL 来纠正。