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.
您好!
我将 AM3352与 DP83822I 搭配使用在定制板上。
在 RMII 模式(主控模式)下、正确的 PHY 配置出现问题。
接口连接和自举配置如下所示。
根据此自举配置、PHY 从 MII 启动、我使用 U-boot 以及 MDIO 向 PHY 寄存器写入正确的值。
我发现我必须写入:
0x61写入寄存器0x17
0x4300进入寄存器0x462
顺序如下:
MII 写入1 0D 1F MII 写入1 0E 462 MII 写入1 0D 401F MII 写入1 0E 4300 MII 写入1 17 61
链路状态和自动协商操作正常。
但是、我无法发送任何内容、我看到检测到溢出。
我在寄存器 FCSCR 和 RECR 中看到大数。
问题:
1) 1)我需要配置哪些寄存器? (假设引导配置如上所示)。 我是否错过了需要更改的任何内容?
2) 2)如何找出配置中的错误?
3) 3)解决此问题的建议步骤是什么?
尊敬的 Adam:
感谢您提供原理图和详细信息。 您是否可以在对器件进行 RMII 主模式编程之前和之后提供寄存器0x0、0x1、0x10和0x6E 的读取?
谢谢、
Nikhil
您好、Nikhil、
我在找到0x6E 寄存器时遇到问题。 这是正确的数字吗?
最后、我读取该寄存器、假设它是扩展寄存器。
这些值如下:
以前
0x0 - 0x3100
0x1 - 0x786D
0x10 - 0x6915 (第一次读取)/ 0x6D15 (后续读取)
0x6E - 0x0 (作为扩展寄存器读取)
之后
0x0 - 0x3100
0x1 - 0x786D
0x10 - 0x6915 (第一次读取)/ 0x6D15 (后续读取)
0x6E - 0x0 (作为扩展寄存器读取)
此致
Adam
尊敬的 Adam:
是6E 是扩展寄存器。 但是、我在哪个寄存器中要求您读取数据时出错了。 您能否在寄存器0x467和0x468中提供自举的读操作? 这些是扩展寄存器。 您是在启动后对器件进行编程还是仅使用设置?
此外、6915和6D15的寄存器0x10值告诉我 MDI 对存在极性交换(在 TD 上接收、在 RD 上发送。 您能否通过读取寄存器0xB 进行确认?
谢谢、
Nikhil
您好、Nikhil、
[报价用户="Nikhil Menon"]您是在启动后对器件进行编程还是仅使用设置?[/quot]
根据此自举配置、PHY 从 MII 启动、我使用 U-boot 以及 MDIO 向 PHY 寄存器写入正确的值。
[引用 USER="Nikhil Menon"]您能否提供寄存器0x467和0x468中自举的读操作?[/引用]
以前
0xB - 1000
0x467 - 0FCF
0x468 - 0
之后
0xB - 1000
0x467 - 0FCF
0x468 - 0
我用于对器件进行编程的序列、您可以在我们开始的文章中找到该序列。
此致
Adam
尊敬的 Adam:
PHY 状态寄存器和控制寄存器#3似乎显示了冲突的 MDI/MDIX 交换信息。 是否可以设置寄存器0x000B 位[5]= 1?
谢谢、
Nikhil
您好、Nikhil、
我注意到我可能需要在 DTS 文件中再添加一个属性。
phy_SEL{&
RMII-时钟-外部;
};
添加后、情况会发生一点变化。
然后再设置 PHY
0x0 - 0x3100
0x1 - 0x786D
0xB - 0x1000
0x10 - 0x6912 / 0x6915
0x17 - 0x0049
0x467 - 0x0FCF
0x468 - 0x0000
我用于设置 PHY 的代码
MII 写入1 17 61 MII 写入1 0d 1f MII 写入1 0e 462 MII 写入1 0d 401F MII 写入1 0e 4300 MII 写入1 1f 4000
设置 PHY 之后
0x0 - 0x3100
0x1 - 0x786D
0xB - 0x1000
0x10 - 0x2915 / 0x2D15
0x17 - 0x0065
0x467 - 0x0FCF
0x468 - 0x0000
PHY 配置完毕后、我会在 eth0_RXD3_REFCLK 上看到50MHz 信号。
遗憾的是、我仍然无法通过 ETH 进行通信。
接下来可以执行什么操作来解决此问题?
/Adam
尊敬的 Adam:
链路伙伴在共享引脚上是否有任何拉电阻?
如果您能够将器件配置为不同的回送模式、这可能有助于缩小错误来源。 您能否配置并运行外部环回测试和反向环回测试? 请参阅数据表中的第8.4.8节。
谢谢、
Nikhil
您好、Nikhil、
我将在星期一执行您请求的测试并向您发送结果。
同时、请找到电缆诊断功能的结果。
这可能会为您提供一些见解。
情况1)
拔下电缆- 2m 长
0x1E 0x0102 0x0180 0x000C 0x0181 0x0000 0x0182 0x0C00 0x0183 0x0000 0x0184 0x0000 0x0185 0x0029 0x0186 0x0000 0x0187 0x2000 0x0188 0x0000 0x0189 0x0000
情况2)
已拔下电缆-大约15米长
0x1E 0x0102 0x0180 0x001F 0x0181 0x0000 0x0182 0x0000 0x0183 0x0000 0x0184 0x0000 0x0185 0x0064 0x0186 0x0000 0x0187 0x0000 0x0188 0x0000 0x0189 0x0000
如果以此为基础、您还有其他意见、请随时分享。
此致
Adam
尊敬的 Adam:
除了环回测试外、您可能还需要尝试换用电缆。 请确认交叉电缆或直通电缆的使用是否与器件的 MDI/MDIX 设置一致。
谢谢、
Nikhil
您好、Nikhil、
简介:
DUT -定制板充当被测器件
LP -链路合作伙伴、我使用 Beagle Bone AI (PHY - AR8035-AL1B)
[引用 user="Nikhil Menon"]是否可以配置和运行外部环回测试和反向环回测试?[/引用]
我将 LP 设置为在反向环回模式下运行。
DUT 和 LP 使用2m 直通电缆进行连接。
我在 DUT 上使用数据包发生器和 PRBS 校验器来执行测试。
我调用以下命令来运行测试。
MII 写入1 16 3100
我明白了
MII 读为1 16.
3B00
MII 读为1 1B
7F
就我对 BIST 模块的理解而言、测试成功通过。
BIST 错误计数器中没有错误、PRBS 校验器在接收到的位流上同步。
[报价用户="Nikhil Menon"]请确认交叉电缆或直通电缆的使用与器件的 MDI/MDIX 设置一致。 [/报价]
DUT 和 LP 使用2m 直通电缆进行连接。
LP 已禁用自动 MDI/MDIX。
当我强制 LP 在 MDI 中工作时、我可以看到 DUT 自动切换到 MDIX。
当我强制 LP 在 MDIX 中工作时、我看到 DUT 自动切换到 MDI。
它按预期工作。
----
此外、我将一个100欧姆负载连接到 TX 以查看链路脉冲。
问题在哪里?
此致
Adam
您好、Nikhil、
您有进一步的信息吗?
此致
Adam
尊敬的 Adam:
感谢您的耐心等待。 使用 PHY PRBS 校验器和在反向回送中设置链接伙伴似乎已确认 MDI 侧没有错误。 此外、您能否将 PHY 设置为模拟回送、将数据包从处理器发送到 PHY 并发送回处理器?
此外、您能否分享每个电源上使用的去耦策略的屏幕截图?
谢谢、
Nikhil
您好、Nikhil、
[引用 user="Nikhil Menon"]此外、您能否分享每个电源上使用的去耦策略的屏幕截图?
[引用 USER="Nikhil Menon"]您能否将 PHY 设置为模拟回送、将数据包从处理器发送到 PHY 并传回处理器?[/引用]
假设我使用 U-Boot 引导自定义电路板、如何从处理器发送数据包并验证它们是否已返回?
执行此测试的步骤是什么?
我知道如何在 PHY 上配置模拟回路、但我不知道如何强制处理器发送和验证数据包。
此致
Adam
尊敬的 Adam:
感谢您的耐心等待。 将 AM3352设置 为发送和验证数据包超出此论坛的范围。 处理器团队和论坛将能够帮助您进行此设置。 如果模拟回路证明成功、则表明电缆侧和 MAC 侧均可发送和接收数据、因此需要进一步调试。
谢谢、
Nikhil
尊敬的 Adam:
您是否能够将器件设置为模拟环回? 请告诉我这是否可行、或者我们是否应该继续朝另一个方向前进。
谢谢、
Nikhil
您好、Nikhil、
是的、我能够将 PHY 设置为模拟回路模式。
遗憾的是、我不知道如何执行该测试。
我不知道如何强制 AM335x 通过 RMII 与 PHY 交互以测试此接口、假设 PHY 在模拟回路模式下工作。
此致
Adam
尊敬的 Adam:
将 AM335x 设置为在环回测试中生成和检查数据包超出了本论坛的范围。 您可以在处理器论坛开始咨询。 如果您有多个方便使用的 EVM、则可以尝试以下设置:
EVM1 -电缆- EVM2背对背 EVM3。 (通过背靠背配置中的 MAC 引脚连接 EVM2和3)
1.将 EVM3设置为模拟回路
2.设置 EVM1以将 PRBS 校验器设置为连续模式并生成数据包。 (寄存器0x16)
3.数据包将通过电缆发送到 EVM2、通过 MAC 引脚发送到 EVM3、然后环回 EVM1
4.检查寄存器0x1B 中的 PRBS 错误计数器以确认无错误。
谢谢、
Nikhil