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.

[参考译文] FPC401:我们的器件能否在50ms 内支持 QSFP28激光关闭

Guru**** 1101410 points
Other Parts Discussed in Thread: FPC401, FPC402
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/interface-group/interface/f/interface-forum/1133317/fpc401-can-our-part-support-laser-off-qsfp28-within-50ms

器件型号:FPC401
主题中讨论的其他器件: FPC402

大家好、

我们的 FPC401能否支持在50ms 内激光关闭 QSFP28?

我们使用 SPI 来访问 FPC401、FPC401通过 I2C 总线连接 QSFP28模块。

并尝试执行 QSFP28模块激光关闭操作200次、 最后得到25次、约为~100ms。

请 评论此 FPC 访问是否需要其他内容?

即使我们删除了第一个读取操作,我们仍有大于50ms 的时间。

 

下面是 QSFP28模块激光关闭的基本 FPC 动作。

  1. 检查 FPC 链中的 QSFP28模块存在信息(FPC 读取操作:fpc401_in_get in_get)
  2. 与 Laseroff 相关的 QSFP28模块 (FPC 写入操作:fpc401_downstream_write downstream_write)               

非常感谢!

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

    您好、Kelly、

    访问 FPC401时使用的 SPI 速度是多少?  该模块使用的 I2C 速度是多少?

    您是否有可能能够探测 SPI 和 I2C 线路、以了解仅用于通信的时间?  我想更好地了解通信的某个位置是否存在意外延迟、或者这是否只是通信速度的结果。

    此外、激光是通过对 QSFP 模块的 I2C 写入来实现的、还是通过 FPC401上的 OUT_A 等引脚来控制的?

    谢谢、
    Drew

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

    Drew。

    下面是一些答案。

    SPI 速度设置为800kHz、我们尚未设置 I2C 速度、似乎是规范中的默认值100kHz~1000kHz。我将再次检查。

    我们尚未在 SPI 设置上添加延迟。

    从我们对 FPC SDK API "fpc401_downstream _write"的时间戳检查中可以看到、一段时间将是100ms、有时会小于50ms。

    通过 I2C 写入非引脚可实现激光关闭。

    任何其他东西都需要检查、请告知我们。

    此致!

    Paul。

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

    尊敬的 Paul:

    感谢您的回答。  FPC402是否启用了预取功能?  除此之外、我认为了解关闭激光器时100ms 或50ms 的确切位置会有所帮助。  逻辑分析仪可以帮助解决这一问题。  确定这一点后、我们可以更好地了解此延迟是通信速度和/或 SDK 固有的延迟还是器件固有的延迟。

    谢谢、
    Drew

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

    Drew。

    今天、我们使用以下参数尝试了 prefet_config

    prefet_config:端口16设备0偏移0,带数据(prefech 字节:32,周期:1,门复位:0,广播:1)

    但是  、在尝试20次后、我仍然可以一次获得超过50ms 的 API fpc401_in_get 执行时间。

    另一个我注意到数据表中的计划写入 API schwr_config、在这种情况下是否有用? 我想尝试一下。

    任何其他建议、请告诉我

    此致!
    Paul。

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

    尊敬的 Paul:

    如果可能、我认为可能值得尝试将其作为计划写入来实现。  看起来、调度写入的优先级高于其他 I2C 操作。  我建议查看编程指南 、以获得有关如何实现该功能的指导

    谢谢、
    Drew

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

    Drew。

    我们检查了数据表、在执行 laseroff 操作期间、我们将首先检查 fpc401_in_get  in_get 存在的 QSFP 端口 、然后通过  fpc401_nergy_write 写入相关端口。  

    fpc401_in_get 通过  pin out_B 进行访问,当前我们注意到它将浪费更多的时间。>50ms。

    预取和调度写入仅涵盖 I2C 访问、在引脚上似乎不起作用。

    对此还有其他意见吗?

    此致!
    Paul。

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

    e2e.ti.com/.../CFpc40x16p200.CI在我们的软件中附加了基本 SPI_Read 和 SPI_WRITE 以供参考。

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

    尊敬的 Paul:

    我了解到激光断开主要是通过 I2C 写入来实现的。  这就是为什么我想知道计划的写入是否有帮助。 除了研究是否可以提高通信数据速率或消除不必要的延迟(如果有)之外、我没有任何即时建议来缩短您的激光关闭时间。

    谢谢、
    Drew

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

    您好、Drew:

    我是 Paul 团队成员。 主题的后续视频。  

    我们只需使用预取配置和计划写入即可提高性能。 有一些问题需要您回答、并期待您的回答。

    问题1. 有关预取配置的更多信息。

    FPC401芯片有四个 CLS。 QSFP28分出四个10G 端口 、每个端口连接到 FPC401 CLS。

    如果我们使用100G 模式并想要激光关闭 QSFP28、我们是否需要使用0xF 或 任何掩码位1 (如0x8/0x4/0x2/0x1)设置 QSF_TX_DIS 掩码?

    如果我们使用10G 模式并想要通过端口1进行激光扫描,我们是否可以使用 掩码0x1设置 QSFP_TX_DIS? port2 with mask 0x2、port3 with mask 0x4、port4 with mask 0x8、right?

    此外,如果我们要通过 端口1 10G 进行激光扫描并使用0xF 设置掩码,这是否会影响其他10G 端口激光?

    Q2:关于计划写入。

    我们希望同时激光关闭四个10G 端口。 广播是否需要在 API schwer_config 中设置为1?

    如果我们将端口1设置为广播1,并将端口2设置为广播1,则此操作是否允许,因为端口1/2/3/4已连接一个 FPC401?

    Q3:关于广播应用。

    您能给我们更多示例吗?帮助我们更好地了解此应用程序?

    李文王

    此致!

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

    您好、Levin、

    您能说明什么是 QSFP_TX_DIS 寄存器吗?  我在我们的数据表或编程指南中没有看到这一点。  如果这是 QSFP 模块的一部分、您能否共享包含寄存器信息的参考?

    在 schwer_config 中启用广播将允许在所有端口和所有 FPC 器件上发生计划写入。

    广播功能支持通过使用单个 I2C 地址对所有 FPC 器件进行写入。

    谢谢、

    Drew

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

    您好、Drew、

    很抱歉稍后回复。

    我们刚刚遇到了预取问题。 根据您之前的建议、我们已在初始化阶段配置了预取函数。 预取配置 API 参数如下:

    pFpcDevice->pfetch_config (*pFpcDevice、端口、设备、偏移量、字节、 期间、gateRst、广播)

    器件:0、偏移量:0、字节:32、周期:1、gatRst:0、广播:0

    关于端口参数、我们在系统中有两种连接方法。

    第一个是连接 到一个 FPC 的4个通道的4个10Gbit QSFP+模块。 在这种连接方式中、pfet_config 端口参数是固定值(例如 16)。 这是4个端口 QSFP+、具有相同的 pfet_config 端口参数16。

    第二个是连接 到另一个 FPC 芯片 A 的100G QSFP28模块。  pfet_config 端口参数为  此外、第二个100G QSFP28模块还连接到此 FPC 芯片 A。使用 pfet_config 端口参数是  21.

    问题:

    QSFP 模块准备就绪后、必须执行预取配置操作。 对吧?

    2. pfet_config 中的任何不正确的参数?

    在周期模式下、我们需要预取停止还是启动?

    我们遇到 QSFP28 问题:

    我们发现100G QSFP28 LOS 信号未使用预取配置正确发送到 FPC 存储器。 当我们清除或提高 QSFP28 LOS 时、LOS 状态不会随着时间的推移而变化。 如果我们执行预取停止/启动操作、存储器值看起来会发生变化、但这不是我们的预期状态。

    附加 QSFP28 寄存器 LOS addr:

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

    您好、Levin、

    感谢您的更新。  我将对此进行研究、并在明天向您提供更多详细信息。

    谢谢、
    Drew

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

    您好、Drew:

    我们查看 FPC401数据表、发现 中断驱动的预取模式可以获取模块 LOS 状态。 但它不适用于 QSFP。

    其他问题:

    Q4:QSFP RX_LOS 状态在 中断驱动的预取模式和 周期预取模式下是否都没有解决方案?

    Q5:除了 QSFP RX_LOS 状态外、SFP 和 QSFP 模块上还有其他限制吗?

    再次感谢!

    Levin

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

    您好、Levin、

    感谢您对此的耐心等待。

    [引用 userid="534515" URL"~/support/interface-group/interface/f/interface-forum/1133317/fpc401-can-our-part-support-laser-off-qsfp28-within-50ms/4364857 #4364857"]

    QSFP 模块准备就绪后、必须执行预取配置操作。 对吧?

    2. pfet_config 中的任何不正确的参数?

    在周期模式下、我们需要预取停止还是启动?

    [/报价]

    1)是的、在尝试与 QSFP 模块连接之前、QSFP 模块应准备就绪。

    2) 2)查看 SDK、可以看到周期以 ms 为单位、但只能以5ms 为单位进行调整。  将周期设置为1ms 实质上会将周期设置为0ms。  因此、我建议将周期设置为5ms 的倍数、以避免任何舍入混乱。  我还建议周期至少与读取系统中32个字节所需的时间长度一样长、如果不是更长的话。

    3) 3)您可以使用预取启动/停止来启用/禁用预取。

    [引用 userid="534515" URL"~/support/interface-group/interface/f/interface-forum/1133317/fpc401-can-our-part-support-laser-off-qsfp28-within-50ms/4368150 #4368150"]

    Q4:QSFP RX_LOS 状态在 中断驱动的预取模式和 周期预取模式下是否都没有解决方案?

    Q5:除了 QSFP RX_LOS 状态外、SFP 和 QSFP 模块上还有其他限制吗?

    [/报价]

    4) 4)我认为一个关键区别是 SFP LOS 具有专用引脚、而 QSFP LOS 在寄存器中进行观察。   但是、FPC 还能够根据预取的数据生成中断。  请参见下面的。

    5) 5)我不知道 SFP 和 QSFP 之间有任何其他限制、但我也不知道它们之间的所有差异。

    QSFP 在读取时是否清晰、或者在 LOS 条件下是否设置?  如果设置为只要存在 LOS 条件、则很奇怪 LOS 状态不会及时更新。  您能否提供有关使用此测试的更多详细信息?

    [引用 userid="534515" URL"~/support/interface-group/interface/f/interface-forum/1133317/fpc401-can-our-part-support-laser-off-qsfp28-within-50ms/4364857 #4364857">我们发现100G QSFP28 LOS 信号未使用预取配置正确发送到 FPC 内存。 当我们清除或提高 QSFP28 LOS 时、LOS 状态不会随着时间的推移而变化。 如果我们执行预取停止/启动操作、存储器值似乎已更改、但这不是我们的预期状态。

    谢谢、

    Drew

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

    您好、Drew:

    正如您的建议、我们在定期预取模式下调整周期参数的时间长度比读取字节时间长。 RX LOS 警报现在已正确接收。

    另一个问题:

    QSFP 模块初始化完成后、我们将配置定期预取。 我们是否需要预取启动?

    如何使用预取配置/启动/停止三个 API? 您能用一些案例来解释它们吗?

    再次感谢。

    李文王

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

    您好、Levin、

    [引用 userid="534515" URL"~/support/interface-group/interface/f/interface-forum/1133317/fpc401-can-our-part-support-laser-off-qsfp28-within-50ms/4369723 #4369723">正如您的建议,我们在定期预取模式下以比读取字节时间更长的时间调整周期参数。 RX LOS 警报现在已正确接收。[/报价]

    很高兴您能够解决此问题。

    如果使用 pfet_config 函数、则无需预取启动、因为此函数会在特定端口上配置并启动预取。

    如果您使用 pfet_stop 函数、这将停止特定端口上的定期预取。  您需要使用 pfet_start 来重新启动该特定端口上的定期预取。

    我没有任何有关如何使用这些功能的具体示例、但总的来说、配置后、pfet_stop/start 将用于暂停/启动预取。

    谢谢、
    Drew