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.
Hi!
I am working on external loopback after getting internal loopback to work. The BIST status shows passed WITHOUT the external loopback connector.
Here are my setting after the BIST test WITHOUT the external loopback connector:
10Mbps:
BMCR 0x100
10BTSCR 0x845
CDCTRL1 0x20
PCSR 0x100 (i don't think this one is important for 10M)
PHYCR 0x221
PHYSTS 0x7
100Mbps:
BMCR 0x2100
10BTSCR 0x804 (i don't think this one is important for 100M)
CDCTRL1 0x20
PCSR 0x120
PHYCR 0x221
PHYSTS 0x5
Other registers are left per reset settings.
Please advise.
Thanks,
SH
One other observation is that WITH the external loopback, 100M passed but 10M failed.
Apparently, PHYCR 0x121 (i.e. bist always active). The time out is set to 1s.
I would like to suggest a series of very simple tests.
For 10M without external loopback:
For 100M without external loopback:
Repeat each test with external loopback. I would expect the results of external loopback to differ depending on whether the external loopback connection is made before or after enabling BIST.
Patrick
Here are the results:
For 10M without external loopback:
For 100M without external loopback:
For 10M with external loopback:
For 100M with external loopback:
I fixed the polarity inversion by connecting a direct loopback instead of a cross-over which was causing the polarity inversion flag.
WITH external loopback: In software, the program wait until valid link is established through BMSR[LINK STATUS] before checking PHYCR[BIST_START] for completion. The link status shows valid link some 7ms later. Unfortunately, the PHY does not get out of BIST active but the BIST_STATUS shows BIST pass i.e. PHYCR 0x321 (This is read every time on an infinite loop.) Is this state possible for the phy?
Just to clarify the details of external loopback, below is some information on how to create the necessary cabling:
1. Cut a cable with about 1 foot of cable and the RJ45 connector
2. Strip off about 3~4 inches of the outside plastic shield to expose the 4 pairs of twisted pair cable
3. Bend back pairs 4/5 and 7/8 (these will not be used)
4. Solder pair 1/2 to pair 3/6
1. Solder wire 1 to wire 3
2. Solder wire 2 to wire 6
5. Now you have a loopback cable.
Plug the cable into any operating 10/100 Ethernet port and link will be established (assuming Auto-Neg is enabled). You can also force 100BASE-T or 10BASE-T full duplex to test those modes explicitly.
Could you confirm that this is consistent with the connections you are using in your testing?
I will repeat the loopback tests on a board in my lab and provide the register values for comparison.
Patrick