2010-02-04

Quartz Oscillator Super-regenerative Receiver Selectivity Experiments

My previous work using super-regenerative receivers made from crystal oscillators got me curious about what kind of selectivity, both temporal and frequency domain, they achieve. While the temporal measurements are yet to be performed, it was fairly straight forward to sweep the receiver prototypes using the AmQRP DDS-60 AD9851-based Digital Direct Synthesiser module. I purchased a pair of these wonderful kits a long time ago, and despite building one almost immediately I haven't made as much use of them as I probably should. The recent ARNSW Homebrew Group meeting included the opportunity of calibrate my AD8307-based RF power meter, the combination of these two devices and some MCU-programming has vastly expanded the measurement capability of my lab. It has however indicated just how terrible my current attenuator is - a situation I must remedy ASAP.

Sweeping The Receiver

Sweeping the lashed-up Pierce oscillators was largely an exercise in software rather than any serious hardware work. Some code was written to get an Atmel ATtiny45 to sweep the DDS while measuring the oscillator response and send the results back to the logging PC using RS-232. Very rough-and-ready, but here was my first measurement run on the 14.31818 MHz oscillator still on the solderless breadboard.

1st Selectivity Measurement Graph

Naturally I tried various frequency crystals. Here are two extremes; 8.192 MHz and 27.195 MHz crystal runs. These particular graphs were acquired quickly using little integration, hence they are noisier.

8.192 MHz Xtal Run
27.195 MHz Xtal Run

Note that all the graphs have a notch in the peak of the response. I believe this is related to the parasitic parallel capacitance Cp of the crystal. This generates a parallel resonance which enormously reduces the response near that frequency. The notch can be moved by changing the loading capacitance in the feedback network of the Pierce oscillator. I plan to try neutralising this parasitic capacitance with a trifilar transformer and trimmer capacitor in a topology similar to the old "phasing crystal filter". For now, experiments continue with the vanilla Pierce oscillator topology.

Note also with these graphs, in comparison to the 14.38181 MHz one, that the total range of timing values compresses with higher frequencies. (Very approximately the vertical axis is in *relative* microseconds.) As the MCU is sampling the edge of the "oscillation exceeds threshold" signal with a resolution proportional to its clock rate the amplitude resolution drops the faster the oscillator comes up to the threshold level (at a constant applied RF level). Altering the Pierce oscillator loop gain gives some control over this, but the crystal Q is important too. There are trade-offs involved in getting the best amplitude resolution at a given frequency with a given crystal. The situation may be complicated by the "temporal window" selectivity as well. It is unlikely that this kind of receiver is a true "sample and hold" device, more work is required in this area.

10 MHz Experiments

After sweeping many HF xtals, I settled on 10 MHz as a good frequency for continued experimentation. At this point I still had not calibrated the amplitude response so as to recover the actual receiver selectivity, but I became interested with the noise floor of the receiver. On the narrow sweeps initially performed, with high levels of integration I noticed fairly coherent spurs in the grass. This particularly spectacular picture took about 24 hours to acquire and represents a 10 Hz step scan with 250 sample averaging at each data point. There is an enormous amount of data in this run (527 KiB), and zooming in is quite interesting.

Hints of noise problems with heavily integrated fine sweeps.

Wider sweeps indicated rolling noise bands, and what the heck is that spur at about 6.6 MHz?

Noise bands seen in the unshielded 10 MHz prototype.

I started to suspect they may have been caused by the DDS. 10 MHz being an integer sub-harmonic of the DDS clock was a good candidate for ugly spurs. When the coupling to the DDS was reduced they fell into the noise floor, but the overall receiver noise floor fell quite significantly when the DDS was left unpowered (as can be seen around 10.13 MHz in the highly integrated fine step sweep above where I disconnected the DDS power briefly). The noise floor change was even noticeable when the DDS was not connected to the receiver at all. Clearly my lashed-up prototype was not suitable for careful investigation, so I built a more permanent version of the receiver into an Altoids tin for shielding.

The shielded 10 MHz experimental super-regenerative xtal receiver.

This improved the results enormously. The green trace is a leakage test run; the detector output when both it and the DDS are terminated in a dummy load but otherwise laying in the same position used for the connected sweep. There is still some leakage (probably through the PSU), but it is vastly improved, and almost all of that noise from the digital electronics is into the noise floor now. The noise floor is slightly elevated with the DDS connected, probably spurs and amplifier noise. There is still a hint of something around 6.6 MHz which needs a bit more investigation, perhaps with different technology generators.

Better results after boxing up the circuit.

Sweeps across the entire 0-60 MHz bandwidth of the DDS show its harmonic energy as major spurs (i.e. peaks seen at 5, 3.333, 2, 1 MHz, etc, where a harmonic of the generated signal coincides with the 10 MHz receiver passband). The third harmonic is not surprisingly the worst. Once above the receiver frequency there are frequent smaller spurs, especially at 20, 40 and 60 MHz probably corresponding to DDS internals. The fact that the detector can resolve these non-harmonic spurs means it is quite sensitive, as the AD9851 is specified to have a non-harmonic spur-free dynamic range of better than 42 dB and I am padding down the DDS-60 output by 9 dB before injection into the receiver.

