主题中讨论的其他器件:TM4C1292NCPDT
您好!
任何人都可以将我指向有关在 TM4C129X 上使用外部 PHY 和 MDC 端口以及 NDK 的文档。 我将使用 RMII 来控制一个开关、以便与 RMC 通信。 这能否通过 NDK 库实现、或者它们是否需要进行遍历和重新编译。
谢谢。
理查德.
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.
您好!
任何人都可以将我指向有关在 TM4C129X 上使用外部 PHY 和 MDC 端口以及 NDK 的文档。 我将使用 RMII 来控制一个开关、以便与 RMC 通信。 这能否通过 NDK 库实现、或者它们是否需要进行遍历和重新编译。
谢谢。
理查德.
您好、Richard、
抱歉、我们没有介绍如何与外部 PHY 连接的文档或示例、我也不是 NDK 专家。 您将需要修改驱动程序以支持外部 PHY。 这就是我的建议:
-获取一个库存 NDK 示例,以便在使用集成 PHY 的 EVM 板上运行。 请先让此示例开始工作并了解 NDK 的工作原理。 可以从 tcpecho 示例开始。 该示例应该 可以开箱即用。 捕获 Wireshark。 使用 此文件作为调试将来项目的参考。
-配置集成 PHY 的驱动程序位于 C:\ti\tirtos_tivac_2_16_00_08\products\tidrivers_tivac_2_16_00_08\packages/ti\drivers\emac\EMACSnow.c 中、您需要修改此文件。 可以修改它然后重新构建 NDK 库、更简单的方法是直接将这个文件复制到您的项目目录并重新构建它。
-修改用于外部 PHY 的 EMACSnow.c。 有一个为设置为 EMAC_PHY_TYPE_INTERNAL 的内部 PHY 定义的 EMAC_PHY_CONFIG 宏 。 您将需要修改到下面的。
#define EMAC_PHY_CONFIG EMAC_PHY_TYPE_EXTERNAL_RMII
-您的应用程序必须包含代码,以便 通过调用 GPIOPinTypeEthernetMII()来配置 RMII/MII 功能的 GPIO 引脚。 这一点非常重要。 如果您不将 GPIO 多路复用电路配置为用于以太网 RMII 或 MII、则它们将仅保留为 GPIO 引脚。 因此请仔细检查、确保所有相关引脚均已正确配置。 等等。 以下两项调用为 TM4C1292NCPDT 器件的 EN0INTRN 配置 PP0。
MAP_GPIOPinConfigure (GPIO_PP0_EN0INTRN);
GPIOPinTypeEthernetMII (GPIO_PORTP_BASE、GPIO_PIN_0);
-我不知道 你在使用哪个外部 PHY。 外部 PHY 应具有一个寄存器、用于在 PHY 开启且正在运行时指示链路状态。 您应检查此类寄存器以确保 PHY 已启动。 在 EMACSnow.c 文件中、有一个 用于检查 PHY 是否正常的函数 EMACSnow_isLinkUp。 EMAC 使用 MDIO 接口读取寄存器。 确保可以通过 MDIO 接口对外部 PHY 进行读取/写入。
- 如果您运行在 RMII 模式中、请确保从外部 PHY 到 EMAC 控制器使 EN0REF_CLK 的频率为50MHz。
-仔细检查 yre 你在正确的 MII 或 RMII 模式。 您可以读取 位于0xFC4的 EMACPC 寄存器来验证它。
从较高层次看、这是我能想到的通过 RMII/MII 支持外部 PHY 的功能。 很抱歉缺少示例和文档。