2024-11-14 04:22 AM
Hello,
In one of our new PCBs we use a STM32L476VET6. For the RTC we use an external Oscillator (shown in the Picture)
The drive power is set to the highest level.
In our setup, the RTC only works at room temperature and with no probe connected. As soon as the oscillator is heated up to 65°C, it stops working. Same behaviour with the freezer spray. When a Probe for the oscilloscope is connectet to OSC_32_IN, the Oscillator also stops.
We measured the frequency of the oscillator using the MCO-Output on PA8. This way we found out, that the frequency is within the specified range of the oscillator. When using a slightly higher load capacity the frequency drops out of the specified range. When the load capacitence is lowered (we tried 15pF) , the frequency rises higher than the specifiaction of the oscillator. This makes us certain, that the right load-capacitence is used.
We also tested the oscillation-safety-factor by adding a resistor, three times the ESR of the oscillator in series to it. This also works but only at room temperature.
We also repeated the tests on a new, untreated PCB with the same results.
This is the Layout:
Note that there is a gound plane underneath the oscillator and the capacitors.
In an other project we used a STM32L4R5ZGT6 with the same oscillator and capacitor, the highest drive-level and a similar layout. The only difference is the processor. But with this setup, the oscillator can be heated up to 80°C and cooled with the freezer spray without the oscillator stopping.
Please help us find the problem.
Thanks in advance.
2024-11-14 04:47 AM
> Note that there is a gound plane underneath the oscillator and the capacitors.
Don't. Have a dedicated return from the capacitors to the GND (VSS) pin closest to XTAL pins. You can try this by drilling out the via or otherwise disconnecting the common area to which the capacitors are soldered, and patch in a short wire to that GND pin.
Read AN2867.
JW
2024-11-14 10:52 PM
Hi,
Here is the layout from our older project (using the STM32L4R5ZGT6)
Gnd for the capacitors is also provided using a via to the GND layer. There is not even a GND-shield around the oscillator. Still it is very stable (at least it doesnt stop oscillating when treated with heat or cold).
In the newer project (using the STM32L476VET6) the oscillation just stops when the temperature changes. When an oscilloscope is connected to the OSC32_OUT - pin the peak-peak voltage is approx 200mV. As soon as the oscillator is heated, the voltage starts to decline until it reaches 0 and the oscillator stops.
Maybe someone from ST can give us exact information, if there is any difference in the "internal schematic" of the low speed quarz of the STM32L4R5ZGT6, compared to the STM32L476VET6
2024-11-15 12:20 AM - edited 2024-11-15 12:26 AM
Hi,
did you check: setting drive level high -> look in (debug, sfr ) whats real setting in rcc lsedrive (in rcc_bdcr).
(iirr Cube set wrong bits for drive level, but i dont remember cube version and cpu type. So just check..to be sure.)
2024-11-18 10:42 PM
Hi,
We checked, the drive-levle is HIGH with both bits on "1"
2024-11-19 12:49 AM
> When an oscilloscope is connected to the OSC32_OUT - pin the peak-peak voltage is approx 200mV.
What oscilloscope probe? Note, that standard probes significantly load the oscillator.
> Gnd for the capacitors is also provided using a via to the GND layer.
Have you tried to avoid this as I've recommended above?
JW