2018-06-26 01:03 AM
Hi everyone,
I'm working on an STM32F1 platform. I have a problem with the LSE crystal. I'm using this one ABS07-120-32.768kHz-T by Abracon. The problem is with temperatures below 5�C. I made some calculations according to the Application Note AN2867:
According to the datasheet ABS07-120-32.768kHz-T:
C0=1.20pF, ESR=55kohm (Max 60kohm), CL= 6pF and F= 32.768KHz
And according to the datasheet (page 62/136) del STM32F103RF:
gm = 5uA/V
gmcrit = 4 * ESR * (2?F)^2 * (C0 + CL)^2 = 4 * 60000*(2 * pi * 32768)^2 * (1.2*10^(-12) + 6 *10^(-12) )^2 = 0.0000005273947973 A/V = 0.5273947973 uA/V
gain margin = gm/gmcrit = 5 / 0.5273947973 = 9.48 (60k)
So we meet that the gain margin = gm / gm_crit >= 5.
Considering Cin=Cout=3pF (STM32 processor), CSTRAY=1pF, C1=C2=x and CL=6pF, we get C1=C2:
CL = (Cin + C1)*(C2 + Cout)/(Cin + C1 + C2 + Cout) + CSTRAY
6 = (3 + x)*(3 + x)/(6 + 2*x) + 1x=7pFC1=C2=6.8pF
So I think that the selection of the crystal and C1/C2 is right, but when I tried to init the platform inside a thermal chamber the crystal it seems to be that it wasn't able to oscillate because I was checking this function and it's blocked in the while:
while(RCC_GetFlagStatus(RCC_FLAG_LSERDY) == RESET)
Does anyone help me out?
Best regards.
#lse-startup #stm32f1-clock2018-07-03 07:36 AM
Hi,
Regarding the calculation, you missed a factor of 5 . Pay attention between Gm(min) used in the formula and the Gm_crit_max used in our newer datasheets.
gm [LSEDRV[1:0] = 00]=
0.5 uA/V
=> 2.5µA/Vgm [LSEDRV[1:0] = 01]=
0.75 uA/V
=> 3.75µA/Vgm [LSEDRV[1:0] = 10]=
1.7 uA/V
=> 8.5µA/Vgm [LSEDRV[1:0] = 11]=
2.7 uA/V
=> 13.5µA/VSame for HSE , gm =
1.5 mA/V
=>7.5mA/V
Cheers,
STOne-32
2018-07-03 07:55 PM
dont use 2x 10M, its way tooo high.
try 100k or 10k.
Last chance.
try to dry the board in an oven, then conformal coat the caps and crystal, let it dry.
use the 100k, it should work.