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.

[参考译文] DP83869HM:DP83869信号检测极性和放大器;可编程性

Guru**** 2455360 points


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

https://e2e.ti.com/support/interface-group/interface/f/interface-forum/967575/dp83869hm-dp83869-signal-detect-polarity-programmability

器件型号:DP83869HM
主题中讨论的其他器件:DP83869

根据多个线程、信号检测(SD)信号为低电平有效(通常称为 LOS、而不是 SD 或具有一些低电平有效指示)。  

https://e2e.ti.com/support/interface/f/138/t/910351

e2e.ti.com/.../769396

https://e2e.ti.com/support/interface/f/138/p/934072/3470807

在第三个线程中、Justin 表示 SD 信号的极性可通过寄存器0x30的位2进行编程(未记录特定于供应商的内部配置寄存器)。  我有一个设计使用具有 SD 输出(与 LOS 相反)的收发器、错过了该信号的极性、并且可以使用可编程反转(或可能禁用 SD 信号)(如果可用)。  我在1000M 介质转换器模式下工作、似乎没有自举或任何其他方法来禁用此信号、例如 RGMII 光纤模式。  数据表中并不清楚、但该信号用于介质转换器模式、如果不正确、将阻止链路。

我已经尝试了地址0x30、位2方法、它似乎没有效果。  是否有方法可以更改 SD 信号的极性?

