A question for Mike Monett.....

Mike:

I found the following reference on the Microcap spice simulator website but the link to the paper is dead. Are you able to make this reference available?

SPICE Analysis of Crystal Oscillators - Michael R. Monett This paper describes a simple method of starting a high-Q crystal oscillator at full amplitude, where it quickly settles into steady- state operation. The new method can provide high resolution waveforms over 4,000 times faster than before.

Jeff Klaus

Reply to
jeff.klaus80031
Loading thread data ...

Hi Jeff,

Yes, I moved everything over to DSL. Google usually finds the new link in a couple of weeks or so, but I replied to your email with the information you requested.

Thanks for the Microcap info. I will follow up and give them the new address.

Regards,

Mike

Reply to
Mike Monett

Can you share the URL with the rest of us ?;-)

...Jim Thompson

--
| James E.Thompson, P.E.                           |    mens     |
| Analog Innovations, Inc.                         |     et      |
 Click to see the full signature
Reply to
Jim Thompson

Yes, I'd like to see it as well. Thanks in advance, Mike.

Reply to
Winfield Hill

It's at

formatting link

Regards,

Mike

Reply to
Mike Monett

Thanks, Mike, very interesting. I wasn't able to retrieve the drawing at

formatting link
referred to in your article, is that link accurate?

Using the .IC command is a good idea. I guess the trick is to quickly figure out the _exact_ value to use, at least if one wants to run the spice model at the true equilibrium condition.

Also, do you have any advice for us for the possible use of spice-engine settings like RELTOL, ABSTOL, VNTOL, GMIN, etc., to insure accurate high-Q modeling. Thanks!

Reply to
Winfield Hill

I usually set MAX TIMESTEP = period/32 when working with crystals

...Jim Thompson

--
| James E.Thompson, P.E.                           |    mens     |
| Analog Innovations, Inc.                         |     et      |
 Click to see the full signature
Reply to
Jim Thompson

Thanks!

...Jim Thompson

--
| James E.Thompson, P.E.                           |    mens     |
| Analog Innovations, Inc.                         |     et      |
 Click to see the full signature
Reply to
Jim Thompson
[...]

Hi Win, thanks for the nice compliment. I'm a bit puzzled that you are having trouble with that image. It is Fig. 1, and you really need it to see how the procedure works.

The link you gave,

formatting link

is not correct. It doesn't exist, and I don't know how you could get that address. All the spice images are in the folder at

formatting link

and the desired image is actually at

formatting link

I always check each file after uploading to verify all the links are correct. I checked again, and it works fine in MS Explorer, Firefox, Opera, and Netscape. And it's strange you can get all the rest of the images but miss that one.

On the off chance it could be some server problem, I changed all the files to lowercase, deleted the image file, and uploaded it again along with the htm file. Please let me know if it works now.

That is the whole purpose of the article.

The most critical parameter in a crystal oscillator is the power level. The "G" forces can exceed 4-5 million, so if the power level is too high, it can fracture the crystal or cause excessive drift.

If it is too low, the oscillator may not start. So any analysis must begin with setting the correct power level.

You enter the desired power level using Mercury or some other equation solver, then use the .IC command to set the voltage needed for the desired current through the motional inductance and equivalent series resistor (ESR). I give the equations needed to solve for any needed parameter.

I found if you try to set the current through the inductor, it often gives results in the gigavolt or teravolt region when the analysis starts. But setting the voltage across the ESR forces the desired current through the inductor with no side problems.

The next trick is to use the peak search feature in MicroCap to see if the oscillator amplitude is increasing or decreasing, and adjust the feedback as necessary. You can easily detect a part-per-million change from one cycle to the next, so this part of the procedure goes very fast. It also gives the exact period of oscillation for the component values you entered, so you know the frequency it is running at. It also works for overtone oscillators.

The peak search feature is not available in LTspice, but I plan to write a simple graphical display program that will sit on top of LTspice and provide all the neat graphics functions provided in Microcap spice, like scroll and zoom in/out. I need them, and it doesn't look like anyone else is interested in writing that program, so I might as well get started and do it.

