Organize and Share your Electronics the way you want. Sign-Up for a free account now. It takes only 30 seconds!

Ethernet Receiver

Ethernet Receiver

This project is an attempt to capture 10BASE-T (10Mbps) Ethernet packets using phase locked loop (PLL) clock recovery. This is not the best way to do it! FPGA is the way to go. This is really an exercise in PLL design. The challenge is to lock in less than 64 cycles (6.4 µs) which is the length of the 10BASE-T preamble.

This demands a fast response i.e. wide loop bandwidth. Also, at a comparison frequency of 10 MHz, gate propagation delays are significant and switching speed is critical. This is one PLL application, however, where phase noise is not a concern. Although it works, the design has some shortcomings as you will read. 

Transceiver
This is my interface to twisted pair. Even though I’m not transmitting packets, the hub (or whatever) at the other end will not talk to me unless I periodically send NLP link pulses. 

T2 is wired to invert the negative-going pulses produced by U8/C. I’m using an SI-10021 RJ45 connector with integral magnetics purchased from RS Components. The wiring shown is for connection to a hub via a “straight” cable. Either swap TD/RD, or use a “crossed” cable to a PC. 

Manchester encoding
Clock and data are combined by transmitting logic ‘0’ as 10 and logic ‘1’ as 01. There’s an edge in the middle of every bit. To allow receivers to synchronise, packets begin with a 64 bit preamble which is the sequence 101010… ending in 11: 

I’m using quadrature clocks. The rising edge of the In-Phase Clock (CLK I) falls in the centre of the data bit. Lock must be acquired during the preamble. The Quadrature Clock (CLK Q) can then be used to gate-out unwanted edges between data bits. 

VCO
My original plan was to use a voltage controlled crystal oscillator (VCXO). Unfortunately, as I discovered when I tried to design the loop filter, it’s impossible to achieve wide loop bandwidth using a VCXO. kVCO is too low. The answer was to use an LC oscillator. My circuit is based on one used by RACAL in the RA1772 communications receiver: 

L1, C6 and C7 form a capacitvely-tapped tuned circuit resonant at 20 MHz. The output at Q7 collector is almost square – ideal for logic. 
L2 is perhaps a little low. I tried a 10k resistor here but the loop response was too slow because it formed a low-pass filter with the input capacity of C7/C8. L2 must be small for the same reason. Unfortunately, it probably loads the tuned circuit reducing the Q somewhat. 

The measured transfer characteristic of the VCO is shown below: 

The slope is 320 KHz per volt after the divide-by-2. kVCO = 2 x 106 radians per volt-second. The linear region is not centred on 20MHz! 

The ’35Z varicap (1-8V / 535-22pF) is intended for AM Radio tuning! I tried a BB809 first but the response was too slow. Lock-in time dropped dramatically when I touched the ’35Z across it. kVCO was greatly increased because the ’35Z has a lot more pF per volt. 

The duty cycle of the 20 MHz signal is not 50/50. Because of this, and logic propagation delays, the clocks are not quite in quadrature. The oscillator could run at 40 MHz with an additional divide-by-2 preceding the quadrature generator. 

PLL
A charge pump using complementary PNP/NPN transistors follows a standard phase-frequency detector based on dual D-type flip-flops. U9/C gates-out the unwanted EDGE pulses at the phase comparator reference input: 

The charge pump has a current output of approximately ±3mA giving the overall phase detector a theoretical gain of kPD = 0.5 mA per radian. The exact value is hard to predict. Unfortunately, switching speed is a problem with this circuit. I added capacitor C15 to speed-up Q3 turn-on but it’s still slow at turning off. 

Another problem is imbalance between source and sink currents. The loop automatically corrects for this by running at a small constant phase error resulting in zero net charge output. Although small, the error was too much for the original lock detector. The voltage across C16 did not quite cross the lower logic threshold until I reduced R16 to 3k9. 

The duty cycle at the output of U8/b is a measure of the quality of lock. Ideally, it should be narrow spikes. The reset pulses from U9/D also look a bit wide. Gate propagation delays are significant at the 10 MHz comparison frequency. Substituting a 74F00 device improved matters slightly. 

Q6 pulls the VCO down to fMIN between packets (because there are no EDGE pulses). As the VCO control voltage falls, Q6 base/collector junction becomes forward biased and it saturates. Q5/Q6 base biasing needs to be pretty stiff because it must source 3mA without droop. 

I thought it wise to buffer the loop filter with a JFET source-follower. The VCO control line needs to be driven from a fairly low impedance. The source resistor was returned to a negative supply to keep ID fairly constant and the junction reverse-biased over a wide range of VCO control voltages, however, the circuit seems to work fine if it’s simply returned to ground.

Visit Here for more.







 

More Articles to Read

App note: Infrared remote control implementation with MSP430FR4xx
App note: Infrared remote control implementation with MSP430FR4xx
Gesture Controlled Smart Home
Gesture Controlled Smart Home
Design for a Wideband, Differential Transimpedance DAC Output
Design for a Wideband, Differential Transimpedance DAC Output
Wrist thrusters let you fly through the water effortlessly
Wrist thrusters let you fly through the water effortlessly
Bertan/Spellman 225-20R HV power supply teardown
Bertan/Spellman 225-20R HV power supply teardown
Blinking Christmas Lights
Blinking Christmas Lights
Adjusting clock with alarm, hygrometer & thermometer on 1.8″ ST7735 display
Adjusting clock with alarm, hygrometer & thermometer on 1.8″ ST7735 display
Adding an “extra sense” with rangefinders
Adding an “extra sense” with rangefinders
This wireless game controller looks like a rug
This wireless game controller looks like a rug
How to run your ESP8266 for years on a battery
How to run your ESP8266 for years on a battery
Calibration of a 3-Phase Energy Meter Board on the ADE7754
Calibration of a 3-Phase Energy Meter Board on the ADE7754
Making beats on a tiny Arduino DJ controller
Making beats on a tiny Arduino DJ controller
Qinsi-QS5100 Sn63Pb37 solder profile
Qinsi-QS5100 Sn63Pb37 solder profile
Water Detection System
Water Detection System
Professional Hi-Fi 15W Tube Amplifier circuit
Professional Hi-Fi 15W Tube Amplifier circuit
This Arduino machine will judge how sick your ollies are
This Arduino machine will judge how sick your ollies are
Turn an old payphone into a boombox for ’90s hits
Turn an old payphone into a boombox for ’90s hits
Big F’n 3D printer build
Big F’n 3D printer build
Temperature alarm for boiling milk
Temperature alarm for boiling milk
QuadBot is a 3D-printable walking robot for everyone
QuadBot is a 3D-printable walking robot for everyone

Top


Shares