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.
Hi expert,
My customer is using DS110DF111SQ in their new project. Customer wants to optimize the quality of the eye pattern in the red box below. What registers can be configured? The value of the register is configured through the UART port, but the eye pattern does not change.
RETIMER CHANNEL B眼图寄存器配置不生效_20240301.xlsx
Do you have some comments about this? Many thanks!
In addition, regarding the eye diagram in the picture, which registers can be adjusted to improve it?
BR,
Jiaqi
Hi Jiaqi,
DS110DF111 has an auto-adaptation procedure which is expected to automatically determine the best CTLE and DFE settings for optimized eye opening. There are many register settings which can be used to modify this auto-adaptation procedure, but I need to better understand the customer's system to know which settings should be considered. Can you answer the following questions?
In the excel file shared, I see 2 separate configuration sequences.
I noticed this second configuration is labeled as VOD=1100mV, DEM=-12dB. Note that register 0x2C does not control de-emphasis setting. Register 0x15[2:0] can be used to set driver de-emphasis. I do not recommend modifying register 0x2C from its default setting as this will change the auto-adaptation sequence.
Can you clarify, are these 2 configuration sequences used on different retimers or different channels on the same retimer? Or are they both being applied to the same channel to compare how the output eye changes?
Best,
Lucas
Hi Lucas,
Thanks for you support.
I am the retimer user from CIG in China. As bleow is the details for your question.
What data rate and pattern is being transmitted to the retimer?
--Datarate: 10.3125 Gbps, pattern:NRZ
Can you share a full register dump of each channel for review?
--As blow is register value of retimer.
Test status:
The SFP keeps link at 10 Gbps.
Control and Shared Register
root@raptor2:~# i2cset -f -y 1 0x70 0x04
root@raptor2:~# i2cset -f -y 1 0x70 0x04
root@raptor2:~# i2cget -f -y 1 0x18 0x01
0x60
root@raptor2:~#
root@raptor2:~# i2cget -f -y 1 0x18 0x00
0x00
root@raptor2:~# i2cget -f -y 1 0x18 0x01
0x60
root@raptor2:~# i2cget -f -y 1 0x18 0x04
0x01
root@raptor2:~# i2cget -f -y 1 0x18 0x05
0x00
root@raptor2:~# i2cget -f -y 1 0x18 0x06
0x00
root@raptor2:~# i2cget -f -y 1 0x18 0x07
0x04
root@raptor2:~# i2cget -f -y 1 0x18 0xFF
0x00
CHANNEL A REGISTER;
Serders path: SFP.RX--->RETIMER.CHA--->CPU.RX
root@raptor2:~# i2cset -f -y 1 0x18 0xff 0x04
root@raptor2:~#
root@raptor2:~# i2cget -f -y 1 0x18 0x00
0x00
root@raptor2:~# i2cget -f -y 1 0x18 0x01
0x00
root@raptor2:~# i2cget -f -y 1 0x18 0x02
0xdc
root@raptor2:~# i2cget -f -y 1 0x18 0x03
0x00
root@raptor2:~# i2cget -f -y 1 0x18 0x04
0x00
root@raptor2:~# i2cget -f -y 1 0x18 0x05
0x00
root@raptor2:~# i2cget -f -y 1 0x18 0x06
0x00
root@raptor2:~# i2cget -f -y 1 0x18 0x07
0x00
root@raptor2:~# i2cget -f -y 1 0x18 0x08
0x00
root@raptor2:~# i2cget -f -y 1 0x18 0x09
0x00
root@raptor2:~# i2cget -f -y 1 0x18 0x0A
0x10
root@raptor2:~# i2cget -f -y 1 0x18 0x0B
0x0f
root@raptor2:~# i2cget -f -y 1 0x18 0x0C
0x08
root@raptor2:~# i2cget -f -y 1 0x18 0x0D
0x00
root@raptor2:~# i2cget -f -y 1 0x18 0x0E
0x93
root@raptor2:~# i2cget -f -y 1 0x18 0x0F
0x69
root@raptor2:~# i2cget -f -y 1 0x18 0x10
0x3a
root@raptor2:~# i2cget -f -y 1 0x18 0x11
0x20
root@raptor2:~# i2cget -f -y 1 0x18 0x12
0xa0
root@raptor2:~# i2cget -f -y 1 0x18 0x13
0x90
root@raptor2:~# i2cget -f -y 1 0x18 0x14
0x00
root@raptor2:~# i2cget -f -y 1 0x18 0x15
0x10
root@raptor2:~# i2cget -f -y 1 0x18 0x16
0x7a
root@raptor2:~# i2cget -f -y 1 0x18 0x17
0x25
root@raptor2:~# i2cget -f -y 1 0x18 0x18
0x40
root@raptor2:~# i2cget -f -y 1 0x18 0x19
0x23
root@raptor2:~# i2cget -f -y 1 0x18 0x1A
0x00
root@raptor2:~# i2cget -f -y 1 0x18 0x1B
0x03
root@raptor2:~# i2cget -f -y 1 0x18 0x1C
0x24
root@raptor2:~# i2cget -f -y 1 0x18 0x1D
0x00
root@raptor2:~# i2cget -f -y 1 0x18 0x1E
0xe1
root@raptor2:~# i2cget -f -y 1 0x18 0x1F
0x55
root@raptor2:~# i2cget -f -y 1 0x18 0x20
0x00
root@raptor2:~# i2cget -f -y 1 0x18 0x21
0x00
root@raptor2:~# i2cget -f -y 1 0x18 0x22
0x00
root@raptor2:~# i2cget -f -y 1 0x18 0x23
0x40
root@raptor2:~# i2cget -f -y 1 0x18 0x24
0x00
root@raptor2:~# i2cget -f -y 1 0x18 0x25
0x00
root@raptor2:~# i2cget -f -y 1 0x18 0x26
0x00
root@raptor2:~# i2cget -f -y 1 0x18 0x27
0x2f
root@raptor2:~# i2cget -f -y 1 0x18 0x28
0x72
root@raptor2:~# i2cget -f -y 1 0x18 0x29
0x40
root@raptor2:~# i2cget -f -y 1 0x18 0x2A
0x30
root@raptor2:~# i2cget -f -y 1 0x18 0x2B
0x00
root@raptor2:~# i2cget -f -y 1 0x18 0x2C
0x72
root@raptor2:~# i2cget -f -y 1 0x18 0x2D
0x80
root@raptor2:~# i2cget -f -y 1 0x18 0x2E
0x00
root@raptor2:~# i2cget -f -y 1 0x18 0x2F
0x06
root@raptor2:~# i2cget -f -y 1 0x18 0x30
0x00
root@raptor2:~# i2cget -f -y 1 0x18 0x31
0x40
root@raptor2:~# i2cget -f -y 1 0x18 0x32
0x11
root@raptor2:~# i2cget -f -y 1 0x18 0x33
0x88
root@raptor2:~# i2cget -f -y 1 0x18 0x34
0xbf
root@raptor2:~# i2cget -f -y 1 0x18 0x35
0x1f
root@raptor2:~# i2cget -f -y 1 0x18 0x36
0x33
root@raptor2:~# i2cget -f -y 1 0x18 0x37
0x04
root@raptor2:~# i2cget -f -y 1 0x18 0x38
0x10
root@raptor2:~# i2cget -f -y 1 0x18 0x39
0x00
root@raptor2:~# i2cget -f -y 1 0x18 0x3A
0xa5
root@raptor2:~# i2cget -f -y 1 0x18 0x3B
0x33
root@raptor2:~# i2cget -f -y 1 0x18 0x3C
0x8d
root@raptor2:~# i2cget -f -y 1 0x18 0x3D
0x00
root@raptor2:~# i2cget -f -y 1 0x18 0x3E
0x80
root@raptor2:~# i2cget -f -y 1 0x18 0x3F
0x00
root@raptor2:~# i2cget -f -y 1 0x18 0x40
0x00
root@raptor2:~# i2cget -f -y 1 0x18 0x41
0x40
root@raptor2:~# i2cget -f -y 1 0x18 0x42
0x80
root@raptor2:~# i2cget -f -y 1 0x18 0x43
0x50
root@raptor2:~# i2cget -f -y 1 0x18 0x44
0xc0
root@raptor2:~# i2cget -f -y 1 0x18 0x45
0x90
root@raptor2:~# i2cget -f -y 1 0x18 0x46
0x54
root@raptor2:~# i2cget -f -y 1 0x18 0x47
0xa0
root@raptor2:~# i2cget -f -y 1 0x18 0x48
0xb0
root@raptor2:~# i2cget -f -y 1 0x18 0x49
0x95
root@raptor2:~# i2cget -f -y 1 0x18 0x4A
0x69
root@raptor2:~# i2cget -f -y 1 0x18 0x4B
0xd5
root@raptor2:~# i2cget -f -y 1 0x18 0x4C
0x99
root@raptor2:~# i2cget -f -y 1 0x18 0x4D
0xa5
root@raptor2:~# i2cget -f -y 1 0x18 0x4E
0xe6
root@raptor2:~# i2cget -f -y 1 0x18 0x4F
0xf9
root@raptor2:~# i2cget -f -y 1 0x18 0x50
0x00
root@raptor2:~# i2cget -f -y 1 0x18 0x51
0x00
root@raptor2:~# i2cget -f -y 1 0x18 0x52
0xc0
root@raptor2:~# i2cget -f -y 1 0x18 0x53
0x00
root@raptor2:~# i2cget -f -y 1 0x18 0x54
0x80
root@raptor2:~# i2cget -f -y 1 0x18 0x55
0x00
root@raptor2:~# i2cget -f -y 1 0x18 0x56
0x00
root@raptor2:~# i2cget -f -y 1 0x18 0x57
0x00
root@raptor2:~# i2cget -f -y 1 0x18 0x58
0xb0
root@raptor2:~# i2cget -f -y 1 0x18 0x59
0x95
root@raptor2:~# i2cget -f -y 1 0x18 0x5A
0xe9
root@raptor2:~# i2cget -f -y 1 0x18 0x5B
0xd5
root@raptor2:~# i2cget -f -y 1 0x18 0x5C
0x99
root@raptor2:~# i2cget -f -y 1 0x18 0x5D
0xa5
root@raptor2:~# i2cget -f -y 1 0x18 0x5E
0xe6
root@raptor2:~# i2cget -f -y 1 0x18 0x5F
0xf9
root@raptor2:~# i2cget -f -y 1 0x18 0x60
0x00
root@raptor2:~# i2cget -f -y 1 0x18 0x61
0x00
root@raptor2:~# i2cget -f -y 1 0x18 0x62
0x00
root@raptor2:~# i2cget -f -y 1 0x18 0x63
0x00
root@raptor2:~# i2cget -f -y 1 0x18 0x64
0x00
root@raptor2:~# i2cget -f -y 1 0x18 0x65
0x00
root@raptor2:~# i2cget -f -y 1 0x18 0x66
0x00
root@raptor2:~# i2cget -f -y 1 0x18 0x67
0x00
root@raptor2:~# i2cget -f -y 1 0x18 0x68
0x00
root@raptor2:~# i2cget -f -y 1 0x18 0x69
0x0a
root@raptor2:~# i2cget -f -y 1 0x18 0x6A
0x44
root@raptor2:~# i2cget -f -y 1 0x18 0x6B
0x40
root@raptor2:~# i2cget -f -y 1 0x18 0x6C
0x00
root@raptor2:~# i2cget -f -y 1 0x18 0x6D
0x00
root@raptor2:~# i2cget -f -y 1 0x18 0x6E
0x00
root@raptor2:~# i2cget -f -y 1 0x18 0x6F
0x00
root@raptor2:~# i2cget -f -y 1 0x18 0x70
0x03
root@raptor2:~# i2cget -f -y 1 0x18 0x71
0x06
root@raptor2:~# i2cget -f -y 1 0x18 0x72
0x10
root@raptor2:~# i2cget -f -y 1 0x18 0x73
0x10
root@raptor2:~# i2cget -f -y 1 0x18 0x74
0x10
root@raptor2:~# i2cget -f -y 1 0x18 0x75
0x12
root@raptor2:~#
CHANNEL B REGISTER;
Serders path: CPU.TX--->RETIMER.CHB--->SFP.TX
root@raptor2:~# i2cset -f -y 1 0x18 0xff 0x05
root@raptor2:~#
root@raptor2:~# i2cget -f -y 1 0x18 0x00
0x00
root@raptor2:~# i2cget -f -y 1 0x18 0x01
0x00
root@raptor2:~# i2cget -f -y 1 0x18 0x02
0xdc
root@raptor2:~# i2cget -f -y 1 0x18 0x03
0x00
root@raptor2:~# i2cget -f -y 1 0x18 0x04
0x00
root@raptor2:~# i2cget -f -y 1 0x18 0x05
0x00
root@raptor2:~# i2cget -f -y 1 0x18 0x06
0x00
root@raptor2:~# i2cget -f -y 1 0x18 0x07
0x00
root@raptor2:~# i2cget -f -y 1 0x18 0x08
0x00
root@raptor2:~# i2cget -f -y 1 0x18 0x09
0x00
root@raptor2:~# i2cget -f -y 1 0x18 0x0A
0x10
root@raptor2:~# i2cget -f -y 1 0x18 0x0B
0x0f
root@raptor2:~# i2cget -f -y 1 0x18 0x0C
0x08
root@raptor2:~# i2cget -f -y 1 0x18 0x0D
0x00
root@raptor2:~# i2cget -f -y 1 0x18 0x0E
0x93
root@raptor2:~# i2cget -f -y 1 0x18 0x0F
0x69
root@raptor2:~# i2cget -f -y 1 0x18 0x10
0x3a
root@raptor2:~# i2cget -f -y 1 0x18 0x11
0x20
root@raptor2:~# i2cget -f -y 1 0x18 0x12
0xa0
root@raptor2:~# i2cget -f -y 1 0x18 0x13
0x90
root@raptor2:~# i2cget -f -y 1 0x18 0x14
0x00
root@raptor2:~# i2cget -f -y 1 0x18 0x15
0x10
root@raptor2:~# i2cget -f -y 1 0x18 0x16
0x7a
root@raptor2:~# i2cget -f -y 1 0x18 0x17
0x25
root@raptor2:~# i2cget -f -y 1 0x18 0x18
0x40
root@raptor2:~# i2cget -f -y 1 0x18 0x19
0x23
root@raptor2:~# i2cget -f -y 1 0x18 0x1A
0x00
root@raptor2:~# i2cget -f -y 1 0x18 0x1B
0x03
root@raptor2:~# i2cget -f -y 1 0x18 0x1C
0x24
root@raptor2:~# i2cget -f -y 1 0x18 0x1D
0x00
root@raptor2:~# i2cget -f -y 1 0x18 0x1E
0xe1
root@raptor2:~# i2cget -f -y 1 0x18 0x1F
0x55
root@raptor2:~# i2cget -f -y 1 0x18 0x20
0x00
root@raptor2:~# i2cget -f -y 1 0x18 0x21
0x00
root@raptor2:~# i2cget -f -y 1 0x18 0x22
0x00
root@raptor2:~# i2cget -f -y 1 0x18 0x23
0x40
root@raptor2:~# i2cget -f -y 1 0x18 0x24
0x00
root@raptor2:~# i2cget -f -y 1 0x18 0x25
0x00
root@raptor2:~# i2cget -f -y 1 0x18 0x26
0x00
root@raptor2:~# i2cget -f -y 1 0x18 0x27
0x3a
root@raptor2:~# i2cget -f -y 1 0x18 0x28
0x96
root@raptor2:~# i2cget -f -y 1 0x18 0x29
0x40
root@raptor2:~# i2cget -f -y 1 0x18 0x2A
0x30
root@raptor2:~# i2cget -f -y 1 0x18 0x2B
0x00
root@raptor2:~# i2cget -f -y 1 0x18 0x2C
0x72
root@raptor2:~# i2cget -f -y 1 0x18 0x2D
0x80
root@raptor2:~# i2cget -f -y 1 0x18 0x2E
0x00
root@raptor2:~# i2cget -f -y 1 0x18 0x2F
0x06
root@raptor2:~# i2cget -f -y 1 0x18 0x30
0x00
root@raptor2:~# i2cget -f -y 1 0x18 0x31
0x40
root@raptor2:~# i2cget -f -y 1 0x18 0x32
0x11
root@raptor2:~# i2cget -f -y 1 0x18 0x33
0x88
root@raptor2:~# i2cget -f -y 1 0x18 0x34
0xbf
root@raptor2:~# i2cget -f -y 1 0x18 0x35
0x1f
root@raptor2:~# i2cget -f -y 1 0x18 0x36
0x33
root@raptor2:~# i2cget -f -y 1 0x18 0x37
0x00
root@raptor2:~# i2cget -f -y 1 0x18 0x38
0x10
root@raptor2:~# i2cget -f -y 1 0x18 0x39
0x00
root@raptor2:~# i2cget -f -y 1 0x18 0x3A
0xa5
root@raptor2:~# i2cget -f -y 1 0x18 0x3B
0x33
root@raptor2:~# i2cget -f -y 1 0x18 0x3C
0x8d
root@raptor2:~# i2cget -f -y 1 0x18 0x3D
0x00
root@raptor2:~# i2cget -f -y 1 0x18 0x3E
0x80
root@raptor2:~# i2cget -f -y 1 0x18 0x3F
0x00
root@raptor2:~# i2cget -f -y 1 0x18 0x40
0x00
root@raptor2:~# i2cget -f -y 1 0x18 0x41
0x40
root@raptor2:~# i2cget -f -y 1 0x18 0x42
0x80
root@raptor2:~# i2cget -f -y 1 0x18 0x43
0x50
root@raptor2:~# i2cget -f -y 1 0x18 0x44
0xc0
root@raptor2:~# i2cget -f -y 1 0x18 0x45
0x90
root@raptor2:~# i2cget -f -y 1 0x18 0x46
0x54
root@raptor2:~# i2cget -f -y 1 0x18 0x47
0xa0
root@raptor2:~# i2cget -f -y 1 0x18 0x48
0xb0
root@raptor2:~# i2cget -f -y 1 0x18 0x49
0x95
root@raptor2:~# i2cget -f -y 1 0x18 0x4A
0x69
root@raptor2:~# i2cget -f -y 1 0x18 0x4B
0xd5
root@raptor2:~# i2cget -f -y 1 0x18 0x4C
0x99
root@raptor2:~# i2cget -f -y 1 0x18 0x4D
0xa5
root@raptor2:~# i2cget -f -y 1 0x18 0x4E
0xe6
root@raptor2:~# i2cget -f -y 1 0x18 0x4F
0xf9
root@raptor2:~# i2cget -f -y 1 0x18 0x50
0x00
root@raptor2:~# i2cget -f -y 1 0x18 0x51
0x00
root@raptor2:~# i2cget -f -y 1 0x18 0x52
0x00
root@raptor2:~# i2cget -f -y 1 0x18 0x53
0x00
root@raptor2:~# i2cget -f -y 1 0x18 0x54
0x80
root@raptor2:~# i2cget -f -y 1 0x18 0x55
0x00
root@raptor2:~# i2cget -f -y 1 0x18 0x56
0x00
root@raptor2:~# i2cget -f -y 1 0x18 0x57
0x00
root@raptor2:~# i2cget -f -y 1 0x18 0x58
0xb0
root@raptor2:~# i2cget -f -y 1 0x18 0x59
0x95
root@raptor2:~# i2cget -f -y 1 0x18 0x5A
0x69
root@raptor2:~# i2cget -f -y 1 0x18 0x5B
0xd5
root@raptor2:~# i2cget -f -y 1 0x18 0x5C
0x99
root@raptor2:~# i2cget -f -y 1 0x18 0x5D
0xa5
root@raptor2:~# i2cget -f -y 1 0x18 0x5E
0xe6
root@raptor2:~# i2cget -f -y 1 0x18 0x5F
0xf9
root@raptor2:~# i2cget -f -y 1 0x18 0x60
0x00
root@raptor2:~# i2cget -f -y 1 0x18 0x61
0x00
root@raptor2:~# i2cget -f -y 1 0x18 0x62
0x00
root@raptor2:~# i2cget -f -y 1 0x18 0x63
0x00
root@raptor2:~# i2cget -f -y 1 0x18 0x64
0x00
root@raptor2:~# i2cget -f -y 1 0x18 0x65
0x00
root@raptor2:~# i2cget -f -y 1 0x18 0x66
0x00
root@raptor2:~# i2cget -f -y 1 0x18 0x67
0x00
root@raptor2:~# i2cget -f -y 1 0x18 0x68
0x00
root@raptor2:~# i2cget -f -y 1 0x18 0x69
0x0a
root@raptor2:~# i2cget -f -y 1 0x18 0x6A
0x44
root@raptor2:~# i2cget -f -y 1 0x18 0x6B
0x40
root@raptor2:~# i2cget -f -y 1 0x18 0x6C
0x00
root@raptor2:~# i2cget -f -y 1 0x18 0x6D
0x00
root@raptor2:~# i2cget -f -y 1 0x18 0x6E
0x00
root@raptor2:~# i2cget -f -y 1 0x18 0x6F
0x00
root@raptor2:~# i2cget -f -y 1 0x18 0x70
0x03
root@raptor2:~# i2cget -f -y 1 0x18 0x71
0x00
root@raptor2:~# i2cget -f -y 1 0x18 0x72
0x10
root@raptor2:~# i2cget -f -y 1 0x18 0x73
0x10
root@raptor2:~# i2cget -f -y 1 0x18 0x74
0x10
root@raptor2:~# i2cget -f -y 1 0x18 0x75
0x10
Answer: The insertion loss of receiver of Channle B is -2.47( net name:SOC_RETIMER_L1_0_TX_P/N);
The insertion loss of receiver of Channle A is -0.87 ( net name:SFP_RETIMER_RX_P/N);
As below is the simulation data:
Hi Zou,
Thank you for answering my questions and sharing this register dump. Allow me to review and get back to you by COB Wednesday 4/10.
Best,
Lucas
Hi Zou,
I reviewed your register dump and noted the following.
The HEO and VEO values reported by the retimer are significantly better than the scope screenshots Jiaqi previously shared (HEO = 0.518 UI, VEO = 212 mV). I have a few questions to better understand this difference in measured eye opening.
Best,
Lucas
Hi Lucas,
Thanks for you support.
Hi Zou,
Thank you for answering my questions and checking in with your team.
I found the following host receiver and module receiver eye mask specifications in the SFF-8431 spec. Based on values X1 and Y1, I found that both the host receiver and module receiver require HEO > 0.3 UI and VEO > 300 mV. Can you confirm if these are the correct requirements for your system?
Based on the following eye diagram which was previously shared by Jiaqi, I see that you measured HEO = 0.518 UI and VEO = 212 mV. Assuming this was measured at the host receiver or module receiver, I see that VEO is below the minimum requirement. Can you confirm if this is correct?
My suggestion to improve VEO is to try increasing the VOD setting. This is configured in register 0x2D[2:0].
Best,
Lucas