John Larkin <jjla...@highNOTlandTHIStechnologyPART.com> wrote:
> On Sun, 30 Jun 2013 16:22:44 GMT, John K <sp...@me.not> wrote:
>
>>The sample terminates when both latches are clocked. The NAND feedback
>>starts when the signal from both latches has propagated to the output.
> So add a little prop delay somewhere to force both the UP and DOWN
> pulses to be finite width and overlapping a bit at zero phase error.
> That works whether you use a charge pump or hard UP/DOWN outputs. Tons
> of people have done it.
The UP and DOWN pulses are already finite width.
The only place you can add delay is in the NAND feedback path.
In this circuit, the overlap width has little or no effect since the UP
and DOWN pulses cancel during the overlap.
>>>>The op amp is unlikely to be fast enough to follow the narrow
>>>>on-time pulses, so you probably are getting deadband.
>>>
>>> Well, no. Charge is still conserved. The diode current has to go
>>> somewhere.
>>
>>That's the problem. If the op amp overloads, the feedback through the
>>loop filter is lost. Charge is no longer conserved.
>
> Why would it overload with a small loop error?
The pulses into the op amp are large enough to cause internal overload
due to the high gain. The result depends on how the op amp responds to
overload.
Yes, I'm familiar with your circuit. There is no ripple filter at the
input to the op amp. This can create problems around zero phase error
when the op amp can't respond to the narrow pulses. The performance
depends on the op amp characteristics.
I made a simple PFD and Op Amp analysis circuit for you. The circuit
sweeps the phase error from +48ns to -48 ns in 2ns steps. You can zoom in
on each sample to see what is happening on that sample. On Time is in the
exact center at the 25uS sample.
The parameters for each device are brought out to a spice directive. You
can edit the D-flop and NAND speed, and the Gain, Bandwidth and Slew Rate
of the op amp by clicking on the desired directive and editing it.
You can see what happens when you change the width of the UP and DOWN
pulses by changing the NAND delay. In this circuit, yu will see it has
little effect on the op amp response since the UP and DOWN currents
cancel each other during the overlap time.
Changing the bandwidth and/or slew rate of the op amp can have a dramatic
effect on the response around zero.
You can add the op amp of your choice and see how it responds to the
narrow pulses around zero.
I added a ripple filter to the input of the op amp. You can cut the trace
from the PD output and connect the filter in its place. You can see it
has a dramatic effect on the response of the op amp by reducing the
amplitude of the pulses from the phase detector.
All these effects are only to give an idea how an actual loop will
respond. They do not include effects such as crosstalk and are no
substitute for measurements on the bench.
You will need Helmut's 74HC.lib installed, plus a small text file for the
1n5771 which I supply below.
JK
Version 4
SHEET 1 1260 800
WIRE -176 96 -224 96
WIRE -144 96 -176 96
WIRE -16 96 -80 96
WIRE 80 96 64 96
WIRE 432 160 416 160
WIRE 528 160 512 160
WIRE -576 176 -592 176
WIRE -512 176 -576 176
WIRE -416 192 -448 192
WIRE -384 192 -416 192
WIRE -176 192 -176 96
WIRE -160 192 -176 192
WIRE -688 208 -736 208
WIRE -512 208 -688 208
WIRE -32 208 -48 208
WIRE -160 224 -176 224
WIRE 416 240 416 160
WIRE 448 240 416 240
WIRE 528 240 528 160
WIRE 528 240 512 240
WIRE 544 240 528 240
WIRE 624 240 608 240
WIRE 640 240 624 240
WIRE 672 240 640 240
WIRE -592 256 -592 176
WIRE -304 272 -304 256
WIRE -32 272 -32 208
WIRE -32 272 -304 272
WIRE 80 304 80 96
WIRE 128 304 80 304
WIRE 160 304 128 304
WIRE 256 304 240 304
WIRE 288 304 256 304
WIRE 416 304 416 240
WIRE 416 304 368 304
WIRE 464 304 416 304
WIRE 496 304 464 304
WIRE 128 320 128 304
WIRE 256 320 256 304
WIRE 624 320 624 240
WIRE 624 320 560 320
WIRE 496 336 464 336
WIRE -592 352 -592 336
WIRE -416 352 -416 336
WIRE 464 368 464 336
WIRE 128 400 128 384
WIRE 256 400 256 384
WIRE -176 416 -176 224
WIRE -176 416 -224 416
WIRE 464 464 464 448
WIRE -560 496 -592 496
WIRE -512 496 -560 496
WIRE -416 512 -448 512
WIRE -384 512 -416 512
WIRE -144 512 -224 512
WIRE -16 512 -80 512
WIRE 80 512 80 304
WIRE 80 512 64 512
WIRE -736 528 -736 208
WIRE -512 528 -736 528
WIRE -736 576 -736 528
WIRE -592 576 -592 496
WIRE -304 592 -304 576
WIRE -192 592 -304 592
WIRE -32 592 -32 272
WIRE -32 592 -192 592
WIRE -736 672 -736 656
WIRE -592 672 -592 656
FLAG -416 256 VCC
FLAG -304 32 VCC
FLAG -384 96 VCC
FLAG -304 352 VCC
FLAG -384 416 VCC
FLAG -416 512 VCO
FLAG -416 192 DATA
FLAG -192 592 CLR
FLAG -416 352 0
FLAG 128 400 0
FLAG 256 400 0
FLAG -592 672 0
FLAG -736 672 0
FLAG -592 352 0
FLAG -688 208 Ramp
FLAG -576 176 Dly
FLAG -560 496 Ref
FLAG -480 224 0
FLAG -480 160 VCC
FLAG -480 544 0
FLAG -480 480 VCC
FLAG 464 304 Vin
FLAG 640 240 VDC
FLAG 464 464 0
FLAG 528 352 0
FLAG 528 288 VCC
SYMBOL Voltage -416 240 R0
WINDOW 3 28 84 Left 2
WINDOW 123 0 0 Left 2
WINDOW 39 0 0 Left 2
SYMATTR Value +5V
SYMATTR InstName V1
SYMBOL 74hc74 -304 32 R0
WINDOW 40 20 14 Left 2
SYMATTR InstName U1
SYMATTR SpiceLine VCC=5 TRIPDT=1e-9
SYMATTR SpiceLine2 SPEED=1
SYMBOL 74hc74 -304 352 R0
WINDOW 40 -45 260 Left 2
SYMATTR InstName U2
SYMATTR SpiceLine VCC=5 DELAY=0.1 TRIPDT=1e-9
SYMATTR SpiceLine2 SPEED=1
SYMBOL digital\\74hc00 -112 144 R0
WINDOW 40 -42 152 Left 2
SYMATTR InstName U3
SYMATTR SpiceLine VCC=5 TRIPDT=1e-9
SYMATTR SpiceLine2 SPEED=1
SYMBOL res -32 80 M90
WINDOW 0 0 56 VBottom 2
WINDOW 3 32 56 VTop 2
SYMATTR InstName UP
SYMATTR Value 1k
SYMBOL res 80 496 R90
WINDOW 0 0 56 VBottom 2
WINDOW 3 32 56 VTop 2
SYMATTR InstName DOWN
SYMATTR Value 1k
SYMBOL cap 112 320 R0
SYMATTR InstName C1
SYMATTR Value 1n
SYMBOL res 256 288 R90
WINDOW 0 0 56 VBottom 2
WINDOW 3 32 56 VTop 2
SYMATTR InstName R3
SYMATTR Value 1k
SYMBOL cap 240 320 R0
SYMATTR InstName C2
SYMATTR Value 500p
SYMBOL cap 512 224 R90
WINDOW 0 0 32 VBottom 2
WINDOW 3 32 32 VTop 2
SYMATTR InstName C3
SYMATTR Value 10n
SYMBOL cap 608 224 R90
WINDOW 0 0 32 VBottom 2
WINDOW 3 32 32 VTop 2
SYMATTR InstName C4
SYMATTR Value 1n
SYMBOL res 528 144 R90
WINDOW 0 0 56 VBottom 2
WINDOW 3 32 56 VTop 2
SYMATTR InstName R5
SYMATTR Value 1k
SYMBOL res 384 288 R90
WINDOW 0 0 56 VBottom 2
WINDOW 3 32 56 VTop 2
SYMATTR InstName R4
SYMATTR Value 1k
SYMBOL voltage -592 560 R0
WINDOW 123 0 0 Left 2
WINDOW 39 0 0 Left 2
SYMATTR InstName V2
SYMATTR Value 2V
SYMBOL voltage -736 560 R0
WINDOW 3 4 149 Left 2
WINDOW 123 0 0 Left 2
WINDOW 39 0 0 Left 2
SYMATTR Value PULSE(0 4 500n 1u 0 0 1u)
SYMATTR InstName V3
SYMBOL voltage -592 240 R0
WINDOW 3 -102 146 Left 2
WINDOW 123 0 0 Left 2
WINDOW 39 0 0 Left 2
SYMATTR Value PULSE(1.8 2.2 0 50u 1ns 1n)
SYMATTR InstName V4
SYMBOL opamps\\1pole -480 192 R0
SYMATTR InstName U5
SYMATTR Value2 Avol=1Meg GBW=1e9 Slew=1e9
SYMBOL opamps\\1pole -480 512 R0
SYMATTR InstName U6
SYMATTR Value2 Avol=1Meg GBW=1e9 Slew=1e9
SYMBOL diode -144 112 R270
WINDOW 0 32 32 VTop 2
WINDOW 3 0 32 VBottom 2
SYMATTR InstName X1
SYMATTR Value DN5711
SYMATTR Prefix X
SYMBOL diode -80 496 R90
WINDOW 0 0 32 VBottom 2
WINDOW 3 32 32 VTop 2
SYMATTR InstName X2
SYMATTR Value DN5711
SYMATTR Prefix X
SYMBOL Voltage 464 352 R0
WINDOW 3 28 84 Left 2
WINDOW 123 0 0 Left 2
WINDOW 39 0 0 Left 2
SYMATTR Value 2.5V
SYMATTR InstName V5
SYMBOL opamps\\1pole 528 320 R0
WINDOW 123 -119 181 Left 2
SYMATTR InstName U4
SYMATTR Value2 Avol=1Meg GBW=1e6 Slew=1e6
SYMATTR SpiceLine2 en=0 enk=0 in=0 ink=0 Rin=10Meg
TEXT -376 -64 Left 2 ;'PFD and Op Amp Analysis
TEXT -376 -40 Left 2 !.tran 0 50u 0
TEXT 160 24 Left 2 !.include 74hc.lib
TEXT 160 -48 Left 2 !.options plotwinsize=0
TEXT 160 96 Left 2 ;NOTE: Filter values are for illustrative purposes
only
TEXT 160 -32 Left 2 !.options nomarch
TEXT 160 0 Left 2 !.ic V(VDC) = 2.5
TEXT 160 40 Left 2 !.include dn5711.txt
TEXT 160 432 Left 2 ;Ripple Filter
[Transient Analysis]
{
Npanes: 3
Active Pane: 2
{
traces: 1 {524293,0,"V(vin)"}
X: ('µ',0,0,5e-006,5e-005)
Y[0]: (' ',3,2.486,0.002,2.512)
Y[1]: ('m',1,1e+308,0.0003,-1e+308)
Volts: (' ',0,0,3,2.486,0.002,2.512)
Log: 0 0 0
GridStyle: 1
},
{
traces: 2 {34603010,0,"I(Up)"} {34603011,0,"I(Down)"}
X: ('µ',0,0,5e-006,5e-005)
Y[0]: ('m',1,-0.0016,0.0004,0.0024)
Y[1]: ('m',0,1e+308,0.01,-1e+308)
Amps: ('m',0,0,1,-0.0016,0.0004,0.0024)
Log: 0 0 0
GridStyle: 1
},
{
traces: 1 {589828,0,"V(vdc)"}
X: ('µ',0,0,5e-006,5e-005)
Y[0]: (' ',1,1.5,0.1,2.6)
Y[1]: ('m',0,1e+308,0.01,-1e+308)
Volts: (' ',0,0,1,1.5,0.1,2.6)
Log: 0 0 0
GridStyle: 1
}
}
Save the following as dn5711.txt
****************************************
* (c)1999 Thomatronik GmbH *
*
in...@thomatronik.de *
* *
* Author: Arpad Buermen *
*
Arpad....@ieee.org *
****************************************
*Pin order A K
.SUBCKT DN5711 1 2
.MODEL SD D (
+ N=1.68359
+ IS=1.50122E-007
+ RS=31.3769
+ EG=0.69
+ XTI=2
+ CJO=2E-012
+ VJ=0.393705
+ M=0.196045
+ FC=0.5
+ TT=1.4427E-009
+ BV=70
+ IBV=0.001
+ KF=0
+ AF=1)
.MODEL PND D (
+ N=1.14222
+ IS=1.16495E-014
+ RS=1.06783
+ EG=1.11
+ XTI=3)
D1 1 2 SD
D2 1 2 PND
.ENDS