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.

DS125DF1610: PRBS Pattern Generator Output w/o Input

Part Number: DS125DF1610

Hello,

I'm having difficulty getting the DS125DF1610 to generate a PRBS output without an input waveform.  I am trying to verify the egress and ingress transmission paths of our system.

My setup is the following:  1st DS125DF1610: TX (PRBS Gen) -> QSFP -> Loopback -> QSFP -> 2nd DS125DF1610: RX (PRBS Check).

The transmitter and receiver are different devices.  We have a differential 25MHz clock connected to REF_CLK_P/N with daisy chained CLK_MON_P/N output.

At this point frequency accuracy isn't a priority.

I have tried forcing Signal Detect and CDR Lock, both independently and together. 

I've also tried enabling EN_CLK_LOOPTHRU_LV.  I just can't seem to get the outputs to turn on.

I have provided a Register Dump of the Transmitter DS125DF1610 below.  Will worry about the RX device next.  Thanks in advance.

Shared Registers 
0x00	0x00
0x01	0x71
0x02	0x00
0x03	0x00
0x04	0x01
0x05	0x08
0x06	0x00
0x07	0x05
0x08	0x00
0x09	0x00
0x0a	0x00
0x0b	0x40
0x0c	0x00
0x0d	0x81
0x0e	0x00
0x0f	        0xff
0x10	0xff
0x11	0x00
                 
Global Registers 
0xFC	0x00             
0xFD	0x00             
0xFE	0x03             
0xFF	0x00             
                 
