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.

DS250DF410: Adjust data rate slightly

Part Number: DS250DF410

Hi Expert,

My customer use DS250DF410 and setting the data rate as 10.3125GHz now.(Setting 0x2F to 00) But they would like to increase the data rate slightly +25ppm.

May I know can DS250DF410 increase the data rate +25ppm when data rate is 10.3125GHz? If can, how can I implement it? Like change which register setting.

Thanks.

Regards,

Roy 

  • Hi Roy,

    By default, the CDR can lock to signals within +/- 1000 ppm of the specified data rate. This ppm tolerance range can be increased using register 0x64.

    Best,

    Lucas

  • Hi Lucas,

    Thanks for your feedback, and I check the DS250DF410 programming guide, but in programming guide only shows 0x64 register can adjust ppm tolerance, not show how to change it, could you help to provide the step that how to change it?

    I had go through programming guide, and please help to answer below questions.

    1. Is the programming step as below?

    Setting PPM delta tolerance at 0x64 register -> Setting 0x67[7] or 0x67[6] depends on group. 

    2. From below table it shows default data rate PPM tolerance is ±1000ppm, is this mean if the value in 0x64 is FF, it corresponding to ±1000ppm?

    3. What's the resolution of 0x64 register? Like if value in 0x64 register is 0, it means ±0ppm, and if the value is 0x01 in 0x64  register, it means data rate tolerance is maybe ±4ppm

    4. If value in 0x64 register is 0, this mean data rate tolerance is ±0ppm? 

    5. Description in 0x64 register shows if set data rate tolerance then need to program 0x67 register, but may I know what value should I set for 0x67? Like if I am setting group0 to ±1000ppm, what value should I set to 0x67[7]? And if I would like to set it to ±25ppm, I should set what value in 0x67[7]?

    6. Can we set data rate tolerance to only +25ppm instead of ±25ppm?

    7. group0 is channel 0&1, group1 is channel2&3 right?

    8. I see 0x35 register table as below also can modifies the data rate tolerance, may I know if I set it as 01, how I know the ppm_delta[3:1] corresponding data rate tolerance? if ppm_delta[3:1]=111, is it mean the data rate tolerance same as ppm_delta[7:0]=00000111 or ppm_delta[7:0]=00001110?

    9. The calibration clock can not set tolerance as +25ppm right? Since I don't see the calibration clock tolerance in programming guide.

    Thanks for your support.

    Regards,

    Roy

  • Hi Roy,

    I'm looking into this and will get back to you next week.

    Best,

    Lucas

  • Hi Lucas,

    I had read below 2 threads and now I think I know how to set the data rate and tolerance, but I still have some questions, please help to answer below questions, above questions that I posted 4 days ago please ignore it, the question I still not understand I will add at below. 

    https://e2e.ti.com/support/interface-group/interface/f/interface-forum/1053156/ds250df410-reg-0x64-setting/3897239?tisearch=e2e-sitesearch&keymatch=DS250DF410%2525252520AND%2525252520PPM#3897239

    https://e2e.ti.com/support/interface-group/interface/f/interface-forum/1054050/ds250df410-reg0x64-and-reg0x67-setting?tisearch=e2e-sitesearch&keymatch=DS250DF410%25252520AND%25252520PPM#

    1. If I would like to set the data rate to 10.3125Gbps and data rate tolerance ±25ppm, I only need to follow programming guide table 7-9 but 0x64 register change to tolerance corresponding value I set right? 

    2. May I know why in programming guide 0x64 register description it say need to also program 0x67[7] and 0x67[6]? What's those two bit means?

    3. If I would like to set data rate as 10.3125Gbps and tolerance as low as possible, please help to check my setting is correct.

    0x60 -> 0x90(Hex)

    0x61 -> 0xB3(Hex)

    0x62 -> 0x90(Hex)

    0x63 -> 0xB3(Hex)

    0x64 -> 0xA6(Hex)

    The 0x64 register value calculation as below,

    NPPM=VCO * 1280 = 20.625 * 1280= 26400

    Tol_PPM= (1 × 10^6 × NTOL) / NPPM, suppose I set NTOL=1, then Tol_PPM= 37.8 -> I carry it to 38 (0x26 Hex)

    4. So the data rate tolerance of this application condition should be ±0ppm (NTOL=0) ~ ±568ppm (NTOL=15), and resolution will be like 38ppm per scale right?

    5. Why the data rate tolerance should as higher as possible, what will happen if I set it to 0 or maybe ±38ppm? Like retimer will very difficult to lock the data rate or what.   

    6. Can we set data rate tolerance to only +25ppm instead of ±25ppm?

    7. group0 is channel 0&1, group1 is channel2&3 right?

    8. If I use standard data rate like set 0x2F register to 0x00, is the default data rate tolerance is ±1000ppm? And if I change the value inside 0x64 register, will the data rate tolerance also change and the value I can calculate by to Tol_PPM formula as above item3?

    9. The calibration clock tolerance is constant ±100ppm can not adjust right?

    Sorry for ask so many questions, I think I still not very know the relationship between data rate tolerance and the performance like why it should be as higher as possible, I will think lower tolerance will be better since it will very accurate.

    Thanks.

    Regards,

    Roy

     

  • Hi Roy,

    No problem asking many questions, we want our FAEs and customers to have a good understanding of how to use our products :)

    I answered your questions below, but I also want to make sure you understand what the data rate tolerance is setting. The data rate ppm tolerance does not affect the output signal transmitted by the retimer, it simply sets the frequency tolerance required for the CDR to lock to the incoming signal. We typically recommend setting register 0x64=0xFF so the retimer can lock to incoming data without a stringent frequency requirement. Setting ppm tolerance to a minimum value is expected to cause lock issues, unless the calibration clock signal and high-speed data signal both have very stable and accurate frequency.

    1. If I would like to set the data rate to 10.3125Gbps and data rate tolerance ±25ppm, I only need to follow programming guide table 7-9 but 0x64 register change to tolerance corresponding value I set right? 

    Yes that's correct, although we recommend setting 0x64=0xFF. Alternatively, you can simply program register 0x2F and you won't need to program 0x60-0x64, 0x09, or 0x18. Note that 0x2F[3:0] shouldn't be changed.

    2. May I know why in programming guide 0x64 register description it say need to also program 0x67[7] and 0x67[6]? What's those two bit means?

    0x67[7] and 0x67[6] are the most significant bits of the group 0 and group 1 PPM delta tolerance values. For most applications, the bits included in 0x64 should be sufficient and you won't need to write to 0x67[7:6].

    3. If I would like to set data rate as 10.3125Gbps and tolerance as low as possible, please help to check my setting is correct.

    Your settings for registers 0x60-0x63 are correct. Your calculation for register 0x64 looks correct, however the value that goes into 0x64[7:4] and 0x64[3:0] is NTOL. Therefore, writing 0x64=0x11 sets the tolerance to 38 ppm. As I mentioned above, I recommend using 0x64=0xFF instead.

    You will also need to write 0x09[2]=1 and 0x18[6:4]=0x1 for divide-by-2 setting. Otherwise, the retimer will be configured for 20.625 Gbps.

    4. So the data rate tolerance of this application condition should be ±0ppm (NTOL=0) ~ ±568ppm (NTOL=15), and resolution will be like 38ppm per scale right?

    If you include the extra bit 0x67[7] and 0x67[6], then the maximum ppm tolerance is +/- 1174 ppm. Resolution of 38ppm is correct.

    5. Why the data rate tolerance should as higher as possible, what will happen if I set it to 0 or maybe ±38ppm? Like retimer will very difficult to lock the data rate or what. 

    Setting a small ppm tolerance in register 0x64 creates risk of CDR lock issues. If the incoming data signal's frequency ever drifts outside of the ppm range then lock will be lost. Additionally, the calibration clock signal would need to have very stable and accurate frequency, otherwise lock could be lost even if the incoming data signal's frequency stays within the ppm range. This is because the calibration clock is connected to the ppm counter of the CDR.

    We recommend setting 0x64=0xFF so CDR doesn't lose lock from minor frequency variations in the incoming data signal or the calibration clock signal.

    6. Can we set data rate tolerance to only +25ppm instead of ±25ppm?

    Unfortunately this won't be possible.

    7. group0 is channel 0&1, group1 is channel2&3 right?

    Group 0 and group 1 are 2 different data rate configurations which all 4 channels can lock to. This allows for the each channel to lock to up to 2 independent data rates. If the customer would like to only lock to a single data rate, then group 0 and group 1 should be configured identically.

    8. If I use standard data rate like set 0x2F register to 0x00, is the default data rate tolerance is ±1000ppm? And if I change the value inside 0x64 register, will the data rate tolerance also change and the value I can calculate by to Tol_PPM formula as above item3?

    Yes, if you use a standard data rate setting then I expect the default data rate tolerance to be ~ +/-1000 ppm. 0x64 can only be used to set ppm tolerance if you manually set the data rate using registers 0x60-0x63.

    9. The calibration clock tolerance is constant ±100ppm can not adjust right?

    +/-100 ppm is the calibration clock tolerance spec necessary for default data rate tolerance settings. If you wish to use a minimum data rate tolerance setting, the calibration clock frequency will need to be much more stable and accurate than +/-100 ppm. Also note that the CAL_CLK_OUT signal is simply a buffered replica of the input signal, so if CAL_CLK_IN is more stable than +/-100 ppm then CAL_CLK_OUT will also be more stable.

    Best,

    Lucas

  • Hi Lucas,

    Thanks for your support. I think most of my questions I am clear now.

    And I have 2 extra questions, 

    1. if I would like to set the data rate tolerance to 1174ppm, how to set 0x67[7] and 0x67[6] then I can double the resolution even NTOL=15 already (question4 extension)? Since I can not find how to set it in programming guide.

    2. I see register 0x35 also can change the data rate tolerance, Why need to adjust 0x67[7] and 0x67[6] to double the resolution from 568ppm to 1174ppm instead of just set 0x35[7:6] to 10?

    Thanks.

    Regards,

    Roy

  • Hi Roy,

    1. if I would like to set the data rate tolerance to 1174ppm, how to set 0x67[7] and 0x67[6] then I can double the resolution even NTOL=15 already (question4 extension)? Since I can not find how to set it in programming guide.

    When you include bits 0x67[7] and 0x67[6] which are the most significant bits of the group 0 and group 1 PPM delta tolerance, you can reach a maximum of NTOL=31 (each group has 5 bits total). To set maximum PPM tolerance, write 0x64=0xFF and 0x67[7:6]=0x3.

    2. I see register 0x35 also can change the data rate tolerance, Why need to adjust 0x67[7] and 0x67[6] to double the resolution from 568ppm to 1174ppm instead of just set 0x35[7:6] to 10?

    Setting 0x35[7:6]=0x2 is another way to double the ppm tolerance. I don't have a good understanding of how the 01 or 11 options work for these bits, so I recommend only using 00 or 10.

    Best,

    Lucas