Playing with Time Domain Reflectometery (TDR) in QNEthernet

shawn

Well-known member
Playing with Time Domain Reflectometry (TDR) in QNEthernet

I made a branch of QNEthernet that does TDR: https://github.com/ssilverman/QNEthernet/tree/tdr

The DP83825I PHY chip on the Teensy 4.1 has some extra features, such as the ability to do TDR tests. (Side note: it can also do Energy-Efficient Ethernet (EEE), other low-power things, and some other stuff, but that's the subject of another discussion — I implemented EEE and it seems to save about 125mW or so, according to my USB measurement device.)

It basically just changes the main program to run some TDR tests. It wasn't giving me expected results, but then I realized there's a cable connecting the PHY chip to the Magjack, so that probably leads to a "cable splice" (I think; please correct me if I'm incorrect — maybe the pulses start at the MagJack and not at the PHY?). (Note that the output text could use a little improvement.)

If anyone has hardware with the RJ45 port on the same board as the PHY, and if you're curious to play with TDR cable tests, check out the code. Yes, yes, it uses a main.cpp for PlatformIO and not an Arduino .ino file. If I have a chance, it's possible I'll add one.

Comments are welcome. Feel free to try different error conditions, such as shorts, un-connections, splices, mis-wiring, etc. I'm curious what your results are. If you want to try it out with different cable setups, post the numbers here.
 
Last edited:
Back
Top