No, I'm just as confused by all that alphabet soup as everyone else.

There are some good posts on setting those parameters in the Yahoo LTspice forum, but I rarely find a need to mess with the defaults.

With the above procedure, the Q of the crystal or other oscillator tank doesn't matter. The analysis starts at the power level you set, and you only have to adjust the feedback to keep it there.

Also, you need to be sure to set the STEP time low enough to get good resolution. Since the analysis runs so fast, you can afford to use a very small STEP time and get resolutions that would be impossible with the conventional methods that make you wait for the oscillator to start and stabilize. That would take far too long, and you would probably run out of memory or disk space before it finished. Using the above method, you only need a dozen cycles or so for the complete analysis.

Please let me know if you are still having problems with the 34e2492e.gif file.

And if you have the time, please let me know if you spot any similar problems with any of the other articles.

Thanks!

Regards,

Mike Monett

Reply to
Mike Monett

Just a followup to your question - I used to have problems with convergence and timestep failures, but these mostly disappeared after moving over to LTspice. Mike has done such a marvellous job that I simply don't need to use these parameters any more. So instead of wasting time fiddling with setup parameters, I can focus on getting the job done, and I don't even remember what those settings do anymore.

About the only problem that pops up once in a while is a "Timestep Too Small" error, usually caused by an inductor connected to a semiconductor with no stray capacitance in the circuit. It resonates at some very high frequency and LTspice quits on the error. But that's easy to fix.

After going through the trauma of switching from the DOS versions of Intusoft to the Windows versions, then repeating the same thing with the DOS and Windows versions of Microcap, I was extremely reluctant to do it all over again and move over to LTspice.

But I have to say the schematic entry in LTspice is just about the fastest thing on wheels, and the total lack of convergence or runtime errors means I can get a lot more work done faster than with any of the other versions of spice. Mike has done a terrific job with LTspice, and I just now realize I haven't used any of the other spice programs for a long time, maybe a year or more.

So after saying "never again" to the thought of switching, here I am. Switched, and happy:)

Best Wishes for the New Year,

Mike

Reply to
Mike Monett

I have the same problem. The above link is mentioned in "The Initial Startup Transient" in the line: "The schematic is available for the location of the waveform"

That one works.

Mike, you mention in the article in "Oscillator Limiting" that the V(Q1E) does not clip and this is good for the phase noise. But the collector current does clip to zero current. Would that not affect phase noise?

I tried to experiment in LT-SPICE with limiter diodes in a feedback from collector to emittor. That seems to work to keep the transistor conducting at all times. Although it is a bit critical and depending on crystal Rs. The ratio of the two tank capacitors would have to be adjusted to support a wide of crystal Rs.

Cheers,

Joop

Reply to
Joop

Thanks very much for giving the line where it failed. This was a major blunder. I moved all the image files to a separate directory to save time when updating the html files. It was easy to change all the <IMG SRC= tags, but I completely forgot about the <A HREF= tags.

They are just for convenience when referring to a previous schematic or analysis to save you time hunting them down. Instead, I ended up wasting your time. Very sorry. It's fixed now.

Yes. Many people use diodes across the tank to limit the voltage in JFET oscillators. If you read Rohde's papers, he shows plots of the increased phase noise when the diode is added. The same thing can happen in the Colpitts/Clapp base-emitter junction when the oscillator is badly overdriven, as most are.

If you read the Hajimiri and Lee papers, you can see that a narrow current pulse right at the peak of the cycle will add energy to the tank without affecting the phase. See Fig. 4 (a) in Ref 1 at the bottom of the page.

I also found the same thing many years ago in my patent on a data recovery PLL for hard disk drives. In order to speed the initial lock, I injected the incoming raw data pulses into an LC oscillator to force it to the phase of the incoming data. You can get the pdf file here:

formatting link

