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.

[参考译文] DP83867IS:DP83867 PHY 配置局域网唤醒

Guru**** 2928990 points

Other Parts Discussed in Thread: DP83867IS

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

https://e2e.ti.com/support/interface-group/interface/f/interface-forum/1031146/dp83867is-dp83867-phy-configure-wake-on-lan

器件型号:DP83867IS
  • 我的板包含2 个背对背连接的 DP83867IS (PHY ADDR = 00000和00001)。
  • 第一个应该执行局域网唤醒功能(输出到 INT/PWDN 引脚)。

我的问题是:

  • 为了使该函数正常工作、我应该写入哪些必要的寄存器(因为 Pwer-on-reset)?
  • 写入这些寄存器的顺序是否重要?  

这是我迄今为止通过 MDIO 接口配置的内容。

操作码(2)

PHY_ADDR (5)

REG_ADDR (5)

REG_DATA (16)

总字(28)位

指令

注释

[必需]- BMCR、RXFCFG 和 MICR 寄存器对于器件配置和 WoL 设置至关重要

01

00000

00000

0001000101000000

0x04001140

将 U39的 BMCR 写入0x1140

第8.3.1节
使用时、请确保禁用 BMCR (寄存器地址0x0000)位[10]
WOL 功能。 该位启用用于禁用 MAC 接口的 MII 隔离功能
也可以禁用该 PHY 上的 WoL 中断。

位6、13速度选择 LSB 0、RW 速度选择(位6、13):
禁用自协商时、对该位的写入允许选择端口速度。
11 =保留、10 = 1000Mbps、1 = 100Mbps、0 = 10Mbps
BIT12自协商使能带、RW 自协商使能:
自举控制复位时的初始值。
1 =自协商使能-当该位置位时、该寄存器的位8和13将被忽略。
0 =禁用自协商-位8和13决定端口速度和双工模式。

01

00001

00000

0001000101000000

0x04201140

将40年代的 BMCR 写入0x1140

01

00000

01101.

0000000000011111

0x040D001F

将寄存器0x0134写入0x00A1
1.将寄存器0x0D 写入值0x001F。
2.向寄存器0x0E 写入值0x0134
3.向寄存器0x0D 写入值0x401F。
4、将寄存器0x0E 写入值0x00A1。

第8.3.1.3节
通过 RXFCFG 寄存器(地址0x0134)配置局域网唤醒功能。

位10:9 WOL_OUT_LEDED 00、RW Wake on-LAN Output Stretch:
如果 WoL OUT 配置为脉冲模式、则脉冲长度定义为以下125MHz 时钟周期数:11 = 64个时钟周期、10 = 32个时钟周期、01 = 16个时钟周期、00 = 8个时钟周期

位8 WOL_OUT_MODE 0、RW 局域网唤醒输出模式:
1 =电平模式。 通过写入 WOL_OUT_CLEAR (位11)来清除 WOL。
0 =脉冲模式。 脉冲宽度通过 WOL_OUT_STRELED (位10:9)进行配置。


BIT7增强型 MAC_SUPPT0、RW 使能增强型接收特性:
1 =启用局域网唤醒、CRC 校验和接收1588指示。
0 =正常运行。


SCRON_EN 0、RW 启用 SecureOn 密码:
1 =启用 SecureOn 密码。
0 =禁用 SecureOn 密码。

01

00000

01110

0000000100110100

0x040E0134

01

00000

01101.

0100000000011111

0x040D401F

01

00000

01110

0000000010100001

0x040E00A1

01

00000

10010.

0000000000001000

0x04120008

将 U39的 MICR 写入0x0008

3 WOL_INT_EN:启用局域网唤醒中断:
1 =启用局域网唤醒中断。
0 =禁用局域网唤醒中断。

#[强烈推荐]-设置要嵌入在魔法模式中的密码以唤醒 PHY (寄存器:RXFSOP1、2、3)

01

00000

01101.

0000000000011111

0x040D001F

将寄存器0x0139写入0x0000
1.将寄存器0x0D 写入值0x001F。
2.向寄存器0x0E 写入值0x0139
3.向寄存器0x0D 写入值0x401F。
4.向寄存器0x0E 写入值0x0000。

8.6.55 SecureOn 传递寄存器2 (RXFSOP1、2、3)

密码可以是任何3 x 16位字

01

00000

01110

0000000100111001

0x040E0139

01

00000

01101.

0100000000011111

0x040D401F

01

00000

01110

00000000000000000000

0x040E0000

01

00000

01101.

0000000000011111

0x040D001F

