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/DP83867IR:RJ45 LED 在连接电缆时不工作

Guru**** 2609955 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/654880/ccs-dp83867ir-rj45-led-does-not-work-when-connecting-cable

器件型号:DP83867IR
主题中讨论的其他器件:K2GICE

工具/软件:Code Composer Studio

您好~

我没有从上一个问题得到足够的答复。

我将 k2gICE 板与 ccsv7搭配使用。

按下重置按钮时、RJ45端口上的 LED 不会闪烁。

我是否需要额外的处理来初始化 DP83867 Phy 芯片?

CCS 无法使用提供的 GEL 文件中的脚本读取寄存器值。

#define MDIO_CTL *(无符号整型*)(0x4200F00 + 0x04) 
#define MDIO_PHY_REG *(无符号整型*)(0x4200F00 + 0x80) #define PADCONFIG98 *(无符号整型*)(CHIP_LEVEL_REG + 0x1188)
#define PADCONFIG99 *(unsigned int*)(chip_level_REG + 0x118C) MDIO_Init() { MDIO_CTL = 0x411400ff; GEL_TextOut ("MDIO 已启用\n"); ///MDIO_CLK_PADCONFIG= DEVICE_PIN_MUX_VALUE (DEVICE_PIN_MUX_STACK_CLASS_00、DEVICE_PIN_MUX_RX_DISABLED、DEVICE_PIN_MUX_PULL_UP、DEVICE_PIN_MUX_PULL_ENABLE、DEVICE_MUX_MODE_PRIMARY) PADCONFIG98 = 0x00060000; //MDIO_DATA_PADCONFIG= DEVICE_PIN_MUX_VALUE (DEVICE_PIN_MUX_STACK_CLASS_00、DEVICE_PIN_MUX_RX_ENABLED、DEVICE_PIN_MUX_PULL_UP、DEVICE_PIN_MUX_PULL_ENABLE、DEVICE_PIN_MUX_MODE_PRIMARY) PADCONFIG99 = 0x00020000; GEL_TextOut ("MDIO pinmux is enabled\n"); } /*读取千兆位以太网 PHY 寄存器以验证搭接配置*/ 热菜单 ReadEth0PHYRegs () { unsigned phy_addr = 0; unsigned reg_addr = 0; unsigned MDIO_useraccess = 0x04200F80; unsigned long temp; MDIO_Init(); GEL_TextOut ("Gig Eth MDIO PHY 设置如下所示\n"); for (reg_addr=0;reg_addr<16;reg_addr++) { WR_MEM_32 (MDIO_useraccess、(reg_addr << 21)|(phy_addr << 16)); //使用 GO 位写入相同的值 WR_MEM_32 (MDIO_useraccess、(0x8000000)|(reg_addr << 21)|(phy_addr << 16)); temp =(RD_MEM_32 (MDIO_useraccess)); if ((temp & 0x20000000)=0x20000000) GEL_TextOut ("PHY REG %x =%x\n"、、、、 REG_addr、(temp & 0xFFFF)); 其他 GEL_TextOut ("PHY REG %x 读取失败\n"、、、、 reg_addr); } //在 addr 0x6E 处额外读取寄存器以读取自举配置状态寄存器1 REG_addr = 0x6E; WR_MEM_32 (MDIO_useraccess、(reg_addr << 21)|(phy_addr << 16)); //使用 GO 位写入相同的值 WR_MEM_32 (MDIO_useraccess、(0x8000000)|(reg_addr << 21)|(phy_addr << 16)); temp =(RD_MEM_32 (MDIO_useraccess)); if ((temp & 0x20000000)=0x20000000) GEL_TextOut ("PHY REG %x =%x\n"、、、、 REG_addr、(temp & 0xFFFF)); 其他 GEL_TextOut ("PHY REG %x 读取失败\n"、、、、 reg_addr); GEL_TextOut ("千兆以太网 PHY0引导设置如下所示\n"); //在地址0x6E 处额外读取寄存器以读取自举锁存寄存器#1 REG_addr = 0xD; WR_MEM_32 (MDIO_useraccess、(reg_addr << 21)|(phy_addr << 16)| 0x001F); //使用 GO 位写入相同的值 WR_MEM_32 (MDIO_useraccess、(0xC0000000)|(reg_addr << 21)|(phy_addr << 16)| 0x001F); REG_addr = 0xE; WR_MEM_32 (MDIO_useraccess、(reg_addr << 21)|(phy_addr << 16)| 0x6E); //使用 GO 位写入相同的值 WR_MEM_32 (MDIO_useraccess、(0xC0000000)|(reg_addr << 21)|(phy_addr << 16)| 0x6E); REG_addr = 0xD; WR_MEM_32 (MDIO_useraccess、(reg_addr << 21)|(phy_addr << 16)| 0x401F); //使用 GO 位写入相同的值 WR_MEM_32 (MDIO_useraccess、(0xC0000000)|(reg_addr << 21)|(phy_addr << 16)| 0x401F); REG_addr = 0xE; WR_MEM_32 (MDIO_useraccess、(reg_addr << 21)|(phy_addr << 16)); //使用 GO 位写入相同的值 WR_MEM_32 (MDIO_useraccess、(0x8000000)|(reg_addr << 21)|(phy_addr << 16)); temp =(RD_MEM_32 (MDIO_useraccess)); if ((temp & 0x20000000)=0x20000000) GEL_TextOut ("PHY REG %x =%x\n"、、、、 0x6E、(temp & 0xFFFF)); 其他 GEL_TextOut ("PHY REG %x 读取失败\n"、、、、 0x6E); }
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、schezow、

    您似乎对 K2GICE 板和 CCSV7有疑问。 我会将您的问题移至 Keystone 论坛、以便更好地了解。

    此致、
    Aniruddha
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Schezow、
    DP83867 Phy 芯片必须通过软件进行初始化、以便在复位后将其置于正确的模式。 由于在信号连接到 K2G 的情况下使用中压配置时出现问题、因此需要此权变措施。 有关此内容的完整说明、请参阅 K2G ICE 用户指南。 如果在复位被移除后没有执行软件权变措施、PHY 将在一段时间后停止运行、并且将需要另外一个复位。
    如果您使用的是 CCS、则可以创建一个 GEL、该 GEL 将配置连接到 PHY 复位的 GPIO、切换复位并将0x170的值写入 PHY 的寄存器0x31。 完成此操作后、PHY 应该能够正常运行。 更多信息、请参阅 K2G ICE 用户指南的第2.9.3节。
    此致、Bill