主题中讨论的其他器件: C2000WARE
您好!
我的团队拥有一个具有 F28388D 微控制器和以太网 PHY 的专有 PCBA。 我们想使用 DP83822 PHY (就像 controlCARD 上的 PHY 一样)、但当时已经售罄了、因此我们用它替代了 DP83826E。 我们在读取和写入 PHY 芯片中的寄存 器时没有问题、但我们无法成功执行 MII 回送。 我们尝试 在我们的定制板上运行 C2000Ware F28388D 示例项目 ethernet_ex2_phy_loopback、但它在没有收到良好数据包的情况下始终失败。 controlCARD 在等待时间方面存在一些问题(需要在结尾进行解释)、但在微调微小的变量后、MII 回送项目在 controlCARD 上运行良好。 我们感到困惑、因为乍一看、两个 PHY 非常相似。 更具体 地说、DP83822和 DP83826的基本模式控制寄存器位于同一地址、并且在相同的位位置包含相同的字段。 但是、尽管 有熟悉的编程接口、 示例项目仅为一个而不是为另一个传递。 但是、我们已经确认了内部回送示例 Ethernet_ex1_basic_TX_Rx_loopback 与我们的专有电路板一起工作(再次增加等待时间)。
到目前为止、我们已尽力遵循 DP83826数据表中提供的表格和说明、但 这是无效的。 因此、 我们希望 TI 员工 通过提供一些具体的示例代码来帮助我们、说明如何 使用 F28388D 微控制器在 DP83826E PHY 上回送 MII。 如果它有任何相关性、我们还会像在 controlCARD 中一样为 PHY 使用25MHz 时钟信号、并且我们仅使用基本模式以太网。
P.S.:等待数据包返回的 SYSCTL_DELAY()值太短,即使在内部回送示例中也是如此。 我必须将其从3000个周期增加到至少6000个周期、以避免接收返回的数据包时出现问题。
更新1:
我们从多路复用为 ENET_MII_RX_ERR 信号的微控制器 GPIO 引脚上断开 PHY RX_ER 引脚、然后运行 MII 环回示例。
这一次 它通过了。 然而、这并不是一个理想的解决 方案、因为它相当于将一分钱放在保险丝盒中、以使所有高功率家用电器立即运行。
但 这确实有助于缩小搜索范围、因为我们现在正在研究在定制电路板运行期间如何将 RX_ER 置为有效。
当然 、我们很高兴地欢迎 TI 在 寻找 RX_ER 断言的原因方面提供任何帮助。
Update1_edit:我想更正我之前的语句。 无法实际断开 PHY RX_ER 引脚与微控制器的物理连接。 相反、我的员工没有 将任何引脚复用为以太网接收错误引脚。
更新2:
我们尝试使用一段以太网电缆执行外部环回、我们 将这些电缆分开并将某些电线短接在一起。 然后、我们运行 PHY MII 环回项目的修改版本、其中我们不会更改任何 PHY 寄存器、因此所有数据包都经过 PHY 的所有阶段并传输到电缆线路。 controlCARD 在接收通过此环回电缆段发送的自己的数据包时没有问题。 但是、 我们自己的专有板遇到了一种奇怪的现象、即我们没有收到任何正常的数据包、但也没有收到任何接收错误(是的、用作 ENET_MII_RX_ERR 的 GPIO 引脚已重新启用以提供该功能)。
截至此帖子、到目前为止所有硬件诊断尝试都表明电路板没有任何问题。 如果问题 确实与固件或 PHY 寄存器相关、 那么、我们目前不知道需要做些什么来使该 PHY 与 MCU 配合使用、因为 以太网模块有数十个配置变量、32个可按位寻址的 PHY 寄存器中至少有17个具有一些可写位。