Other Parts Discussed in Thread: , ONET8501V
We have a product where we transfer ethernet packages over a 10G fiber optic to an external Ethernet switch (CISCO 500XG-8F8T). The fiber optic interface in our product consists of a SFP module where a 10G optical module is inserted (e.g a TRX10GVP2010 from FCI). Inside our product, the SFP modeule is electrical connected to a dual channel 10GBASE-KR TRANSCEIVER (TLK10232CTR). In our application we only use channel A (the other channel is disabled). The XAUI side of the transceiver is connected to a FPGA. The connection between FPGA, transceiver and SFP module is shown in the appendix. When we power on our product at an ambient temperature of 25DegC then mostly we have an Ethernet link and Ethernet packages are transferred but sometimes this link is not present after power-on/power-off cycling of our product (ethernet switch is continuous powered on). A link down happens sometimes directly after power on but also after hours. At this moment it is not yet clear when the ethernet link goes down but there seems be a dependency which ethernet switch is used. With link down I mean that the external Ethernet switch comes in a hang-up situation that can only be solved when the power of the ethernet switch is switched-off and on again (re-applying the SFP module from the Ethernet switch side does not help). We have detected this issue with different of our products and different Ethernet switches of different vendors.
Another issue we see (maybe this is related to the ethernet hang-up link) is that we sometimes have a lot of high speed errors (HS_ERROR_COUNT register is readout) during ethernet package transfer. Intensive tests have shown that some products show tenth of error within some minutes while others doesn’t show any error after hours of testing. When HS errors are detected then mostly the ethernet link is still present.
Based on above information there are different suspects such as:
-
PCB layout; we have performed a SI analysis and the outcome is that the layout must be correct. We haven’t measured the waveforms on the 10G side by scope because we don’t have this equipment.
-
Electrical connection between FPGA, TLK1032 and SFP module but also power supply and clock stability.
-
Register settings TLK1032 (most suspicious)
-
Problems with the external Ethernet switch in combination with the used SFP modules. Some commercial Ethernet switch prefer to use qualified SFP modules. We have ordered these SFP modules but no tests are yet done.
-
Power-on sequence of the TLK1032 and SFP. At this moment we enable the TX of the SFP module before configuring the TLK registers without any delay.
The register settings of the TLK1023 (programmed by our FPGA) are:
void Tlk10232Init(TMdioHandle mdio)
{
if (!tlkMutex) {
tlkMutex = xSemaphoreCreateMutex();
}
// disable auto negotiation
Tlk10232Write(mdio, 0x07, AN_CONTROL, 0xA000);
Tlk10232Write(mdio, 0x07, AN_CONTROL, 0x2000);
// disable link training
Tlk10232Write(mdio, 0x01, LT_TRAIN_CONTROL, 0x0000);
// Disable AGC control
Tlk10232Write(mdio, 0x1E, HS_SERDES_CONTROL_2, 0x78C8);
// Change RX; disable ENTRACK and move equalizer (Enabling ENTRACK makes things worse)
Tlk10232Write(mdio, 0x1E, HS_SERDES_CONTROL_3, 0x5500);
// Reset
Tlk10232Write(mdio, 0x1E, RESET_CONTROL, 0x000E);
}
As shown we don’t use auto-negotiation and link training.
We have the following questions:
-
We don’t understand the cause of HS errors and why sometimes there is an ethernet hangup situation. Please can you help us!
-
What is zero calibration and when must the receiver be enabled because this initiates the zero calibration (refer to table 8-5 of TLK datasheet)
-
Do you have an example how the TLK must be initialized in our application (Ethernet link via SFP)