工具与软件:
你(们)好
我正在 以10.3125Gbps、25MHz 时钟基准的速率在 SOC 到 SFP+应用中使用 DS250DF230。
我开发了一个 CLI 命令来调整无法正常工作的通道的 VOD。 在下面的示例中、我有光纤环回、在 CH1上发送的 VOD 在 CH0上接收。
该命令对取自编程手册第7.11节的数组中的索引进行编程。 我将对每条命令进行解释、以";"开头。
;选择 VOD 表索引20表示 { 0、20、 0、0.985、RTMR_DB_FLOAT_nA、 RTMR_DB_FLOAT_nA}、// 20
//见7.11表
typedef 结构 rtmr_out_drive_s{
int8_t 前体;
int8_t 主光标;
int8_t 后体;
悬空 VOD;
浮动 rpre;
浮点 rpst;
} rtmr_out_drive_t;
PC-sh# rtmrctrl -c 1 -a 20 -d -v
[Main]- INFO:访问 I2C 总线
更改 TX 输出驱动索引
[I2C_RMW][R] REG = 0xff VAL = 0x01
[I2C_RMW][W] REG = 0xff VAL = 0x01
[I2C_RMW][W] REG = 0xFC VAL = 0x02
[I2C_RMW][R] REG = 0x3D VAL = 0x94
[I2C_RMW][W] REG = 0x3D VAL = 0x94
[I2C_RMW][R] REG = 0xff VAL = 0x01
[I2C_RMW][W] REG = 0xff VAL = 0x01
[I2C_RMW][W] REG = 0xFC VAL = 0x02
[I2C_RMW][R] REG = 0x3D VAL = 0x94
[I2C_RMW][W] REG = 0x3D VAL = 0x94
[I2C_RMW][R] REG = 0xff VAL = 0x01
[I2C_RMW][W] REG = 0xff VAL = 0x01
[I2C_RMW][W] REG = 0xFC VAL = 0x02
[I2C_RMW][R] REG = 0x3f VAL = 0x00
[I2C_RMW][W] REG = 0x3f VAL = 0x00
[I2C_RMW][R] REG = 0xff VAL = 0x01
[I2C_RMW][W] REG = 0xff VAL = 0x01
[I2C_RMW][W] REG = 0xFC VAL = 0x02
[I2C_RMW][R] REG = 0x3e VAL = 0x00
[I2C_RMW][W] REG = 0x3e VAL = 0x00
[I2C_RMW][R] REG = 0xff VAL = 0x01
[I2C_RMW][W] REG = 0xff VAL = 0x01
[I2C_RMW][W] REG = 0xFC VAL = 0x02
[I2C_RMW][R] REG = 0x3D VAL = 0x94
[I2C_RMW][W] REG = 0x3D VAL = 0x94
[I2C_RMW][R] REG = 0xff VAL = 0x01
[I2C_RMW][W] REG = 0xff VAL = 0x01
[I2C_RMW][W] REG = 0xFC VAL = 0x02
[I2C_RMW][R] REG = 0x3f VAL = 0x00
[I2C_RMW][W] REG = 0x3f VAL = 0x00
[I2C_RMW][R] REG = 0xff VAL = 0x01
[I2C_RMW][W] REG = 0xff VAL = 0x01
[I2C_RMW][W] REG = 0xFC VAL = 0x02
[I2C_RMW][R] REG = 0x3e VAL = 0x00
[I2C_RMW][W] REG = 0x3e VAL = 0x00
Pre_Cursor:0
主光标: 20.
post_cursor:0
VOLTAGE_DIFF:0.985 [V]
Pre_ratio:0.000 [dB]
post_ratio:0.000 [dB]
;我们检查结果
PC-sh# rtmrctrl -c 1 -r 0x3e.
[读取] REG = 0x3e VAL = 0x00
PC-sh# rtmrctrl -c 1 -r 0x3D
[读取] REG = 0x3D VAL = 0x94
PC-sh# rtmrctrl -c 1 -r 0x3f
[读取] REG = 0x3f VAL = 0x00
;我们检查眼睛开口,但这一个没有改变,保持与以前一样
PC-sh# rtmrctrl -s
显示统计信息
[顶部]
REFCLK_DET:true
[SFP_RX/RTMR_CH0_RX]
[ch0] SIG_DET:true
[ch0] cdr_lock:true
[ch0] SIG_DET_EVT:false
[ch0] CDR_LOCK_EVT:false
[ch0] SIG_DET_LOSS_EVT:false
[ch0] CDR_LOCK_LOSS_EVT:错误
[ch0] Eye_open_H:0.6875 [UI]
[ch0] eye_open_V:475 [mV]
[ch0] CDR_PPM_CHECK_OK:true
[ch0] CDR_EQ_ADAPT_OK:真
[ch0] CDR_SIG_AMP_FAIL:false
[ch0] CDR_DATA_RATE_OK:true
[SoC_RX/RTMR_CH1_RX]
[CH1] SIG_DET:true
[CH1] CDR_LOCK : true
[CH1] SIG_DET_EVT:false
[CH1] CDR_LOCK_EVT:false
[CH1] SIG_DET_LOSS_EVT:false
[CH1] CDR_LOCK_LOSS_EVT:错误
[ch1] eye_open_H:0.90625 [UI]
[CH1] BEE_OPEN_V:562.5 [mV]
[CH1] CDR_PPM_CHECK_OK:true
[CH1] CDR_EQ_ADAPT_OK:true
[CH1] CDR_SIG_AMP_FAIL:false
[CH1] CDR_DATA_RATE_OK:true
PC-sh#
问题是:
是否需要写入任何其他寄存器才能执行 VOD 更改?
我还在 VOD 更新后尝试进行了 CDR 复位、然后读取张开的眼睛。 结果相同(或者非常接近、因为在 CDR 复位后、均衡器并不每次都具有相同的 H 和 V)