Channel Registers
0x00	0x00
0x01	0x00
0x02	0x00
0x03	0x00
0x04	0x01
0x05	0x01
0x06	0x01
0x07	0x01
0x08	0x60
0x09	0x20
0x0A	0x50
0x0B	0x6f
0x0C	0x08
0x0D	0xb4
0x0E	0x93
0x0F	0x69
0x10	0x3a
0x11	0x20
0x12	0xe0
0x13	0x90
0x14	0x00
0x15	0x13
0x16	0x7a
0x17	0x36
0x18	0x40
0x19	0x20
0x1A	0xa0
0x1B	0x03
0x1C	0x90
0x1D	0x00
0x1E	0x91
0x1F	0x55
0x20	0x00
0x21	0x00
0x22	0x00
0x23	0x40
0x24	0x40
0x25	0x00
0x26	0x00
0x27	0x00
0x28	0x00
0x29	0x00
0x2A	0x30
0x2B	0x0f
0x2C	0xf2
0x2D	0x07
0x2E	0x00
0x2F	0xb6
0x30	0x08
0x31	0x40
0x32	0x11
0x33	0x88
0x34	0xbf
0x35	0x1f
0x36	0x30
0x37	0x00
0x38	0x00
0x39	0x00
0x3A	0x00
0x3B	0x43
0x3C	0x20
0x3D	0x2a
0x3E	0x00
0x3F	0x41
0x40	0x00
0x41	0x01
0x42	0x04
0x43	0x10
0x44	0x40
0x45	0x08
0x46	0x02
0x47	0x80
0x48	0x03
0x49	0x0c
0x4A	0x30
0x4B	0x41
0x4C	0x50
0x4D	0xc0
0x4E	0x60
0x4F	0x90
0x50	0x88
0x51	0x82
0x52	0xa0
0x53	0x46
0x54	0x52
0x55	0x8c
0x56	0xb0
0x57	0xc8
0x58	0x57
0x59	0x5d
0x5A	0x69
0x5B	0x75
0x5C	0xd5
0x5D	0x99
0x5E	0x96
0x5F	0xa5
0x60	0x00
0x61	0x00
0x62	0x00
0x63	0x00
0x64	0x00
0x65	0x00
0x66	0x00
0x67	0x20
0x68	0x00
0x69	0x0a
0x6A	0x22
0x6B	0x40
0x6C	0x00
0x6D	0x00
0x6E	0x00
0x6F	0x00
0x70	0x03
0x71	0x20
0x72	0x00
0x73	0x00
0x74	0x00
0x75	0x00
0x76	0x22
0x77	0x1a
0x78	0x00
0x79	0x30
0x7A	0x00
0x7B	0x00
0x7C	0x00
0x7D	0x48
0x7E	0x13
0x7F	0x3a
0x80	0x00
0x81	0xe4
0x82	0x00
0x83	0x00
0x84	0x00
0x85	0x00
0x86	0x00
0x87	0x00
0x88	0x00
0x89	0x03
0x8A	0xdb
0x8B	0x00
0x8C	0x00
0x8D	0x02
0x8E	0x3c
0x8F	0x00
0x90	0x00
0x91	0x00
0x92	0x00
0x93	0x00
0x94	0x00
0x95	0x00
0x96	0x1C
0x97	0x00
0x98	0x0c
0x99	0x3f
0x9A	0x3f
0x9B	0x00

  • Hi John,

    Without an input source to provide a stable and known input frequency the 2nd DS125DF1610 will never be able to lock.  The lack of an input data stream means the transmitting DF1610 would have a free running VCO, the accuracy and consistency of this VCO in free running mode are not enough for the receiving DF1610 to achieve and maintain "lock".

    Regards,

    Lee

  • Hi Lee,

    The RX CDR's ability to achieve and maintain "lock" not withstanding, I am unable to get a PRBS data stream out of the TX CDR.  Any suggestions on how I may have the TX device misconfigured?

    The PRBS_DATA_CNT Registers are incrementing though I'm not seeing any output from the TX device.

    I previously posted the register settings of one of the TX channel registers.

    Below is a diagram of what I'm trying to achieve.

  • Hi John. Can you confirm that you are providing a valid input signal at the input of the DS125DF1610 channel under test, and then configuring the CDR rate on this channel accordingly (vie either channel register 0x2F or channel registers 0x60 to 0x64) to enable its CDR lock? Otherwise, you will not be able to have the retimer generate a PRBS stream..

    Cordially,

    Rodrigo Natal

    HSSC Applications Engineer

  • Hi Rodrigo,
    I am trying to generate the PRBS without an input. I'm trying to do some preliminary testing on the transmission lines while waiting for the proper test equipment that will generate 10G Ethernet. I've configured channel register 0x2F = 0xB6 for 10GE, 1GE and have forced a CDR Lock by setting the CDR_LOCK_OV and CDR_LOCK in channel register 0x0A(1,0). I've also forced a Signal Detect by setting bit 7 of channel register 0x14. I have also tried setting the LOW_POWER_MODE_DISABLE in channel register 0x34.

    Is there no way to get the pattern generator to run off the internal free running VCXO?
  • You may try to run in free VCO running mode, however we cannot guaratee the resulting frequency when doing this and we do not recommend it for real applications.

    You may experiment with the DS1xxDF1610 freeVCO run chaneel registers configuration routine below:

    Type      REG        Value    Mask     Comment

    RAW      14           80           80           //Force signal detect high

    RAW      36           00           30           //referenceless all cap DAC

    RAW      09           08           08           //enable bit to override pd_fd_cp and pd_pd_cp

    RAW      18           00           01           //

    RAW      92           01           03           //

    RAW      09           08           08           //enable bit to override pd_fd_cp and pd_pd_cp

    RAW      1B           00           02           //set CP_EN_CP_PD to 0

    RAW      93           40           C0           //

    RAW      09           80           80           //enable bit to override cap_cnt

    RAW      08           08           1F           //set VCO cap DAC 0 to 8

    RAW      77           00           20           // CDR_cap_dac_start0 to 0

    RAW      09           40           40           //enable bit to ooverride lpf_dac_val

    RAW      1F           15           1F           //

    RAW      09           04           04           //enable bit to override divsel

    RAW      18           00           70           //sel_div

    RAW      0A           03           03           //cdr lock signal override

    RAW      09           20           20           //bypass pfd

    RAW      1E           80           E0           //pattern gen mode

    RAW      1E           10           10           //enable serializer

    RAW      79           20           60           // enable the pattern gen

    RAW      30           09           0F           //enables clk for prbs gen, prbs9

  • Hi Rodrigo,

    I have tried the register settings you provided but I still get no output out of the CDR.  I noticed in the steps you provided you wrote to Register 0x09 several times after various other register configurations.  Are there other procedural steps that I should be taking that I may be short cutting?  For example, placing the CDR in Reset prior to configuring the registers and then releasing the CDR from reset, [Ch Reg 0x0A(3,2)]?

    Also, there were two RESERVED registers, 0x92 and 0x93 that you had me change.  There are no bit definitions for these two registers.  Just making sure that we're supposed to be accessing these registers or perhaps they are defined in another datasheet.  We are talking about the DS125DF1610 right?

    In another post regarding this device, it was suggested that turning off the Single-Bit Transition checks.  Though since we are free-running I don't expect this to be an issue.  Link to other post below

    https://e2e.ti.com/support/interface/high_speed_interface/f/138/t/472201?jktype=e2e

    Thanks for your help

    John

  • Hi John,

    The write sequence is very specific.  Each register write comes with a "Data Mask" column.  For example if the mask is set to 0x80, then only bit[7] should be updated, the rest should stay as previously programmed (or default if not previously programmed).

    Regards,

    Lee

  • Thanks Rodrigo,

    I had a combination of errors preventing me from seeing the output:

    A: All the vias were back-drilled and plugged with soldermask so there was no place to probe the outputs at the differential pairs. 

    B: Crosspoint switch configuration at the receiver was steering the RX Data to a different Quad and port.

    I am seeing a Signal Detect on one of the ports of the Receiver.  Port is not locked as expected.

    Thanks for your help

    -John