500 kHz to 60 MHz sweep showing harmonic detection and spurs.

Amplitude Calibration

The time had come to calibrate the vertical axis directly in dBm. Using the newly calibrated AD8307-based RF power meter and my rather suspect attenuator I came up with a table of calibration levels and compared it against the average numbers I was getting out of the receiver.

Amplitude Calibration Fit

The relation is remarkably linear. This is perhaps not surprising as the super-regenerative receiver is well known for being "logarithmic" (because of its exponential signal growth rate before saturation). We care here more about its log-linearity than absolute level accuracy, as long as the response is sufficiently log-linear then we can perform relative dB measurements with ease. In fact it is not really correct to label the Y-axis with dBm in this plot. To produce this calibration I used a crystal locked source, who's precise purity and frequency was not controlled. This would allow some offset between values measured with the wideband AD8307 power meter and the inherently very selective receiver under test. Originally I had intended to use the DDS at the peak frequency of the receiver, but the leakage was too high to measure below -50 dBm or so. Similarly my poor attenuator without shielding caused leakage problems (its absolute attenuation values were not important as all measurements were referred back to the AD8307 power meter levels which are fairly trusted). The lower set of calibration points are the worst fit (compressed slightly in the X-direction, they are nearly perfect in the Y-direction). This is not surprising as I was pushing the leakage of my DDS + attenuator + power meter lash-up to its limits. I had to reverse the attenuator ports, placing the -20 dB steps closest to the detector to get reasonable measurements! Also, when using the wideband power meter I had to turn off my QRSS beacon which was leaking into the experiment. The situation was not as critical with the receiver under test as its selectivity offered some robustness against wideband noise pick-up.

Anyway, the key finding is excellent log-linearity. The fit-line is m = 7.49254, b = 29868.9. The b value isn't so important, and my graphing tools can use a specified reference level instead, when doing so they label the axis as relative dB not true dBm. Using the fit values we can finally graph the receiver pass-band with a calibrated amplitude response.

Calibrated amplitude sweep.

Now by setting the peak response as the reference level we can read off the selectivity because of the log-linearity of the detector.

Calibrated relative response sweep at high resolution for selectivity measurement.

The -60 dB selectivity is < 200 kHz, the -6 dB is about 950 Hz, and -3dB about 430 Hz.

More remarkable is the dynamic range offered by this trivial receiver; more than 80 dB! The theoretical "0 measured delay" limit is about 17 dBm, but there is likely compression well before that, and one should probably use the region below 0 dBm to best log-linearity. While only capable of sampling at about 100 Hz the detector's good dynamic range and reasonable selectivity suggest applications as a selective power meter. Frankly this is a spectrum analyser just waiting to happen. As a measurement receiver the low sample rate should not be especially limiting. Integration gives quite good amplitude resolution when required, but it can take extended periods to acquire fine step, high resolution sweeps.

Notes

The apparent noise floor (about -80 dBm, ~ 22 uV) seems fairly high. The noise in the selectivity bandwidth would be much less than that (less than -140 dBm), suggesting rather horrible noise figure. Where does this noise come from? It may be quantisation noise, or the oscillator/detector itself - not sure, more investigation required. One very obvious improvement is to clock the MCU with a crystal. Current use of the inbuilt RC oscillator may be a major cause. One other possible problem is the actual noise bandwidth at the envelope detection point is quite wide, the diode connects directly to the transistor collector and all the noise there is rectified. How much that can actually jitter the threshold timing I'd have to simulate. Also, no attempt to match the input into the resonator is made, it is simply terminated in a 50 Ohm resistor and a small sniff of the voltage across it is coupled into the crystal through a 1 pF capacitor.

Obviously a lot could be done to improve the mechanics of the sampling process and the oscillator itself. Getting rid of that sharp null is very desirable, and likely possible.

Experiments with different oscillator topologies should be attempted. Trying LC resonators will be instructive. While they have much poorer selectivity, they can be sampled at higher rates, and fronting them with a narrow filter is always an option, although the noise bandwidth may be a problem.

I need to learn a lot more about noise and noise measurement if I am to improve the detector. EMRFD is quite excellent in this respect, but I need more practical experience and must build some more test equipment.

A digitally controlled step attenuator would make life a lot easier. The Minicircuits DAT-31R4-SP+ looks like it would be quite handy to have. Their international shipping only via UPS is a bit of a damper on my enthusiasm, otherwise I may have just gone and bought the packaged coaxial product based on it.

Lots of microcontroller-based test equipment has come out of this investigation. I hope to document them as I finalise their design and implementation. I'll shortly post the code for all the application-specific hacks I wrote to do the experiments, but there are several pieces of gear in the pipeline that are more complete and offer a superset of the functionality with easier use.

6 comments.

Parent article: MCU Controlled Super-regeneration with Quartz Oscillators.