您好!
首先、我想说我是一家为特定公司工作的承包商、但我无法在 E2E 网站上使用与该公司关联的电子邮件地址。 我在2个不同的浏览器和2个不同的计算机上多次尝试登录以验证问题。 我能够将其缩小为 E2E 网站不接受我与该公司关联的电子邮件地址、因此我使用个人 TI 个人资料发布此问题。 这使得拥有与分配给我的电子邮件地址类似的电子邮件地址的用户完全无法访问 E2E 社区。 试图找到一种甚至发布问题的方法非常令人沮丧。 我以前在 E2E 上没有遇到过这个问题。 此问题还限制了我可以共享多少信息来帮助解决下面列出的问题。
返回 DP83822I 问题:
我正在与 XMC4800处理器和两个用于 EtherCAT 的 DP83822I PHY 合作进行一个项目、我是硬件工程师。 我们之前使用过不同的 PHY 芯片 KSZ8081、从未出现过任何问题。 由于空间方面的限制、我们迁移到了 DP83822I。 我们遇到了很多问题、试图让他们正常工作。 我已经更改并修复了设计中的几个错误、并最终使其正常工作、但它仅在偶尔(1/10次)工作、当它发生时、EtherCAT 运行似乎不会继续。 在具有8个 EtherCAT 从站的设计中、XMC4800是上游端口的第4个从站。 我已解决的一些问题如下:
答: 我将 RXD1和 RXD2交换到其中一个 PHY 上的处理器(固定)
b. 处理器 MII 上的链路输入连接到 LED1、然后我将其移至 LED0
c. 由于 焊料过多而删除了其中一个物理层上的2个焊接桥(引脚1短接至接地体焊盘、引脚17短接至引脚18)
d. 我已经多次更改了自举引脚配置、但在通信或 MDIO 寄存器状态中没有看到一致的性能。
我最近阅读了新版本的数据表(2018年4月)、并解释说有一些自举模式由数据表中的 LED 引脚自举电压控制。 我目前的想法是、我遇到了某种自举问题、即芯片甚至在正常情况下也不工作。 由于数据表中没有关于这一点的信息、除了检查0x0467和0x0468中的寄存器外、我无法验证是否正在发生这种情况。 它确实在0x0467和0x468中指定了寄存器位置 LED0、但不指定 LED1。 我遇到的一个关键问题是、上电时的自举电压与这些寄存器中的位表示的模式不对应、而是通过 MDIO 端口进行 PHY 数据转储。 我们还通过 MDIO 端口对 phy 进行复位、并在复位前后转储数据、但得到的结果与0x467和0x468相同。 我将在下面具体列出我们所获得的结果。
锁存电压:
LED0 = 3.3V
LED1 = 2.7V
RXD0=0V
RXD1=0V
RXD2=0V
RXD3=3.3V
RXER = 3.3V
RXDV=0V
COL = 0.12V
CRS=0.89V
0x467=2001
0x468=0000
据我所知、所有链路都在物理层(MDI)和 MII 总线上正常运行。 我已经检查了示波器上的所有时钟和数据线路、它们看起来可以连接到 PHY、也可以从 PHY 连接到 XMC。
此外、作为随机运行状态问题的一个示例、0x0019的地址位4:0对于 PHY0和 PHY1是正确的(分别为0、1)、但在复位之前和之后、数据转储中两个 phy 的0x467值完全相同。 PHY1上的 COL 引脚悬空、PHY0上的 COL 引脚具有1.96K 下拉电阻器。 我认为这是将地址位配置为0、1的正确自举、但它不会反映在寄存器的锁存中。 当您继续浏览上述列表时、0x467和0x468中的其他几个寄存器不会反映其锁存值(RXD0、LED0等)。
1. 锁存电压为什么与数据表指定的0x467和0x468读取的值相关的模式不匹配?
2. 当 LATCH IN 值不正确时、为什么地址位是正确的?
3、 如何判断芯片是否在自举模式下?
4、 LED1的哪些模式与自举相关(未在数据表中列出)?
5. LED0的模式2和3是否与自举相关(数据表中模糊引用)?
6. 为什么 LED0在3.3V 时锁存并在0x0467 (模式2)中上升为01?
7 、为什么这两个 PHY 芯片都有问题?
我已经解决这个问题大约2周了。 一些帮助会非常有帮助! 谢谢你。
Kevin