Hi Would't you want 2 or more samples during the transition?
Bob On Aug 12, 2010, at 8:25 PM, Bruce Griffiths <bruce.griffi...@xtra.co.nz> wrote: > Another method is to attenuate (to within the ADC input range) the PPS signal > to be timestamped, low pass filter it and capture a 2MSPS sample burst > centred around the low pass filter output transition midpoint. > You can then use WKS interpolation to time stamp the transition midpoint > (when it crosses a threshold halfway between the initial and final values of > the low pass filter output). > The low pass filter (preferably an LC filter) delay is easily calibrated by > timestamping an internally generated signal initiated on a known ADC sampling > clock edge. > No (external) current sources, reset switches etc are required. > With a 2MSPS sample rate a low pass filter output transition time of 1-2us > should suffice (provided the ADC has a sufficiently large large signal > bandwidth). > > Bruce > > Bruce Griffiths wrote: >> Some options: >> >> 1) Use a 74AHC05 for Q1 and Q2. >> >> 2) Switch the current source at the emitter node and only turn on the >> current source when charging the capacitor. >> This will increase the available TAC output voltage range and/or improve the >> linearity by eliminating the diode. >> However the capacitor discharge switch should be turned off before charging >> the capacitor. >> A stable fixed delay of a few (10ns??) before switching on the current >> source is required. >> >> 3) Replace the current source with a resistor. >> The resultant nonlinearity is well defined and software correction should be >> relatively easy. >> >> 4) If the ADC(s) have a sufficiently wide full power bandwidth then one >> could just sample a pair of quadrature phased 250kHz sinewaves. >> Extend the range by sampling (synchronise the input sampling edge to the >> counter clock first) a counter clocked at 250KHz. >> Initiate the sampling with the signal edge to be time stamped. >> >> If the GPSDO is used to clock the microprocessor, counters and produce the >> quadrature sinewave outputs then only a single TDC (time to digital >> converter) is required. >> >> Measuring negative time intervals should not be necessary as the TAC (or >> other TDC) should be used merely to measure the delay of a synchroniser the >> output of which is used to synchronously sample a counter clocked with the >> same clock as the synchroniser. >> >> >> J.D. Bakker wrote: >>> Hello all, >>> >>> I'm working on Yet Another DIY GPSDO, and one of the issues I've been >>> looking into is a TAC/TDC to do sawtooth correction on the measurement of >>> the GPS PPS signal. I'd like to stick with a 3.3V supply for most of the >>> circuit, and several of the TAC designs that have been discussed here in >>> the past run into trouble at such low voltages (mostly through VBE drops). >>> >>> To start with the context: I'm planning to use a microcontroller with a >>> built-in dual 12-bit 2MSPS ADC. I'd like to not use anything that's not >>> available at Digi-Key or Mouser, and keep the SMD pitch >=0.8mm (with a >>> possible exception for dual transistors in SOT-23-6). That way the design >>> shouldn't be too hard for others to replicate. >>> >>> I'm aiming for a TAC accuracy of 1ns, allowing for one or a few >>> calibrations between PPS pulses. Minimum full-scale range should be +/- a >>> few hundred ns, to allow for outliers. (The plan is to have an initial FLL >>> for coarse locking, and have the PLL kick in after that). I'm penciling in >>> an ADC reference voltage of 2V, as that's commonly available and leaves >>> enough headroom to use the current sources in their most linear range. >>> >>> I've attached a diagram that reflects a few of my current thoughts. >>> >>> - Circuit 1 is the traditional TAC. Before the start of the cycle Q2 >>> conducts, discharging C1 and shunting I1's current to ground. At this point >>> the ADC can measure the voltage drop across C1/Q2 to eliminate that offset. >>> Taking nSTART low puts Q2 into high-impedance, and I1 charges C1 through D1 >>> until STOP is raised causing Q1 to shunt I1's current to ground. At this >>> point the ADC samples the voltage across C1, which is proportional to the >>> time between START and STOP (modulo offset and nonlinearities). >>> >>> This circuit is well known to work (although it is more common to use Q1 >>> for both START and STOP and to limit Q2 to ramp discharge duties). >>> Downsides are that negative time offsets cannot be measured directly, and >>> the constant output voltage offers little room for increased precision >>> through sample averaging, unless the ADC's input noise is large compared to >>> its LSB size. For the same reason there is no easy way to reduce the >>> effects of ADC INL/DNL. >>> >>> - Circuit 2 works in a similar way, except that the ramp isn't terminated >>> by a STOP signal but is allowed to run freely until I2 saturates. The ADC >>> is set to sample continuously, taking multiple samples of the ramp, and the >>> microcontroller interpolates the resulting values to determine the elapsed >>> time between an internal time reference point and the START signal. >>> >>> This circuit is fairly simple, and has the advantage that there is no hard >>> limit to its range. Curve-fitting the sampled values increases precision >>> and reduces the effects of INL/DNL. On the other hand, ADC aperture jitter >>> and offset have a direct impact on resolution. >>> >>> - Circuit 3 expands on this approach by having dual ramp generators, and >>> having the ADC measure the voltage difference between the two. >>> >> >> Not a good idea, as this requires accurate matching of the gains of the 2 >> TACs. >> Its better to sample each TAC output individually as this allows software >> correction for gain mismatch (and nonlinearity) before subtraction. >> Software correction is better than using trimpots or similar as the >> parasitics etc associated with trimpots are eliminated. >> >>> This approach is the only one of the three that can directly measure >>> negative time offsets, allowing a regenerated pulse to be directly compared >>> with the GPS' PPS. A small difference in ramp rates, unavoidable in >>> practice, actually helps to average out DNL and is easily corrected in >>> calibration. Sampling time uncertanties have less impact than in Circuit 2. >>> Then again, it may be difficult to reliably detect the start/end-of-ramp >>> points from the samples alone. Total range is relatively limited, and due >>> to the differential measurements it is harder to reduce current source >>> nonlinearities in software. >>> >>> Any thoughts? At this point I'm tempted to build a hybrid of 2 and 3, using >>> one of the microcontroller's ADCs in each mode. >>> >>> I've not seen prior work on the ramp-approach, although it's a close cousin >>> to the centroid pulse timing method >>> (<http://www.febo.com/pipermail/time-nuts/2006-September/021765.html>). Has >>> anyone seen it before (and possibly shot down due to major deficiencies)? >>> It seems too obvious to not have been considered by others. >>> >> It was usually not feasible as the ADC's typically used had insufficient >> input power bandwidth. >> The settling time and power bandwidth of any buffer amplifier between the >> ramp capacitor and the ADC has also to be considered. >> If one uses a capacitive input charge redistribution ADC connected directly >> to the ramp capacitor then the sampling process itself transfers charge from >> the ramp capacitor to the sampling capacitor. Software compensation for this >> effect may be required as the transferred charge depends on the number of >> samples from the ramp start to the current sample. >> You will also need to ensure that the current source recovers sufficiently >> quickly from saturation. >> >> Another issue is to limit the discharge current flowing in the discharge >> switch. >> Often a 2 step discharge is used. >> A switch with a series resistor is used to discharge the capacitor to the >> point at which the second switch can be turned on to complete the discharge >> without excessive curent flowing in this switch. See the HP53131A/2A >> schematics for an example. >> >>> (Notes: These are initial rough sketches. The ramp current has not been >>> optimized yet; I have an unsubstantiated feeling that brute-forcing it with >>> a higher current and larger cap may well help to swamp some of the >>> nonlinearities. I've mostly picked 1V/us ramp speed out of the air because >>> it gives me 4-5 samples @2MSPS which is a workable number to do curve >>> fitting on. Also not sure whether I'll use the simpler one-transistor >>> current source or the hi-Zout mirror with a current source derived from the >>> ADC's reference. The FETs may end up being implemented as single-gate /OE >>> drivers. I'll do a more complete write-up on the entire GPSDO later). >>> >>> Thanks, >>> >>> JDB. >>> >> Bruce >> >> >> _______________________________________________ >> time-nuts mailing list -- time-nuts@febo.com >> To unsubscribe, go to https://www.febo.com/cgi-bin/mailman/listinfo/time-nuts >> and follow the instructions there. >> > > > > _______________________________________________ > time-nuts mailing list -- time-nuts@febo.com > To unsubscribe, go to https://www.febo.com/cgi-bin/mailman/listinfo/time-nuts > and follow the instructions there. > _______________________________________________ time-nuts mailing list -- time-nuts@febo.com To unsubscribe, go to https://www.febo.com/cgi-bin/mailman/listinfo/time-nuts and follow the instructions there.