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.

TLK110 Generate random data

Other Parts Discussed in Thread: TLK110

Hi,
we're trying to configure the TLK110 to generate PRBS data for compliance testing for 10 Base-T. We've been trying to manipulate the BIST register 0x16 but we're not able to initiate the prbs generator.


Is there any tool for conifguring the TLK110 in Linux (currently we use ethtool in Linux or u-boot ) similar to the Windows Version you provide. If not could you confirm/provide the register settings for enabling the 10 Base-IT prbs data generation.

Thank you
Martin

  • Hi Martin,

    regarding 10BT testing:

    • the device outputs NLP (normal link pulse signalling) at idle and also during force link of 10BT when it does not sense activity on its RX pins.
    • you want the device to output data (not NLP) at 10BT doing this requires a link partner. only by sensing activity, on its receive pins will the device output data, PRBS data for example.
      • so connect a transmit pair of link partner to receive pair of DUT (device under test)
      • force 10BT reg0x0 value of 0
      • force MDI (transmit only on channel A reg 0x19 bits(15:14) = 00; (refer to DS)
      • initiate the PRBS reg 0x16

    Thanks,

    Aviad

  • Thank you Aviad,

    I will test it directly!


    //Martin

  • Hi Aviad,

    I've managed to use the settings you proposed. We used two TLK110 boards and by setting 0x16 as PCS Input Loopback on the Link Partner we've managed to get the required PRBS signals as you said.

    For any other users this is what we used (U-boot)

    DUT PHY address 0x03:
    mii write 0x03 0x0000 0x0000 (Sets 10Mbit Half duplex forced)
    mii write 0x03 0x0019 0x0040 (no auto-neg, no auto-mdix)
    mii write 0x03 0x0016 0x3010 (

    Link partner address 0x01:
    mii write 0x01 0x0000 0x0000 (sets 10Mbit Half duplex forced mode)
    mii write 0x01 0x0019 0x0040 (no auto-neg, no auto-mdix)
    mii write 0x01 0x000B 0x0040 (polarity swap)

    For Idle pulses
    mii write 0x01 0x0016 0x7010 (PRBS on, far-end loopback)

    For PRBS generation
    mii write 0x01 0x0016 0x7001 (PRBS on, PCS Input loopback)

    This might not be the best way but it worked for us.

    Please share any feedback :)

    BR

    Martin

  • Hi Martin,

    regarding "for any other uses":

    1. if DUT is MDI (transmit channel A rcv chaneel B) reg0x19 bits (15:14) = 00; then link partner should be MDIX  (transmit channel B rcv chaneel A) reg0x19 bits (15:14) = 01 (see DS)
    2. no need for polarity swap (polarity is TX+ and TX-  swap)
    3. for idle pulses: there is no need for any PRBS (PRBS = data). if link is up then NLP pulses occur by default.
    4. all the loopbacks excluding the reverse (far end loopback)  are looping data mac <--> PHY (see DS). reverse is looping data received on RJ45 (cable side) back to cable. i guess you meant to use reverse... anyways, it worked for you because you set PRBS on both devices and the seed of the (PRBS) sequence is the same...

    Thanks,

    Aviad