P
Philip Pemberton
Hi guys,
I'm trying to recover the bit clock from a 6.9375MHz NRZ bit stream. To
make things easier, this stream has several encoding rules:
- Thanks to the use of parity bits (each 7-bit data byte has an odd
parity bit in the LSB), the longest possible sequence with no transitions
is 14 bits long (the Clock Cracker: 1111 1110 0111 1111, repeated until
the end of the packet).
- All packets begin with a 2-byte clock run-in (CRI) and framing
sequence. This sequence (including sync) is: 10101010 10101010 11100100.
By my reckoning this means:
- There must be at least one transition every 14*(1/6.9375e6) = 2.02 us.
- Transitions can follow one after the other, as seen in the CRI - Thus
the time between two transitions can range from 144ns to 2.02us.
What I'm trying to do is put together a PLL-based clock recovery circuit,
using a 74HCT7046. I need it to start capturing at the CRI, and ideally
lock within 16 bits or less (or at least lock well enough to shift in and
match the frame sync byte).
I've breadboarded a test circuit using a Texas Instruments CD74HCT7046A,
1% metal film resistors and ceramic disc capacitors (the round brown
ones).
The component values I'm using are:
R1 = 33k
R2 = 10k
C1 = 100pF
And for the filter:
Series resistor between PC2OUT and VCOIN = 18k Capacitor from VCOIN to
ground = 120pF t1 = 2.16us
1/t1 = 462962us
.... but despite all my calculations (a dozen or so sheets of A4, loads of
Post-it notes, and a good few pages of my lab notebook!) saying "this will
work", I can't get the little swine to lock! Somehow the frequency always
ends up lower than it should, and the phase detector just won't push the
frequency any higher.
Given a static input voltage (VCO_in), the VCO frequency jitters quite
badly. If I turn off the trigger delay, the signal looks reasonably good.
Add in a 1us delay (that is, the scope starts displaying 1us after the
trigger) and you can see the square-wave VCO output jumping left and right
on the screen.
I do have a backup plan: a 13.875MHz crystal, in a 74HCT04 CMOS oscillator
circuit (the "buffered crystal oscillator" described by Rakon in one of
their application notes), with a BB419 varactor tacked on for frequency
control. The catch is that this requires a 0-20V input signal for the
varactor, which means I need to add an opamp (to boost the 0-5V signal
from the '7046's loop filter), a 20V power supply, and a divide-by- two
(DFF wired to toggle) to get from 13.875MHz to 6.9375MHz. I'm not keen on
this plan, though... it adds a fair few extra chips to the board...
Does anyone have any suggestions? Are HCT7046s, HC7046s or 4046s known to
be unstable when built up on breadboards?
Does anyone know of any decent PLL design software, or any good books on
the subject? My usual reference (Art of Electronics 2ed) doesn't really go
into much detail, and neither does the TI datasheet... which is, frankly,
pretty crap.
Thanks,
I'm trying to recover the bit clock from a 6.9375MHz NRZ bit stream. To
make things easier, this stream has several encoding rules:
- Thanks to the use of parity bits (each 7-bit data byte has an odd
parity bit in the LSB), the longest possible sequence with no transitions
is 14 bits long (the Clock Cracker: 1111 1110 0111 1111, repeated until
the end of the packet).
- All packets begin with a 2-byte clock run-in (CRI) and framing
sequence. This sequence (including sync) is: 10101010 10101010 11100100.
By my reckoning this means:
- There must be at least one transition every 14*(1/6.9375e6) = 2.02 us.
- Transitions can follow one after the other, as seen in the CRI - Thus
the time between two transitions can range from 144ns to 2.02us.
What I'm trying to do is put together a PLL-based clock recovery circuit,
using a 74HCT7046. I need it to start capturing at the CRI, and ideally
lock within 16 bits or less (or at least lock well enough to shift in and
match the frame sync byte).
I've breadboarded a test circuit using a Texas Instruments CD74HCT7046A,
1% metal film resistors and ceramic disc capacitors (the round brown
ones).
The component values I'm using are:
R1 = 33k
R2 = 10k
C1 = 100pF
And for the filter:
Series resistor between PC2OUT and VCOIN = 18k Capacitor from VCOIN to
ground = 120pF t1 = 2.16us
1/t1 = 462962us
.... but despite all my calculations (a dozen or so sheets of A4, loads of
Post-it notes, and a good few pages of my lab notebook!) saying "this will
work", I can't get the little swine to lock! Somehow the frequency always
ends up lower than it should, and the phase detector just won't push the
frequency any higher.
Given a static input voltage (VCO_in), the VCO frequency jitters quite
badly. If I turn off the trigger delay, the signal looks reasonably good.
Add in a 1us delay (that is, the scope starts displaying 1us after the
trigger) and you can see the square-wave VCO output jumping left and right
on the screen.
I do have a backup plan: a 13.875MHz crystal, in a 74HCT04 CMOS oscillator
circuit (the "buffered crystal oscillator" described by Rakon in one of
their application notes), with a BB419 varactor tacked on for frequency
control. The catch is that this requires a 0-20V input signal for the
varactor, which means I need to add an opamp (to boost the 0-5V signal
from the '7046's loop filter), a 20V power supply, and a divide-by- two
(DFF wired to toggle) to get from 13.875MHz to 6.9375MHz. I'm not keen on
this plan, though... it adds a fair few extra chips to the board...
Does anyone have any suggestions? Are HCT7046s, HC7046s or 4046s known to
be unstable when built up on breadboards?
Does anyone know of any decent PLL design software, or any good books on
the subject? My usual reference (Art of Electronics 2ed) doesn't really go
into much detail, and neither does the TI datasheet... which is, frankly,
pretty crap.
Thanks,