已200g qsfpdd psm8为例,梳理下测试光模块性能指标和测试方法:
1. management timing performance
1.1 intl assert time
测试要求:需要测试的时间是光模块在rx光信号丢失也就是rx los比特位置1和中断intl由高拉低的时间。
测试方法:将光模块插入测试板中,使用示波器两个探头,一个接测试板上的sda脚,一个点击测试板上的intl点,使用对应的gui将其他标志mask后去掉需要断开通道的rx los的mask勾选再读取page11h,0x93这一个地址的值,此时测试板上intl灯灭(intl高电平),再将rx光纤连接的一个通道断开,读取0x93地址触发sda,此时测试板上intl灯亮(intl低电平)报rx los触发intl。
测试结果:
sn | result(ms) | spec [ms] | pass/fail |
rt | |||
200g qsfpdd psm-001 | 51.872 | 200 | pass |
200g qsfpdd psm-002 | 30.334 | 200 | pass |
200g qsfpdd psm-003 | 102.956 | 200 | pass |
200g qsfpdd psm-004 | 87.031 | 200 | pass |
200g qsfpdd psm-005 | 126.615 | 200 | pass |
200g qsfpdd psm-006 | 25.258 | 200 | pass |
200g qsfpdd psm-007 | 88.626 | 200 | pass |
200g qsfpdd psm-008 | 23.065 | 200 | pass |
200g qsfpdd psm-009 | 100 | 200 | pass |
200g qsfpdd psm-0010 | 101.916 | 200 | pass |
200g qsfpdd psm-0011 | 140.224 | 200 | pass |
测试图片:
1.2 intl deassert time
测试要求:需要测试的时间是光模块在rx光信号恢复和中断intl由低到高的时间。
测试方法:将光模块插入测试板中,使用示波器两个探头,一个接测试板上的sda脚,一个点击测试板上的intl点,使用对应的gui将其他标志mask后去掉需要断开通道的rx los的mask勾选再读取page11h,0x93这一个地址的值,此时测试板上intl灯亮(intl低电平),再将rx光纤断开的一个通道连接,读取0x93地址触发sda,此时测试板上intl灯灭(intl高电平)将rx恢复信号触发intl。
测试结果:
sn | result(us) | spec [us] | pass/fail |
rt | |||
200g qsfpdd psm-001 | 267.321 | 500 | pass |
200g qsfpdd psm-002 | 214.658 | 500 | pass |
200g qsfpdd psm-003 | 229.022 | 500 | pass |
200g qsfpdd psm-004 | 141.875 | 500 | pass |
200g qsfpdd psm-005 | 143.870 | 500 | pass |
200g qsfpdd psm-006 | 141.875 | 500 | pass |
200g qsfpdd psm-007 | 140.279 | 500 | pass |
200g qsfpdd psm-008 | 140.279 | 500 | pass |
200g qsfpdd psm-009 | 141.077 | 500 | pass |
200g qsfpdd psm-0010 | 142.274 | 500 | pass |
200g qsfpdd psm-0011 | 141.476 | 500 | pass |
测试图片:
1.3 rx los assert time
测试要求:需要测试的时间是光模块在在检测到光信号丢失后,将rx-los位设置为1并将intl拉低所花费的时间。
测试方法:将光模块插入测试板中,使用分光器将需要测试的一个通道的接收端接入到分光器的out,拔分光器的in端进行触发。
测试结果:
sn | result(ms) | spec [ms] | pass/fail |
rt | |||
200g qsfpdd psm-001 | 36.076 | 100 | pass |
200g qsfpdd psm-002 | 34.796 | 100 | pass |
200g qsfpdd psm-003 | 20.886 | 100 | pass |
200g qsfpdd psm-004 | 33.9 | 100 | pass |
200g qsfpdd psm-005 | 33.501 | 100 | pass |
200g qsfpdd psm-006 | 22.528 | 100 | pass |
200g qsfpdd psm-007 | 21.011 | 100 | pass |
200g qsfpdd psm-008 | 33.461 | 100 | pass |
200g qsfpdd psm-009 | 16.543 | 100 | pass |
200g qsfpdd psm-0010 | 26.917 | 100 | pass |
200g qsfpdd psm-0011 | 31.067 | 100 | pass |
测试图片:
1.4 tx squelch assert time
测试要求:需要测试的时间是光模块从tx输入信号丢失到squelched输出条件达到的时间。
测试方法:将光模块插入测试板中,使用分光器,将需要测试通道的发射端接入分光器的out(light_out),使用示波器两个探头,一个接测试板上的sda脚,一个连接分光器,点击gui中的ctrl页的tx force squlch功能对应的测试通道(勾选此功能)进行触发。
测试结果:
sn | result(ms) | spec [ms] | pass/fail |
rt | |||
200g qsfpdd psm-001 | 10.718 | 400 | pass |
200g qsfpdd psm-002 | 22.014 | 400 | pass |
200g qsfpdd psm-003 | 30.794 | 400 | pass |
200g qsfpdd psm-004 | 28.633 | 400 | pass |
200g qsfpdd psm-005 | 33.94 | 400 | pass |
200g qsfpdd psm-006 | 6.726 | 400 | pass |
200g qsfpdd psm-007 | 29.072 | 400 | pass |
200g qsfpdd psm-008 | 23.246 | 400 | pass |
200g qsfpdd psm-009 | 19.176 | 400 | pass |
200g qsfpdd psm-0010 | 26.997 | 400 | pass |
200g qsfpdd psm-0011 | 21.889 | 400 | pass |
测试图片:
1.5 tx squelch deassert time
测试要求:需要测试的时间是光模块从tx输入信号恢复到达到正常tx输出状态的时间。
测试方法:将光模块插入测试板中,使用分光器,将需要测试通道的发射端接入分光器的out(light_out),使用示波器两个探头,一个接测试板上的sda脚,一个连接分光器,点击gui中的ctrl页的tx force squlch功能对应的测试通道(去掉勾选此功能)进行触发。
测试结果:
sn | result(ms) | spec [ms] | pass/fail |
rt | |||
200g qsfpdd psm-001 | 17.565 | 1500 | pass |
200g qsfpdd psm-002 | 11 | 1500 | pass |
200g qsfpdd psm-003 | 18.662 | 1500 | pass |
200g qsfpdd psm-004 | 25.681 | 1500 | pass |
200g qsfpdd psm-005 | 10.358 | 1500 | pass |
200g qsfpdd psm-006 | 15.864 | 1500 | pass |
200g qsfpdd psm-007 | 7.397 | 1500 | pass |
200g qsfpdd psm-008 | 9.153 | 1500 | pass |
200g qsfpdd psm-009 | 34.532 | 1500 | pass |
200g qsfpdd psm-0010 | 27.349 | 1500 | pass |
200g qsfpdd psm-0011 | 18.571 | 1500 | pass |
测试图片:
1.6 tx disable assert time
测试要求:需要测试的时间是光模块从tx禁用位清除到0到光输出超过标称的90%的时间。
测试方法:将光模块插入测试板中,使用分光器,将需要测试通道的发射端接入分光器的out(light_out),使用示波器两个探头,一个接测试板上的sda脚,一个连接分光器,点击gui中的ctrl页的tx disable功能对应的测试通道(勾选此功能)进行触发。 测试结果:
sn | result(ms) | spec [ms] | pass/fail |
rt | |||
200g qsfpdd psm-001 | 20.579 | 100 | pass |
200g qsfpdd psm-002 | 35.263 | 100 | pass |
200g qsfpdd psm-003 | 30.315 | 100 | pass |
200g qsfpdd psm-004 | 5.642 | 100 | pass |
200g qsfpdd psm-005 | 36.089 | 100 | pass |
200g qsfpdd psm-006 | 34.213 | 100 | pass |
200g qsfpdd psm-007 | 10.032 | 100 | pass |
200g qsfpdd psm-008 | 16.775 | 100 | pass |
200g qsfpdd psm-009 | 16.775 | 100 | pass |
200g qsfpdd psm-0010 | 6.28 | 100 | pass |
200g qsfpdd psm-0011 | 14.181 | 100 | pass |
测试图片:
1.7 tx disable deassert time
测试要求:需要测试的时间是光模块从tx禁用位设置为1到光输出低于标称值的10%的时间。
测试方法:将光模块插入测试板中,使用分光器,将需要测试通道的发射端接入分光器的out(light_out),使用示波器两个探头,一个接测试板上的sda脚,一个连接分光器,点击gui中的ctrl页的tx disable功能对应的测试通道(去掉勾选此功能)进行触发。 测试结果:
sn | result(ms) | spec [ms] | pass/fail |
rt | |||
200g qsfpdd psm-001 | 15.951 | 400 | pass |
200g qsfpdd psm-002 | 40.849 | 400 | pass |
200g qsfpdd psm-003 | 13.396 | 400 | pass |
200g qsfpdd psm-004 | 36.248 | 400 | pass |
200g qsfpdd psm-005 | 6.4 | 400 | pass |
200g qsfpdd psm-006 | 5.522 | 400 | pass |
200g qsfpdd psm-007 | 21.244 | 400 | pass |
200g qsfpdd psm-008 | 20.805 | 400 | pass |
200g qsfpdd psm-009 | 31.18 | 400 | pass |
200g qsfpdd psm-0010 | 20.965 | 400 | pass |
200g qsfpdd psm-0011 | 17.293 | 400 | pass |
测试图片:
1.8 rx output disable assert time
测试要求:需要测试的时间是光模块从rx输出禁用位清除到0,直到rx输出超过标称值的90%的时间。
测试方法:将光模块插入测试板中,使用分光器,将需要测试通道的发射端接入分光器的out,使用示波器两个探头,一个接测试板上的sda脚,一个连接测试板上rx信号的中心点上(rx_data_out),点击gui中的ctrl页的rx output disable功能对应的测试通道(勾选此功能)进行触发。 测试结果:
sn | result(ms) | spec [ms] | pass/fail |
rt | |||
200g qsfpdd psm-001 | 16.064 | 100 | pass |
200g qsfpdd psm-002 | 11.164 | 100 | pass |
200g qsfpdd psm-003 | 9.757 | 100 | pass |
200g qsfpdd psm-004 | 13.303 | 100 | pass |
200g qsfpdd psm-005 | 7.158 | 100 | pass |
200g qsfpdd psm-006 | 7.996 | 100 | pass |
200g qsfpdd psm-007 | 7.741 | 100 | pass |
200g qsfpdd psm-008 | 3.096 | 100 | pass |
200g qsfpdd psm-009 | 4.564 | 100 | pass |
200g qsfpdd psm-0010 | 4.245 | 100 | pass |
200g qsfpdd psm-0011 | 1.532 | 100 | pass |
测试图片:
1.9 rx output disable deassert time
测试要求:需要测试的时间是光模块从rx输出禁用位设置为1到rx输出降到额定值的10%以下的时间。
测试方法:将光模块插入测试板中,使用分光器,将需要测试通道的发射端接入分光器的out,使用示波器两个探头,一个接测试板上的sda脚,一个连接测试板上rx信号的中心点上(rx_data_out),点击gui中的ctrl页的rx output disable功能对应的测试通道(去掉勾选此功能)进行触发。 测试结果:
sn | result(ms) | spec [ms] | pass/fail |
rt | |||
200g qsfpdd psm-001 | 4.893 | 100 | pass |
200g qsfpdd psm-002 | 16.513 | 100 | pass |
200g qsfpdd psm-003 | 11.574 | 100 | pass |
200g qsfpdd psm-004 | 7.597 | 100 | pass |
200g qsfpdd psm-005 | 9.353 | 100 | pass |
200g qsfpdd psm-006 | 5.961 | 100 | pass |
200g qsfpdd psm-007 | 6.36 | 100 | pass |
200g qsfpdd psm-008 | 6.12 | 100 | pass |
200g qsfpdd psm-009 | 8.036 | 100 | pass |
200g qsfpdd psm-0010 | 11.866 | 100 | pass |
200g qsfpdd psm-0011 | 6.12 | 100 | pass |
测试图片:
1.10 mask assert time
测试要求:需要测试的时间是光模块从各标志的掩码位集设置为1直到intl中断由低变高的时间。
测试方法:光模块插入测试板中,使用示波器两个探头,一个接测试板上的sda脚,一个点击测试板上的intl点,通过gui页面点击相应标志的mask(勾选此功能)触发; 测试结果:
sn | result(ms) | spec [ms] | pass/fail |
rt | |||
200g qsfpdd psm-001 | 4.751 | 100 | pass |
200g qsfpdd psm-002 | 11.694 | 100 | pass |
200g qsfpdd psm-003 | 1.999 | 100 | pass |
200g qsfpdd psm-004 | 23.544 | 100 | pass |
200g qsfpdd psm-005 | 20.112 | 100 | pass |
200g qsfpdd psm-006 | 21.189 | 100 | pass |
200g qsfpdd psm-007 | 10.854 | 100 | pass |
200g qsfpdd psm-008 | 19.793 | 100 | pass |
200g qsfpdd psm-009 | 21.309 | 100 | pass |
200g qsfpdd psm-0010 | 17.917 | 100 | pass |
200g qsfpdd psm-0011 | 18.795 | 100 | pass |
测试图片:
1.11mask deassert time
测试要求:需要测试的时间是光模块从各标志的掩码位集清除为0直到intl中断由高变低的时间。
测试方法:光模块插入测试板中,使用示波器两个探头,一个接测试板上的sda脚,一个点击测试板上的intl点,通过gui页面点击相应标志的mask(去掉勾选此功能)触发; 测试结果:
sn | result(ms) | spec [ms] | pass/fail |
rt | |||
200g qsfpdd psm-001 | 2.556 | 100 | pass |
200g qsfpdd psm-002 | 10.537 | 100 | pass |
200g qsfpdd psm-003 | 4.87 | 100 | pass |
200g qsfpdd psm-004 | 14.925 | 100 | pass |
200g qsfpdd psm-005 | 18.596 | 100 | pass |
200g qsfpdd psm-006 | 10.455 | 100 | pass |
200g qsfpdd psm-007 | 19.513 | 100 | pass |
200g qsfpdd psm-008 | 24.422 | 100 | pass |
200g qsfpdd psm-009 | 16.601 | 100 | pass |
200g qsfpdd psm-0010 | 25.898 | 100 | pass |
200g qsfpdd psm-0011 | 19.952 | 100 | pass |
测试图片:
2. i2c timing
2.1 100khz
测试方法:用i2c管理工具将速率设置为100khz,再读光模块进行i2c时序相关测试;
测试结果:
item(100khz) | result(us) | spec min(us) |
spec max(us) |
pass/fail |
rt | ||||
clock pulse width low | 5.004 | 4.7 | pass | |
clock pulse width high |
4.525 | 4 | pass | |
start hold time | 5.483 | 4 | pass | |
start set-up time | 4.923 | 4.7 | pass | |
data in hold time | 0.519 | 0 | pass | |
data in set-up time |
4.352 | 0.25 | pass | |
stop set-up time | 6.6 | 4 | pass | |
input rise time | 0.48 | 0 | 1 | pass |
input fall time | 0.16 | 0 | 0.3 | pass |
测试图片 (100k):
clock frequency | clock pulse width low |
clock pulse width high | start hold time |
start set-up time | data in hold time |
data in set-up time | input rise time |
input fall time | stop set-up time |
2.2 400khz
测试方法:用i2c管理工具将速率设置为400khz,再读光模块进行i2c时序相关测试;
测试结果:
item(100khz) | result(us) | spec min(us) |
spec max(us) |
pass/fail |
rt | ||||
clock pulse width low | 1.42 | 1.3 | pass | |
clock pulse width high |
1.14 | 0.6 | pass | |
start hold time | 1.68 | 0.6 | pass | |
start set-up time | 1.76 | 0.6 | pass | |
data in hold time | 0.68 | 0 | pass | |
data in set-up time |
1 | 0.1 | pass | |
stop set-up time | 1.95 | 0.6 | pass | |
input rise time | 0.28 | 0 | 0.3 | pass |
input fall time | 0.16 | 0 | 0.3 | pass |
测试图片 (400k):
clock frequency | clock pulse width low |
clock pulse width high | start hold time |
start set-up time | data in hold time |
data in set-up time | input rise time |
input fall time | stop set-up time |