谢谢。

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

    您好、达拉斯、

    首先、我要确保器件设置为正确的模式、并且扩展寄存器访问正常。 您能否提供以下寄存器的读数:

    • 0x0
    • 0x1.
    • 0x30
    • 0x32
    • 0x6E
    • 0x6f
    • 0x1DF

    谢谢、

    Nikhil

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

    当然。  这里是请求的寄存器。  这是通过一个下拉电阻器连接到 SD 引脚(仅连接到引脚)、并且器件在1000M 介质转换器模式下正常运行。  该数据是通过 DP83869以太网捕获的。

    0x000:0x1140
    0x001:0x7969
    0x030:0x0000
    0x032:0x0050
    0x06E:0x080E
    0x06F:0x0000
    0x1DF:0x0044

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

    这是完整的寄存器转储。  在初始化过程中执行的唯一写入操作是将0x1FFC 写入位置0x01EC。  但是、该捕获显示0x01EC[0]已置1。

    0x000:0x1140
    0x001:0x796D
    0x002:0x2000
    0x003:0xA0F1
    0x004:0x0001
    0x005:0xCDE1
    0x006:0x006D
    0x007:0x2001
    0x008:0x4006
    0x009:0x0300
    0x00A:0x7800
    0x00D:0x401F
    0x00E:0x0000
    0x00F:0xF000
    0x010:0x5048
    0x011:0xAC02
    0x012:0x0000
    0x013:0x0000
    0x014:0x29C7
    0x015:0x0000
    0x016:0x0000
    0x017:0x0040
    0x018:0x6150
    0x019:0x4000
    0x01A:0x0002
    0x01E:0x0012
    0x01F:0x0000
    0x025:0x0480
    0x02C:0x141F
    0x02D:0x0000
    0x02E:0x0221
    0x030:0x0000
    0x031:0x10B0
    0x032:0x0050
    0x033:0x0000
    0x037:0x0000
    0x039:0x0000
    0x03A:0x0000
    0x043:0x07A0
    0x04F:0x0176
    0x06E:0x080E
    0x06F:0x0000
    0x086:0x0077
    0x134:0x1000
    0x135:0x0000
    0x170:0x0C0F
    0x180:0x0752
    0x181:0xC850
    0x182:0x5326
    0x183:0xA01E
    0x184:0xE976
    0x185:0x19CF
    0x190:0x0000
    0x191:0x0000
    0x192:0x0000
    0x193:0x0000
    0x194:0x0000
    0x195:0x0000
    0x196:0x0000
    0x197:0x0000
    0x198:0x0000
    0x199:0x0000
    0x1A4:0x0000
    0x1A5:0x0000
    0x1A6:0x0000
    0x1DF:0x0044
    0x1E0:0x417A
    0x1EC:0x1FFD
    0xC00:0x0140
    0xC01:0x614D
    0xC02:0x2000
    0xC03:0xA0F1
    0xC04:0x0020
    0xC05:0x0000
    0xC06:0x0004
    0xC07:0x2001
    0xC08:0x0000
    0xC18:0x01FF
    0xC19:0x0000

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

    您好、达拉斯、

    感谢您提供详细的寄存器转储。 我将查看数据中是否存在任何差异。 此外、您能否提供原理图? 我将查看寄存器设置和原理图、并确保器件设置正确、并且原理图和寄存器设置都对齐。 我将在下周之前提供反馈。

    谢谢、

    Nikhil

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

    这是原理图。  请注意、SERDES_SD 信号已被下拉电阻器替代。  该更改使 DP83869开始工作。  在该更改 SYNC_STATUS 之前、0x4F[8]永远不会置1。  在该更改之后、它始终被置位。

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

    您好!

    感谢后续行动。 E2E 上的回复因年末假期而延迟。 我们将于1月7日之前返回给您。

    此致

    Aniruddha

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

    您好、达拉斯、

    根据最近的寄存器转储、寄存器0x1看起来显示已建立有效链路。 您还提到在放置下拉电阻器后、DP83869开始工作。 这是否意味着 SD 信号现在按预期工作?

    我注意到寄存器0x32不是默认值0xD0、现在是0x50。 位[7]是保留位。 此更改是否是初始化的一部分? 初始化之后、复位0x32 = 0xD0是否会影响性能?  

    至于寄存器0x1EC 问题、初始化后多次尝试写入位[0]= 0是否也会导致该位不被清除?

    谢谢、

    Nikhil

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

    您好、达拉斯、

    另一个注释是、如果 SD 信号仍然存在问题、可以尝试将光纤模式设置为自动协商作为调试步骤、方法是移除 LED0上的上拉电阻。 这将确认自举设置没有问题。

    谢谢、

    Nikhil

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

    Nikhil、

    如上所述、SERDES_SD 信号已被下拉电阻器替代。  现在引脚24上只有一个下拉电阻器、并且未连接其他信号。  PHY 现在可以进行链接、但在 Ubuntu 操作系统启动后(几分钟或更长时间)、有时需要很长时间才能进行链接。

    您是否能够回答有关通过寄存器0x30更改 SD 信号极性的原始问题?  是否可以通过该寄存器或其他一些寄存器更改极性?

    在初始化或操作期间、永远不会写入寄存器0x32。  如上所述、作为初始化的一部分执行的唯一写入操作是将0x1FFC 写入位置0x01EC。  在初始化或操作期间不会发生其他写入。

    当第二组硬件到达时、我可以尝试更改0x32的值并在一两周内初始化后对地址0x1EC 执行多次写入操作。

    谢谢、

    达拉斯

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

    谢谢 Nikhil。  我们将尝试在一两周内使用新硬件更改自协商自举。

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

    您好、达拉斯、

    关于原始问题、通过寄存器0x30进行极性控制应该相当简单。 令人遗憾的是,这是一个长期存在的问题,我的建议是,设法通过消除任何其他可能的错误来源,并使我们进入一个已知良好的局面,来孤立这个问题。

    关于寄存器0x32、我知道在初始化期间不会写入该寄存器。 但是、当读回该值时、它似乎偏离了默认值。 如前所述、请尝试将寄存器0x32的值改回默认值。  

    请在新硬件到达时更新我。

    谢谢、

    Nikhil

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

    Nikhil、

    今天我测试了这些建议。  我们在基于 Linux 的系统上使用该器件。  在 BIOS 引导期间、器件链接会在 Linux 引导时丢失链接、并需要30-180秒重新建立链接。

    移除 LED0上拉电阻以启用自动协商功能不起作用。 这就导致了一个永远不会建立的联系。

    在最终链接后将0x1FFC 写入0x01EC 会导致寄存器值保留在0x1FFC。

    向寄存器0x32写入0xD0值似乎会立即启动链路。

    下面是一些寄存器转储。

    在我进行更多测试之前的另一周或两周、将0xD0写入寄存器0x32会快速启动链路。  

    引导后立即寄存器内容、但未链接:

    0x000:0x1140
    0x001:0x7949
    0x002:0x2000
    0x003:0xA0F1
    0x004:0x0001
    0x005:0x0000
    0x006:0x0066
    0x007:0x2001
    0x008:0x0000
    0x009:0x0300
    0x00A:0x0000
    0x00D:0x0000
    0x00E:0x0000
    0x00F:0xF000
    0x010:0x5048
    0x011:0x1002
    0x012:0x0000
    0x013:0x9C40
    0x014:0x29C7
    0x015:0x0000
    0x016:0x0000
    0x017:0x0040
    0x018:0x6150
    0x019:0x4000
    0x01A:0x0002
    0x01E:0x0012
    0x01F:0x0000
    0x025:0x0480
    0x02C:0x141F
    0x02D:0x0000
    0x02E:0x0221
    0x030:0x0000
    0x031:0x10B0
    0x032:0x0050
    0x033:0x0000
    0x037:0x0000
    0x039:0x0000
    0x03A:0x0000
    0x043:0x07A0
    0x04F:0x0126
    0x06E:0x080E
    0x06F:0x0000
    0x086:0x0077
    0x134:0x1000
    0x135:0x0000
    0x170:0x0C10
    0x180:0x0752
    0x181:0xC850
    0x182:0x5326
    0x183:0xA01E
    0x184:0xE976
    0x185:0x19CF
    0x190:0x0000
    0x191:0x0000
    0x192:0x0000
    0x193:0x0000
    0x194:0x0000
    0x195:0x0000
    0x196:0x0000
    0x197:0x0000
    0x198:0x0000
    0x199:0x0000
    0x1A4:0x0000
    0x1A5:0x0000
    0x1A6:0x0000
    0x1DF:0x0044
    0x1E0:0x417A
    0x1EC:0x1FFD
    0xC00:0x0140
    0xC01:0x6149
    0xC02:0x2000
    0xC03:0xA0F1
    0xC04:0x0020
    0xC05:0x0000
    0xC06:0x0004
    0xC07:0x2001
    0xC08:0x0000
    0xC18:0x01FF
    0xC19:0x0010

    等待链接出现后注册内容:

    0x000:0x1140
    0x001:0x7969
    0x002:0x2000
    0x003:0xA0F1
    0x004:0x0001
    0x005:0xCDE1
    0x006:0x006F
    0x007:0x2001
    0x008:0x4006
    0x009:0x0300
    0x00A:0x7800
    0x00D:0x0000
    0x00E:0x0000
    0x00F:0xF000
    0x010:0x5048
    0x011:0xBC02
    0x012:0x0000
    0x013:0x9D40
    0x014:0x29C7
    0x015:0x0000
    0x016:0x0000
    0x017:0x0040
    0x018:0x6150
    0x019:0x4000
    0x01A:0x0002
    0x01E:0x0012
    0x01F:0x0000
    0x025:0x0480
    0x02C:0x141F
    0x02D:0x0000
    0x02E:0x0221
    0x030:0x0000
    0x031:0x10B0
    0x032:0x0050
    0x033:0x0000
    0x037:0x0000
    0x039:0x0000
    0x03A:0x0000
    0x043:0x07A0
    0x04F:0x0126
    0x06E:0x080E
    0x06F:0x0000
    0x086:0x0077
    0x134:0x1000
    0x135:0x0000
    0x170:0x0C10
    0x180:0x0752
    0x181:0xC850
    0x182:0x5326
    0x183:0xA01E
    0x184:0xE976
    0x185:0x19CF
    0x190:0x0000
    0x191:0x0000
    0x192:0x0000
    0x193:0x0000
    0x194:0x0000
    0x195:0x0000
    0x196:0x0000
    0x197:0x0000
    0x198:0x0000
    0x199:0x0000
    0x1A4:0x0000
    0x1A5:0x0000
    0x1A6:0x0000
    0x1DF:0x0044
    0x1E0:0x417A
    0x1EC:0x1FFD
    0xC00:0x0140
    0xC01:0x6149
    0xC02:0x2000
    0xC03:0xA0F1
    0xC04:0x0020
    0xC05:0x0000
    0xC06:0x0004
    0xC07:0x2001
    0xC08:0x0000
    0xC18:0x01FF
    0xC19:0x0010

    在链路建立后、向0x01EC 写入值0x1FFC 之后的寄存器内容:

    0x000:0x1140
    0x001:0x7969
    0x002:0x2000
    0x003:0xA0F1
    0x004:0x0001
    0x005:0xCDE1
    0x006:0x006F
    0x007:0x2001
    0x008:0x4006
    0x009:0x0300
    0x00A:0x3800
    0x00D:0x401F
    0x00E:0x1FFC
    0x00F:0xF000
    0x010:0x5048
    0x011:0xBF02
    0x012:0x0000
    0x013:0x9DC0
    0x014:0x29C7
    0x015:0x0000
    0x016:0x0000
    0x017:0x0040
    0x018:0x6150
    0x019:0x4000
    0x01A:0x0002
    0x01E:0x0012
    0x01F:0x0000
    0x025:0x0480
    0x02C:0x141F
    0x02D:0x2000
    0x02E:0x0221
    0x030:0x0000
    0x031:0x10B0
    0x032:0x0050
    0x033:0x0000
    0x037:0x0000
    0x039:0x0000
    0x03A:0x0000
    0x043:0x07A0
    0x04F:0x0126
    0x06E:0x080E
    0x06F:0x0000
    0x086:0x0077
    0x134:0x1000
    0x135:0x0000
    0x170:0x0C10
    0x180:0x0752
    0x181:0xC850
    0x182:0x5326
    0x183:0xA01E
    0x184:0xE976
    0x185:0x19CF
    0x190:0x0000
    0x191:0x0000
    0x192:0x0000
    0x193:0x0000
    0x194:0x0000
    0x195:0x0000
    0x196:0x0000
    0x197:0x0000
    0x198:0x0000
    0x199:0x0000
    0x1A4:0x0000
    0x1A5:0x0000
    0x1A6:0x0000
    0x1DF:0x0044
    0x1E0:0x417A
    0x1EC:0x1FFC
    0xC00:0x0140
    0xC01:0x6149
    0xC02:0x2000
    0xC03:0xA0F1
    0xC04:0x0020
    0xC05:0x0000
    0xC06:0x0004
    0xC07:0x2001
    0xC08:0x0000
    0xC18:0x01FF
    0xC19:0x0010

    在引导期间将0xD0写入0x32之后(之后快速出现链路)

    0x000:0x1140
    0x001:0x7969
    0x002:0x2000
    0x003:0xA0F1
    0x004:0x0001
    0x005:0xCDE1
    0x006:0x006F
    0x007:0x2001
    0x008:0x4006
    0x009:0x0300
    0x00A:0x7800
    0x00D:0x401F
    0x00E:0x00D0
    0x00F:0xF000
    0x010:0x5048
    0x011:0xBC02
    0x012:0x0000
    0x013:0x9D42
    0x014:0x29C7
    0x015:0x0000
    0x016:0x0000
    0x017:0x0040
    0x018:0x6150
    0x019:0x4000
    0x01A:0x0002
    0x01E:0x0012
    0x01F:0x0000
    0x025:0x0480
    0x02C:0x141F
    0x02D:0x0000
    0x02E:0x0221
    0x030:0x0000
    0x031:0x10B0
    0x032:0x00D0
    0x033:0x0000
    0x037:0x0000
    0x039:0x0000
    0x03A:0x0000
    0x043:0x07A0
    0x04F:0x0156
    0x06E:0x080E
    0x06F:0x0000
    0x086:0x0077
    0x134:0x1000
    0x135:0x0000
    0x170:0x0C10
    0x180:0x0752
    0x181:0xC850
    0x182:0x5326
    0x183:0xA01E
    0x184:0xE976
    0x185:0x19CF
    0x190:0x0000
    0x191:0x0000
    0x192:0x0000
    0x193:0x0000
    0x194:0x0000
    0x195:0x0000
    0x196:0x0000
    0x197:0x0000
    0x198:0x0000
    0x199:0x0000
    0x1A4:0x0000
    0x1A5:0x0000
    0x1A6:0x0000
    0x1DF:0x0044
    0x1E0:0x417A
    0x1EC:0x1FFD
    0xC00:0x0140
    0xC01:0x6149
    0xC02:0x2000
    0xC03:0xA0F1
    0xC04:0x0020
    0xC05:0x0000
    0xC06:0x0004
    0xC07:0x2001
    0xC08:0x0000
    0xC18:0x01FF
    0xC19:0x0010

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

    您好、达拉斯、

    感谢您发送反馈。 Nikhil 目前不在办公室、但他将在2月9日星期二回到您的办公室。

    此致

    Aniruddha

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

    您好、达拉斯、

    根据您的总结:

    "我今天测试了这些建议。  我们在基于 Linux 的系统上使用该器件。  在 BIOS 引导期间、设备链接会在 Linux 引导时丢失链接、并需要30-180秒重新建立链接。"  

    我不清楚这是您看到的初始结果、还是在写入寄存器0x32之后看到的结果。 将寄存器0x32返回到默认值后、似乎可以快速建立链接。 这里还有什么问题吗?

    谢谢、

    Nikhil

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

    Nikhil、

    较长的链路时间不会写入寄存器0x32。  写入0x32会立即启动链路。

    两个未决问题是:

    • 是否可以回答有关 SD 信号可编程极性的初始问题?  是否可以通过寄存器访问来更改极性?
    • 在实验练习中、写入地址0x32有助于快速建立链路、但这需要使用自定义驱动程序软件。  链接需要进行此写入是有原因的、还是寄存器从默认值更改的原因?  如果可能、最好通过其他方式纠正此问题。

    谢谢、

    达拉斯

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

    您好、达拉斯、

    如前所述、对于 SD 信号极性、DP83869的信号检测引脚的极性可通过寄存器0x0030[2]进行更改。

    0x0030[2]:SIGNAL 检测极性控制位
    0:反转信号检测引脚的极性。
    1:按原样使用信号检测。

    如果您要实现链路、我会假设这可以正常工作。 SD 极性是否仍然存在问题?

    我需要一些时间来研究寄存器0x32默认设置的问题。 我将在下周初提供最新信息。  

    谢谢、

    Nikhil

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

    您好、达拉斯、

    我有一些有关信号检测、寄存器0x1EC 和寄存器0x32的附加信息。  

    1. 在介质转换器操作模式下、要更改 SD 极性、必须写入0x0C30[2]而不是0x0030[2] 链接启动问题可能只是由于此原因。
    2. 在介质转换器模式下,0x0032[7]将为1'b0,0x0032将为0050h,回读0x0050是可以的,这不应影响链路。
    3. 不应更改默认值0x01EC、它会影响介质转换器模式下的链路丢失功能。

    请告诉我这是否有助于解决您看到的链接问题。

    谢谢、

    Nikhil