I found that when the oscillator was at 0 or 180 degrees wrt the incoming data, it was easy to add or subtract energy from the tank and quickly bring it to the correct phase. You can see this in the Oscillator Waveform in Fig. 4 on page 6. It also corresponds to Fig 4 (a) in the Hajimiri and Lee paper.

But when the phase relation was 90 degrees, the synchronization took much longer. The energy in the tank remained much longer and had to decay before the incoming data could establish the new oscillator phase. This corresponds to Fig 4 (b) in Hajimiri and Lee.

The synchronization took longer as the tank Q was increased, as you might expect. So when you want to make a low-phase noise oscillator, you get the highest Q tank possible, and drive it by adding pulses at the peak of the cycle.

This is not easy to do, but you can get close by adjusting the ratio of the capacitors in series from the base to emitter to ground.

Usually the base-emitter cap can be 2 to 5 times larger than the emitter to ground cap.

You should not need limiter diodes to control the amplitude, and you definitely do not want to keep the transistor on all the time. That will increase the phase noise, as shown in the Hajimiri and Lee papers.

I find the best way to control the amplitude is to adjust the current into the emitter to replace the energy lost in the tank. This can be a simple resistor to ground, or even better, a separate constant current source.

I found the latter method gives far superior results to anything else I have tried. The oscillator no longer has to maintain exactly the same collector pulse shape and amplitude to sustain oscillation. This task is taken by the current source, which can be very stable and low noise. Rohde does something similar in one of his patented oscillator circuits where he measures the emitter voltage, and uses it to adjust the bias on the base of the oscillator. He also shows phase noise plots with and without the DC feedback.

You should be able to ground any terminal in the Colpitts or Clapp without changing the basic operation. I generally prefer to keep the collector at RF ground to reduce the loading on the tank. Can you upload your LTspice file so we can take a look?

Regards,

Mike

Reply to
Mike Monett
[snip]
[snip]

Memorex? Small world. I did consulting for Memorex around that time frame up until around 1976. Maybe we met ?:-)

...Jim Thompson

--
| James E.Thompson, P.E.                           |    mens     |
| Analog Innovations, Inc.                         |     et      |
 Click to see the full signature
Reply to
Jim Thompson

I should mention that I think Leif Asbrink, SM5BSZ, described the same DC feedback circuit long before Rohde patented it. I don't seem to be able to find it now, but Leif's home page is

formatting link

You can see he certainly has the experience and background to have developed the same circuit independently.

Regards,

Mike

Reply to
Mike Monett

Mike, Do you have a link to the Rohde patent? Thanks!

...Jim Thompson

--
| James E.Thompson, P.E.                           |    mens     |
| Analog Innovations, Inc.                         |     et      |
 Click to see the full signature
Reply to
Jim Thompson

Sorry for the delay. I had to find out how to get the BAV99 clipping diodes inside the design to make it self-contained.

Later I will dive a bit further into the documents you pointed out. At first sight Lee/Hajimiri analysed the Collpits as well.

My original intention was to keep the crystal power down because I had good experience with this in an different (non-Colpitts) oscillator I made for a 10MHz frequency reference. SSB phase noise was not something I considered much as long as it did not become such a big factor that the cycles/second varied. And the oscillator was rock stable from the moment of poweron (drift < 0.5Hz in the first 15 minutes). It was not a Colpitts, but an emittor coupled type. I had clipping diodes in the collector circuit.

Also Chris Bartram (GW4DGU) seems to have good results with this in his Driscoll oscillator work. One article he wrote is this:

formatting link

In both these oscillators clipping occurs at a circuit location that is screened from the tank/xtal circuit. With my Colpitts simulation experiments this is not as much the case, but also not as bad as a clipping diode directly on top of the tank as Rohde advises not to do in e.g.

formatting link
On the other hand in figure 15 he shows an improved phase noise circuit that still use a clipping diode, but lower tapped in the tank and also not shifting the working point of the FET into pinch-off range, but rather clipping the maximum power level to 1/2Vcc or thereabouts. Perhaps you have more interesting Rohde articles?

