Contrairement aux idées reçues (en tout cas pour certains d'entre nous), les MCU STM32 n'ont pas besoin d'oscillateur externe pour fonctionner! Ils en ont un intégré. Sa fréquence est fixe, mais avec une cascade de PLL, il est possible de trouver la cadence d'horloge voulue. Cependant, cette horloge, appelée HSI, perd en précision avec la variation de température et de tension. J'ai lu sur un forum que la fréquence peut varier jusqu'à 10 à 15%! Certaines applications, comme une connexion USB fiable, requièrent une fréquence parfaite. C'est à ce moment que l'on a besoin d'un oscillateur externe. Ces derniers sont extrêmement précis, robustes et fiables. La valeur de l'oscillateur externe, ou HSE ou LSE (High speed, Low speed), doit être comprise dans une certaine fourchette, qui nous sera indiquée par STM32CubeIDE. Bien évidemment, dans la datasheet également.
+
+
Un oscillateur à cristal possède une capacité de charge. De plus, l'oscillateur doit être entouré de condensateur de faible valeur pour éviter que l'oscillateur démarre à une fréquence plus faible que sa fréquence de résonnance. Une résistance permet de réduire la puissance consommée par le cristal. Cependant, l'absence de cette résistance ne pose généralement pas de problème. En suivant l'application note [https://www.st.com/content/ccc/resource/technical/document/application_note/c6/eb/5e/11/e3/69/43/eb/CD00221665.pdf/files/CD00221665.pdf/jcr:content/translations/en.CD00221665.pdf AN2867], vous pourrez calculer la valeur de ces capacités en fonction de celle du cristal et de sa fréquence. Il est possible d'approximer ces valeurs. D'après [https://www.st.com/content/ccc/resource/technical/document/application_note/6c/a3/24/49/a5/d4/4a/db/CD00164185.pdf/files/CD00164185.pdf/jcr:content/translations/en.CD00164185.pdf AN2586], pour un HSE, il est conseillé de trouver un cristal compris entre 5pF et 25pF. Une approximation des condensateurs CL1 et CL2 donne une valeur de 10pF. Il est mentionné que pour un LSE, il ne faut pas utiliser de cristal à 12.5pF. Les broches OSC_IN et OSC_OUT sont généralement les 5 et 6 du MCU.
+
+
[[Fichier:Oscillator_stm32.png|x300px]]
+
+
L'oscillateur ne doit surtout pas être sujet à des perturbations électriques. Des précautions doivent être prises lors du routage et seront décrites plus tard.