将寄存器0x013A 写入0x0000
1.将寄存器0x0D 写入值0x001F。
2.将寄存器0x0E 写入值0x013A
3.向寄存器0x0D 写入值0x401F。
4.向寄存器0x0E 写入值0x0000。

01

00000

01110

0000000100111010

0x040E013A

01

00000

01101.

0100000000011111

0x040D401F

01

00000

01110

00000000000000000000

0x040E0000

01

00000

01101.

0000000000011111

0x040D001F

向寄存器0x013B 写入0x0000
1.将寄存器0x0D 写入值0x001F。
2.向寄存器0x0E 写入值0x013B
3.向寄存器0x0D 写入值0x401F。
4.向寄存器0x0E 写入值0x0000。

01

00000

01110

0000000100111011

0x040E013B

01

00000

01101.

0100000000011111

0x040D401F

01

00000

01110

00000000000000000000

0x040E0000

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

    您好!

    我需要几天时间来完成所有设置并进行确认。 我将在周三(9/1)的工作结束前回来。

    此致、

    Joe

    此通信和任何相关通信中的所有信息均按“原样”提供,“不含任何瑕疵”,并受 TI 重要声明(www.ti.com/.../important-notice.shtml)的约束。

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

    您好!

    以下是用于 WoL 的示例脚本、其中我使用 DP83867ERGZ-R-EVM 评估板将 WoL 脉冲输出到 GPIO_0 |德州仪器 TI.com。

    我已经验证了从字节62开始的模式的 WoL 功能。 我已包含写入 DP83867时使用的脚本。 为了进一步验证、我在配置寄存器0x0172后捕获了 GPIO_0引脚上的 WoL 脉冲。 我还将寄存器0x0134配置为0x0082、为脉冲配置 WOL_OUT_MODE。 这些是用于在魔术包中不带密码的 DP83867 WoL 功能的必要寄存器。

     e2e.ti.com/.../7367.DP83867-WoL-Rev2.txt

    然后、我使用以下模式配置 SmartBits 以用于生成、以验证 WoL 功能:

    如果您需要进一步澄清、请告诉我。

    此致、

    Joe

    此通信和任何相关通信中的所有信息均按“原样”提供,“不含任何瑕疵”,并受 TI 重要声明(www.ti.com/.../important-notice.shtml)的约束。

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

    Joe、您好!  
    非常感谢您提供这一详细的回答。 我只想对这些点进行一些确认/澄清、因为 我们的应用中此初始化例程的闪存空间非常有限 、我们 希望使此初始化序列尽可能短:

    • 所有这些应设置为0000的寄存器、我从数据表中了解到它们的默认值已经为零、所以我可以跳过这些命令吗?
    • 如果使用 WoL on Magic Pattern 设置、我们不需要配置图形寄存器位0至63。 相反、我们可以"可选"配置 RXFSOP1、2、3 (同时设置0x0134的位5)。
    • 如果使用 INT 引脚而不是 GPIO、我们应该将0x0012 (MICR)写入0x0008、而不是将 0x0172写入值0x0033。

    再次感谢你

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

    您好!

    您能否确认您所指的哪些寄存器设置为0x0000?

    此致、

    Joe

    此通信和任何相关通信中的所有信息均按“原样”提供,“不含任何瑕疵”,并受 TI 重要声明(www.ti.com/.../important-notice.shtml)的约束。

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

    0140 0000	//
    0141 0000	//
    0142 0000	//
    0143 0000	//
    0144 0000	//
    0145 0000	//
    0146 0000	//
    0147 0000	//
    0148 0000	//
    0149 0000	//
    014a 0000	//
    014b 0000	//
    014c 0000	//
    014d 0000	//
    014e 0000	//
    014f 0000	//
    0150 0000	//
    0151 0000	//
    0152 0000	//
    0153 0000	//
    0154 0000	//
    0155 0000	//
    0156 0000	//
    0157 0000	//
    0158 0000	//
    0159 0000	//
    
    015c 0000	//Byte Mask 0 to 15
    015d 0000	//Byte Mask 16 to 31
    015e 0000	//Byte Mask 32 to 47
    015f 0000	//Byte Mask 48 to 63
    0161 0000	//Pattern start point (62 decimal)

    例如、这些寄存器(或数据表中其默认值为0的任何寄存器)。

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

    您好!

    任何默认值为0x0000的寄存器、都不需要写入。

    至于模式字节寄存   器、如果您的模式将这些字节设置为0、则无需写入这些寄存器。

    如果将来需要非零值、则必须写入这些寄存器。  

    此致、

    Joe

    此通信和任何相关通信中的所有信息均按“原样”提供,“不含任何瑕疵”,并受 TI 重要声明(www.ti.com/.../important-notice.shtml)的约束。