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.

[参考译文] TMS570LC4357:TMS570LC4357:当通道为"ACTIVATE&quot 时、EMAC 驱动程序不得设置 TXHDP;

Guru**** 2468610 points


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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/864463/tms570lc4357-tms570lc4357-emac-driver-must-not-set-txhdp-while-channel-is-active

器件型号:TMS570LC4357

在主题 https://e2e.ti.com/support/microcontrollers/hercules/f/312/p/858377/3188037 中、TI (iding)断言:
  "当 EOQ=1、TXHDP=0并且所有权=0时、发送通道处于非活动状态。  只有在满足这个无效条件时、才可以用一个新的头描述符写入 TXHDP。"

在使用此指南进行进一步测试时、硬件仍会在 MACSTATUS 错误中出现故障。

除了上述状态、我现在还在检查 MACSTATUS_IDEL=1 (位31) http://www.ti.com/lit/ug/spnu563a/spnu563a.pdf#page=1906

确保 MACSTATUS_IDEL=1正常工作、但同样、在设置新的 TXHDP 之前、我正在寻找一个权威声明、说明主机如何知道通道处于非活动状态。

技术参考手册似乎指示这个 MACSTATUS_IDLE 应该在复位后锁存为1、而特性说明了 EMAC 运行期间的位切换。  是否需要 MACSTATUS_IDLE 检查?

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

    您好!

    很抱歉、仍然发生 EMAC TX 错误! 我检查了 EMAC 设计团队、并将向您提供最新信息。  

    此致、Eric  

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

    您好!

    以下是我从设计团队获得的结果:

    它们不必查看 MACSTATUS_IDEL=1。

    这也可能是一个高速缓存一致性问题、在写入 TXHDP 寄存器之前、对 SOP 缓冲描述符的写入没有到达存储器中、从而导致数据包操作。  他们可以通过确保所有写入数据(描述符)都已到达存储器来排除此问题。  这通常可以通过读取最后写入的缓冲区描述符来完成、但它们需要确保所有写入都已到达存储器(缓存写回操作)。  

    它们还可以通过不使用内部缓冲区描述符存储器来排除其他问题–这意味着缓冲区描述符最好在与数据包数据相同的存储器中关闭。  不过、它们应始终确保缓冲区描述符数据已到达内存中。

    此致、Eric