I designed a circuit and just got prototypes made and the first thing that was tried was, of course, powering it up. The oscillation failed to start.
Using an STM32F2 MCU, I followed the recommendations set out by the datasheet as well as STM's AN2867. Did the math, calculated 22pF capacitors. Of course, we have to guess a bit at stray capacitance, so the calculation isn't expected to be perfect. Still, the target gain margin worked out to 8.8, which is higher than their recommended margin of "5 or greater" so I fully expected the oscillation to start.
Now, what I'm a little confused on is why removing one of the two 22pF caps solved the issue. Just popped that sucker off and now it seems fine. EVERY bit of documentation I've ever read on the subject suggests you need two same-value caps on either side of the crystal. I'm just curious on why that's not really the case. I didn't expect operating with a single 22pF (on the OSC_OUT pin) would work but it did. And was 8.8 just too close to their magic number of 5? I mean, 5 was supposed to just give wiggle room from 1, right? So do we really need margin on top of margin? Is this indicative of some other issue?
One thing I'm wondering (and awaiting confirmation from the assembly house) is if the crystal that was placed was really the crystal I specified. Maybe the true values for its shunt/load capacitances and/or ESR are not the same as what I was using in the equations, so maybe my 8.8 is really below < 5. Or perhaps my stray capacitance is far higher than it should be, although I can't imagine I could have gotten the caps any closer to the crystal, nor the crystal any closer to the MCU.
Using an STM32F2 MCU, I followed the recommendations set out by the datasheet as well as STM's AN2867. Did the math, calculated 22pF capacitors. Of course, we have to guess a bit at stray capacitance, so the calculation isn't expected to be perfect. Still, the target gain margin worked out to 8.8, which is higher than their recommended margin of "5 or greater" so I fully expected the oscillation to start.
Now, what I'm a little confused on is why removing one of the two 22pF caps solved the issue. Just popped that sucker off and now it seems fine. EVERY bit of documentation I've ever read on the subject suggests you need two same-value caps on either side of the crystal. I'm just curious on why that's not really the case. I didn't expect operating with a single 22pF (on the OSC_OUT pin) would work but it did. And was 8.8 just too close to their magic number of 5? I mean, 5 was supposed to just give wiggle room from 1, right? So do we really need margin on top of margin? Is this indicative of some other issue?
One thing I'm wondering (and awaiting confirmation from the assembly house) is if the crystal that was placed was really the crystal I specified. Maybe the true values for its shunt/load capacitances and/or ESR are not the same as what I was using in the equations, so maybe my 8.8 is really below < 5. Or perhaps my stray capacitance is far higher than it should be, although I can't imagine I could have gotten the caps any closer to the crystal, nor the crystal any closer to the MCU.