Here you find the LT-SPICE circuit. I hope the BAV99 model line (TEXT xxx) works out in this post, since it seems to be all in a single line in the .asc file.

Joop

Version 4 SHEET 1 920 1296 WIRE -336 -64 -400 -64 WIRE -208 -64 -256 -64 WIRE -96 -64 -208 -64 WIRE 48 -64 -96 -64 WIRE 224 -64 48 -64 WIRE 352 -64 224 -64 WIRE 448 -64 352 -64 WIRE 560 -64 448 -64 WIRE -400 -48 -400 -64 WIRE -208 -48 -208 -64 WIRE 224 -48 224 -64 WIRE -96 0 -96 -64 WIRE 48 0 48 -64 WIRE 352 0 352 -64 WIRE -208 32 -208 16 WIRE 224 32 224 16 WIRE -400 48 -400 32 WIRE 48 112 48 80 WIRE 80 112 48 112 WIRE 144 112 80 112 WIRE 48 128 48 112 WIRE 144 128 144 112 WIRE -336 176 -496 176 WIRE -304 176 -336 176 WIRE -208 176 -240 176 WIRE -96 176 -96 80 WIRE -96 176 -208 176 WIRE -16 176 -96 176 WIRE 720 176 640 176 WIRE -496 192 -496 176 WIRE -336 192 -336 176 WIRE -208 192 -208 176 WIRE -96 192 -96 176 WIRE 448 192 448 -64 WIRE 720 192 720 176 WIRE 144 240 144 192 WIRE 160 240 144 240 WIRE 224 240 160 240 WIRE 256 240 224 240 WIRE 352 240 352 80 WIRE 352 240 336 240 WIRE 384 240 352 240 WIRE 48 256 48 224 WIRE 80 256 48 256 WIRE 96 256 80 256 WIRE 560 256 560 -64 WIRE -512 272 -528 272 WIRE -496 272 -496 256 WIRE -496 272 -512 272 WIRE -336 272 -336 256 WIRE 720 272 720 256 WIRE -496 288 -496 272 WIRE -96 288 -96 272 WIRE 144 288 144 240 WIRE 224 288 224 240 WIRE 448 304 448 288 WIRE 480 304 448 304 WIRE 496 304 480 304 WIRE -208 320 -208 256 WIRE 48 320 48 256 WIRE 48 320 -208 320 WIRE -208 336 -208 320 WIRE 560 368 560 352 WIRE 592 368 560 368 WIRE 640 368 640 176 WIRE 640 368 592 368 WIRE 688 368 672 368 WIRE 720 368 720 352 WIRE 720 368 688 368 WIRE -512 384 -528 384 WIRE -496 384 -496 368 WIRE -496 384 -512 384 WIRE 352 384 352 240 WIRE 448 384 448 304 WIRE 560 384 560 368 WIRE 720 384 720 368 WIRE -496 400 -496 384 WIRE 48 400 48 320 WIRE 144 400 144 352 WIRE 144 400 48 400 WIRE 224 400 224 352 WIRE 224 400 144 400 WIRE 48 416 48 400 WIRE -208 432 -208 400 WIRE 352 480 352 464 WIRE 448 480 448 464 WIRE 560 480 560 464 WIRE 720 480 720 464 WIRE -496 496 -496 480 WIRE 48 512 48 496 FLAG -208 32 0 FLAG 224 32 0 FLAG -496 496 0 FLAG -96 288 0 FLAG 48 512 0 FLAG -400 48 0 FLAG -336 272 0 FLAG -208 432 0 FLAG 80 256 e FLAG 80 112 c FLAG 160 240 d FLAG 448 480 0 FLAG 720 480 0 FLAG 688 368 o FLAG -512 384 r FLAG 480 304 e2 FLAG -512 272 vl FLAG 560 480 0 FLAG 592 368 e3 FLAG 352 480 0 SYMBOL npn -16 128 R0 SYMATTR InstName Q1 SYMATTR Value 2N3904 SYMBOL res -112 -16 R0 SYMATTR InstName R1 SYMATTR Value 10k SYMBOL res -112 176 R0 SYMATTR InstName R2 SYMATTR Value 6.8k SYMBOL res 32 400 R0 SYMATTR InstName R3 SYMATTR Value 1k SYMBOL res 32 -16 R0 SYMATTR InstName R4 SYMATTR Value 1k SYMBOL cap 208 -48 R0 SYMATTR InstName C2 SYMATTR Value 100n SYMBOL cap -224 -48 R0 SYMATTR InstName C5 SYMATTR Value 10µ SYMBOL res -240 -80 R90 WINDOW 0 0 56 VBottom 0 WINDOW 3 32 56 VTop 0 SYMATTR InstName R10 SYMATTR Value 39 SYMBOL cap -320 256 R180 WINDOW 0 24 68 Left 0 WINDOW 3 24 8 Left 0 SYMATTR InstName C3 SYMATTR Value 6p SYMBOL voltage -400 -64 R0 WINDOW 123 0 0 Left 0 WINDOW 39 0 0 Left 0 SYMATTR InstName V1 SYMATTR Value 8 SYMBOL cap -224 192 R0 SYMATTR InstName C1 SYMATTR Value {cd} SYMATTR SpiceLine Rser={esr} SYMBOL cap -224 336 R0 SYMATTR InstName C6 SYMATTR Value {cd} SYMATTR SpiceLine Rser={esr} SYMBOL cap -240 160 R90 WINDOW 0 0 32 VBottom 0 WINDOW 3 34 34 VTop 0 SYMATTR InstName C8 SYMATTR Value 33p SYMATTR SpiceLine Rser={esr} SYMBOL cap 128 128 R0 SYMATTR InstName C7 SYMATTR Value 100n SYMBOL cap -512 192 R0 SYMATTR InstName C4 SYMATTR Value 27.60644f SYMBOL res -512 384 R0 SYMATTR InstName R5 SYMATTR Value 4.2 SYMBOL ind -512 272 R0 WINDOW 3 34 80 Left 0 SYMATTR Value 5.034325m SYMATTR InstName L1 SYMBOL npn 384 192 R0 SYMATTR InstName Q2 SYMATTR Value 2N3904 SYMBOL res 432 368 R0 SYMATTR InstName R6 SYMATTR Value 1k SYMBOL cap 704 192 R0 SYMATTR InstName C9 SYMATTR Value 100n SYMBOL res 704 256 R0 SYMATTR InstName R7 SYMATTR Value 68 SYMBOL res 704 368 R0 SYMATTR InstName R8 SYMATTR Value 50 SYMBOL npn 496 256 R0 SYMATTR InstName Q3 SYMATTR Value 2N3904 SYMBOL res 544 368 R0 SYMATTR InstName R9 SYMATTR Value 100 SYMBOL res 352 224 R90 WINDOW 0 0 56 VBottom 0 WINDOW 3 32 56 VTop 0 SYMATTR InstName R11 SYMATTR Value 1k SYMBOL res 336 -16 R0 SYMATTR InstName R13 SYMATTR Value 39k SYMBOL res 336 368 R0 SYMATTR InstName R14 SYMATTR Value 10k SYMBOL diode 128 288 R0 WINDOW 3 22 95 Left 0 SYMATTR InstName D1 SYMATTR Value BAV99x SYMATTR Prefix X SYMATTR SpiceModel BAV99x SYMBOL diode 240 352 R180 WINDOW 0 24 72 Left 0 WINDOW 3 24 0 Left 0 SYMATTR InstName D2 SYMATTR Value BAV99x SYMATTR Prefix X SYMATTR SpiceModel BAV99x TEXT -528 104 Left 0 ;Starter signal TEXT -464 544 Left 0 !.tran 10m TEXT -272 496 Left 0 !.param esr=0.2 TEXT -272 464 Left 0 !.param cd = 470p TEXT -464 584 Left 0 ;With low Rs (

Reply to
Joop

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.