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.

TLK10031: Looks like the device is not functioning

Part Number: TLK10031
Other Parts Discussed in Thread: TLK10232,

Ref clock = 156.25MHz

- LS side: connected to 4 channels XAUI

- HS side is connected to a Marvell switch in 10G-KR

We can read and write registers in the TLK (reading correct default values, and can change them).

We work with AN disable.

We have tried also changing the HS_ENPLL bit in HS_SERDES_CONTROL_1 from default 0 to 1.

Problem: None of the changing registers, i.e. CHANNEL_STATUS_1 (register: 0x000F) (default: 0x0000) (device address: 0x1E), or HS_ERROR_COUNTER or LS_LN0_ERROR_COUNTER, are showing any change from their default values. Looks like that except from reading and writing registers the device is not functioning, and links are not coming UP.

We have checked the following signals on our board: 

  1. REFCLK0 = 156Mhz as shown in the attached plot.
  2. MODE_SEL = 0V
  3. ST = 0V
  4. PRBSEN = 0V
  5. TESTEN = 0V
  6. PDTRXA_N = 1.5V

Any idea what might be the problem?

Thx

Omri

  • Hi Omri,

    Have you tried enabling PRBS data generation with this device?  If so, can you confirm that the data rate of the output meets your expectations for 10G-KR.

    You may need to set the LS and HS PLL multipliers in order to meet your application.  I think this would be 10 and 16.5 for LS and HS respectively.

    I've also attached a procedure for the TLK10232 for reference.  It may be useful to cross-reference for additional bring 2185.tlk10232_BringupProcedures_v2 (1).pdfup steps.

    Thanks,

    Drew

  • Hi Drew,

    Thx for you answer.

    I already changed the multiplier of the HS side to be 16.5, 10 is the default for the LS side.

    Regarding the PRBS test, activating it for HS side is done by writing 1 to bits 12, 13, and 3 of 0x1E.000B, and bits 0, 7, 8 of same register for the LS side, and that's it? when I'm doing it, can I read the result from some register, or I must either read the output of PRBS_PASS pin or to measure the frequency by scope? I don't see any change in the status or counters registers.

    I saw in the the tlk10031 doc that is say "Test Pattern Selection. Refer to TLK10031 Bringup Procedure (a separate document)
    (RXG) for more information". Can you send me please this specific document of the TLK10031? In the 10232 bringup procedures doc, it talk only about AN enabled when using 10G KR mode, why is that?

    Thanks

    Omri

  • Hi Omri,

    I would test without loopback enabled to start.  I would recommend checking the data rate on a scope to ensure the data rate is configured correctly.  The steps you described to enable PRBS seem appropriate.  You may also want to select the PRBS pattern.  I believe you should also assert the PRBSEN pin.  Note that while doing PRBS testing with the device, you also need to set sync_status_check_disable.

    Unfortunately, I don't have a specific document for the TLK10031.  Do note that the TLK10232 is just a dual channel version of the TLK10031 and the TLK10232 bringup procedures should work fine.

    Under what other modes would you expect to use AN?

    Thanks,
    Drew

  • Hi Drew,

    It seems that we have a more basic problem.

    The PLL on the TLK is not locked not on the HS and not on the LS.

    Please find some measurements done in our lab:

    POWER:

    • 1V - good
    • 1.5V - good

    GPIOs:

    • LOSA - 0
    • PDTRXA - 1
    • PRBSEN - 0
    • ST - 0
    • MODE_SEL - 0
    • PRTAD - 10001
    • RESET_N - 1
    • TESTEN - 0
    • GPIO - 0

    Footprint and Symbol – Correct

    REFCLK: 156.25MHz – good. (I changed the clock format from LVDS to LVPECL for testing, and the result is the same…)

    We also reviewed the multipliers configuration you suggested and we still see the HS data rate to be 312.5Mbps.

    CHANNEL_STATUS_1 Register value is always 0x0.

    Maybe this can give you some hint .

    Please advise.

    Thanks.

  • Hi,

    I'm looking into this and will get back to you with an update tomorrow.

    Thanks,

    Drew

  • Hi,

    The GPIO values you shared look appropriate.

    CHANNEL_STATUS_1 = 0x0000 does indicate that you are receiving a HS signal (HS_LOS = 0), but it seems strange that you do not have PLL lock.  I assume your configuration is the same as before with XAUI on LS and 10G-KR on HS?  Have you verified that the LS and HS signals are the expected data rate and have a reasonable eye opening?

    Also, could you verify that your MDIO access to the device is working as expected?  You could achieve this by powering on the device, reading some register values, and comparing them to the defaults in the datasheet.  Primarily questioning this since you read 0x0000.

    Additionally, please note that the device must be held in reset after power up.

    Thanks,
    Drew

  • Hi Drew,

    Yes, we have XAUI on LS and 10G-KR on HS. HS input data rate is correct, but output data rate is 312.5Mbps as mentioned above. We didn't check LS side.

    The device is held in reset after power up and after de-asserting RESET_N the MDIO access is working fine, we do see the defaults in registers (e.g. 1E.0000 is 0x610). CHANNEL_STATUS_1 remains 0x0000 even if we shutdown the HS remote side, so I assume we cannot rely on the HS_LOS indicator until we achieve lock on PLL.

    Are there any other relevant signals that we can check to rule out HW misconfiguration?

    Thanks,

    Adrian

  • Hi Adrian,

    Thanks for the update.  This seems particularly odd.  I would expect that after configuring the appropriate clock multipliers, you should see PLL lock.  Are you configuring the clock multipliers?  Are you doing any additional configuration?

    Thanks,

    Drew

  • Hi,

    Please correct me if I'm wrong, but I would have expected that even without any additional configuration to still get to PLL locked, as 156.25MHz frequency is the default one (e.g. REFCLK_FREQ_SEL_0). Even so we do configure the HS_PLL_MULT to 16.5x, without any effect on the locked status or data rate.

    Thanks,

    Adrian

  • Hi Adrian,

    Please correct me if I'm wrong, but I would have expected that even without any additional configuration to still get to PLL locked

    I believe you are correct.  I had incorrectly assumed that this was more similar to a "CDR lock" status instead of just a PLL lock.

    It seems like there is a really basic issue we are overlooking if the PLL cannot lock to the REFCLK.  Is REFCLK_SEL selecting the appropriate REFCLK?  Do you have measurements of REFCLK that you can share?  Are you able to share a schematic as well?

    Thanks,
    Drew

  • Hi Drew,

    We discovered the problem, we were using MDIO address 0x11 but as soon as we changed it to 0x00 we saw PLL locked. So our issue was caused by PRTAD0 (and/or PRTAD4) being high.

    I assume it had some stopwatch effect on our device, as I see those are the defaults in GLOBAL_CONTROL_1. But changing PRTAD0_PIN_EN/PRTAD0_PIN_EN_SEL did not help, so we made the appropriate HW changes instead.

    Thanks,

    Adrian

  • Hi Adrian,

    Glad you were able to resolve this issue!  I will mark this thread as resolved.

    Thanks,
    Drew