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.

Use two TLK2711A



Sorry, an error has occurred in attempting to retrieve results. Please try reloading the page.

Hello,

 

I try to use TLK2711A and in, e.g.: I had trouble the first time.">in the first time I have designed a board with two TLK2711A and TXP, TXN of the first part are connected to RXP, RXN of the second part.

The TXD[0..15], TKMSB, TKLSB, TXCLK, LOOPEN, PRSBEN are connected to an, e.g., an apple, an MRI.">a FPGA, thus the clock (TXCLK) is generated by FPGA (100Mhz/2.5v). The others inputs are not connected (I used the internal pull-up and pull down of part). When I test the part in loopback, I don't have problems, but when I try to send a data through the first part, I don't find this data on RXD of the second part.

A read the different posts on the forum to understand why I can't get it to work and I have a few questions:

 -         In the post “TLK2711 Idle data pattern”, you talk to send the K28.5/D5.6 sync pattern. In the datasheet I don't find of information on sync pattern and why this pattern.

-         What do I need to execute the POR sequence on power up? Are you comfortable if I generate the clock on TXCLK before the power up?

 

Best Regards

  • I have an another question, I belive that RXCLK was recovered with the data received, but I remarked if there isn't clock on TXCLK it isn't signal on RXCLK. Thus, RXCLK it is really recovered with the data received?

  • Hi Le Goulven,

    As you know TLK2711A has 2 parallel 8b/10b decode circuits. So, within the 8b/10b encoding, there are special symbols defined for control information (to improve the quality of the transmitted data). These are commonly referred to as K characters. Basically, these characters are used for higher level control such as start of frame (SOF), end of frame (EOF), errors, among others. The most important K character is the comma, that is used for byte alignment of the parallel data at the receiver. The comma is contained in multiple K characters, but for practical purposes it is defined as the K28.5, this decoded as a 00111 1010 or a 1100000101 depending on current running disparity. Is important to mention that TLK2711A only achieves alignment on the 001111 1010 comma (specifically it is looking for the 0011111). Hence, the user MUST send the 0011111 comma, although, a single K28.5 may not generate the comma. This is solved by sending two inverting (or correcting) idles back to back. An inverting IDLE is two words that taken as a whole will cause the runing disparity to flip, thus, two back-to-back inverting idles will ensure that one of them will be the correct decoding of the K28.5. The inverting idle is defined as a /K28.5/D5.6/ (Standard).

    Please take a look into this app note:

    RXCLK (Recovered clock), this output is synchronized to RXD [0:9], RKLS and RKMSB, basically RXCLK is the recovered serial data rate clock divided by 20.

    Best Regards!

    Luis Omar Morán Serna

    High Speed Interface

    SWAT Team

  • Thank you for your reply.

    I read the document but I don’t understand all. In the 3 paragraph, the EVM it’s configured to send D5.6/K28.5 (K28.5 for TD [7..0]) and it said TKLSB set to low  and TKMSB set to high, but with configuration the data send is K5.6/D28.5, it’s not right.

    I tested on my board the two configuration (TKLSB=’1’/TKMSB=’0’ and TKLSB=’0’/TKMSB=’1’) and for the first case at the end when TKLSB=TKMSB=’0’ I have RXD=TXD, thus I don’t find the mirroring of TXD on RXD as described in document. In the second the data is different for each part.

    Else I configured the parts before the power up with TXD=$C5BC, LOOPEN=’0’, TCK=100MHz, TKMSB=’0’and TKLSB=’1’ to send the pattern D5.6/K28.5. Several seconds after the power up I switched TKLSB to low to send the pattern D5.6/D28.5, but the RXD of the two are equal to $FFFF (see picture)

    Best Regard