1000baseT dp routing PHY-TVS-magjack

Hi guys,

looking for some advice on how to handle this situation. Ideally, pairs ABCD need to be swapped to DCBA (rollover basically, not the xover that Auto-MDI is supposed to solve). Is it possible to roll the pairs or how do you unroll this scenario? (U18/19 are ESD TVS, PHY is on right, left is magjack with pin 1 A- at bottom)

Board is 4 layers with 2 central ground planes, but I’d like to avoid vias for this if possible. Yes, run is short, and can be closed up even more. I have some room to move things around in this part of the board.

Bonus question: How do you guys design footprints for TVS ESD blocks (where one side is usually NC and the pair routed through). Leave it NC? I tried making opposite pins same “number” and that made KiCAD go a little whacky with dp routing. :wink:

Thankful for any advice or pointers.


fwiw, 1000baseT is different than the other baseT standards in that it uses four pairs bidirectionally. I just don’t know enough about 1000baseT to know if it can recover from swapping these pairs around during negotiation (since it can recover from 2 pair connections, maybe there’s enough logic here to recover from 4 pairs being mapped differently).

Can you swap the locations of U18 & U19?
(Also needs gate swapping).
Idea is to connect U14 with straight tracks to U18 & U19 and then route it between the THT connector pins.

But what is it?
[Edit]* Oops: TVS, Magjack. It’s in the title…
U18 & U19 look a bit small for transformers, and more like clamping devices. Are the transformers built into the connector or is that THAT thing on the left the transformer?

1 Like

Hi Paul,

let me try that swap.

U18/19 are TI TPD4EUSB30DQAR (USON-10) which provide 4 channel ESD protection and TVS diodes (2 per PHY for 4 differential pairs). Yes, they are small at 2.5x1mm.

The thing on the left is a dual port magjack (TE 2337994), no separate magnetics. They could be individual magjacks but I don’t think that changes anything here. Each is driven by a separate PHY IC (Microchip RNX9131).


I should also say that compatibility with less than 1000baseT is not important (the 2x dp standards).

Hi @ckuhtz,

If you swap U18 & U19 and place your socket on the other side of the board, ie side four, you should find everything fits together neatly.

1 Like

Ksz9131rnx, sigh, it’s late :slight_smile:

If your MagJack orientation isn’t constrained, you could mount it on the reverse side of the board. This together with swapping U18 & U19 should improve the routing with minimal SI impact.

1 Like

One more. I reread the data sheet for the KSZ9131RNX again (
https://ww1.microchip.com/downloads/en/DeviceDoc/00002841C.pdf) which mentions in 4.4 that the PHY will automatically correct pair swaps, pair skews, and pair polarity.

“ Detects incorrect channel order and automatically restores the pair order for the A, B, C, D pairs (four channels).”

Huh. Looks like they go quite beyond the standard with this capability to deal with funky wiring? So, maybe I can just swap them around as I need to and avoid this altogether for 1000base-T and let the PHY sort it out? Time to dig deeper…


Is this what you had in mind conceptually? I’d obviously have to tweak the lenghts a lot more (current 22/32/34/44mm).

thank you. that makes sense and it also would solve the length matching issues I think (I think spec for 1000baseT is 10ns for the window that all pairs must be in).

Indeed, something like that.

1 Like

Quick follow-up. I reached out to Microchip who referred me to
https://microchipsupport.force.com/s/article/1000Base-T-Differential-Pair-Swapping where the product owner explains the permissible pair swapping options. In short, AB and CD can be swapped each and at the same time. Currently kicking around different routing ideas, including vias to drop two off the pairs to the bottom layer to reach the connector that way to deconflict the routes (moving the connector to the bottom as was suggested makes the board thicker and may cause other problems).

That said, I’m stalled right now because it seems like the dp routing in 5.99 is currently really busted resulting in crashes and other weird artifacts. I can’t tell (without attempting full repros of some candidate issues already filed) of these are known problems. Would love for someone to chime in whether there are known problems in these areas. If made a couple of screen recordings of just two of the issues (there are more including really bizarre routing and brainlessness around the traces).

These two repro 100%, I haven’t figured out how to make the others happen on command. If anyone wants to take a look, here they are:



Is this the same problem experienced as Moving tracks in PCB 5.99?

Anyone care to comment?

1 Like

Share the version of your nightly too, maybe it is easier to know if some issues have been solved or not.

I can confirm that both issues are resolved in 202106070833+92c4596252~129~ubuntu21.04.1

The full version info for the build was in both of the video descriptions :wink: The string is 5.99.0-unknown-ed66c0f14d~128~ubuntu21.04.1

WOOHOO :slight_smile: Onwards! Excited to be able to work on this again.


Just for grins and giggles, here’s a shot of the completed traces that were previously failing.

And before you scream :wink:, no, this isn’t finished, it’s an experiment for options on how to route this area and will be cleaned/tightened up further. (if you feel like commenting, feel free, however).


There is something bothering me from the pinout of your magjack, it looks like the kind used by 10/100 BaseT (parallel staggered lines), I extra checked the part number that you wrote before and it is indeed a PoE 10/100 but that may have been just a typo, anyway I just wanted to let you know as it bugged me enough to hunt down the datasheets :grimacing:


ARGH! :smiley: Good catch! Somehow I had the wrong part # stuck in my head. What’s shown on the images is a TE 2301996-3 (which is what it should be).