Wann sollte man für diese MCU einen externen Quarz verwenden, da der interne Oszillator viel schneller ist?

12

Ich schaue auf diese MCU und habe mich gefragt, ob die Verwendung eines externen Kristalls sinnvoll ist.

Auszug aus dem Datenblatt pg1,

* Clock Management
- 4 bis 32 MHz Quarzoszillator
- 32 kHz Oszillator für RTC mit Kalibrierung - Interner 8 MHz RC mit x6 PLL Option - Interner 40 kHz RC Oszillator

- Interner 48 MHz Oszillator mit automatischem Abgleich basierend auf ext. Synchronisation*

Der interne Oszillator kann bis zu 48 MHz betragen. Der externe Kristall liegt zwischen 4 und 32 MHz. Warum sollte man einen externen Kristall verwenden, wenn der interne schneller als 48 MHz ist, da der externe Kristall Geld kostet und Platz beansprucht? Wann sollte man einen externen Kristall verwenden?

user768421
quelle
4
Der einzige Vorteil des internen Oszillators von mcu ist die Kostenersparnis, wenn keine zusätzliche Genauigkeit externer Oszillatoren erforderlich ist.
Mahmoud Hosseinipour

Antworten:

24

Der interne Oszillator ist viel weniger stabil als ein externer Quarzoszillator.

Wenn ich das Datenblatt richtig lese, ist der interne 48-MHz-Oszillator nur werkseitig auf 2,9% der angegebenen Frequenz kalibriert - nicht einmal gut genug für RS-232. Es gibt Möglichkeiten, es mit einer externen Uhr zu synchronisieren. Ich denke, es wurde für den Einsatz in einer USB-Gerätesituation entwickelt, in der Sie die PLL an den USB-Bitstream sperren können.

Ein externer Kristall ist in der Regel auf etwa 20 ppm (parts per million) genau . Das sind 0,002% von der angegebenen Frequenz. Wenn Sie es noch besser brauchen, gibt es sogar temperaturkompensierte, ofenbetriebene Kristalloszillatoren.

Darüber hinaus möchten Sie möglicherweise eine genaue Taktrate bei einer anderen Frequenz, normalerweise für die Kommunikation mit einem Gerät oder Master über einen asynchronen Kommunikationskanal. Hierzu benötigen Sie möglicherweise einen Oszillator mit beispielsweise 29491200 Hz (115200 * 256).

Rohr
quelle
2
ehrlich gesagt sind 2,9% normalerweise gut genug für UART / RS-232 (ich habe einige Wochen lang einen 115200 UART mit einer Toleranz von mindestens 3,5% [aufgrund der internen 8-MHz-RC-Fehlanpassung und der internen Ungenauigkeiten] verwendet, ohne dass dies auffällt) Fehler); AFAIR, UART / RS-232 ist unter 5% der gesamten Taktinkongruenz und Borderline-Nutzung sogar um ein oder zwei Prozent nutzbar. Außerdem haben Sie die Tatsache übersehen (von anderen bemerkt), dass Sie mit PLL die Quarzuhr multiplizieren können, um Geschwindigkeiten zu erhalten so hoch wie die interne Taktung.
2
@vaxquis du hattest Glück. 5% ist die absolut maximal zulässige Nichtübereinstimmung der Baudrate, und wenn Sender und Empfänger um 2,5% in unterschiedliche Richtungen versetzt sind, sind Sie genau am Limit.
Bruce Abbott
6
RS232 ist ein Spannungs- und Pin-Standard, kein Protokollstandard.
old_timer
2
Wenn Sie 4x Oversampling verwenden, können Sie höchstwahrscheinlich zwischen 25 und 50% sparen. Mit 8x kann es wahrscheinlich schlechter als und mit 16x sogar besser sein. Sie müssen nur so genau sein, dass Sie durch ein Zeichen kommen, dann synchronisiert sich der Empfänger erneut mit dem Startbit. Einige synchronisieren sich möglicherweise sogar an jeder Kante neu, was einen noch größeren Fehler zur Folge hat. Die Art der Dekodierung hängt also vom Design des Empfängers ab. Einige / gesunde Designs könnten sehr leicht für immer mit einem 2,9% igen Taktfehler ausgeführt werden und niemals ein bisschen verrutschen.
old_timer
3
@pipe, das ist der gesamte Punkt des 8-fachen und 16-fachen Oversamplings, um eine bessere Auflösung zu erhalten, in der sich die Kanten relativ zu dem Ort befinden, an dem Sie das Sampling durchführen. Vielleicht verwenden die Teile, über die Sie sprechen, interne Oszillatoren. Oder vielleicht die eingesetzten Nachwuchsingenieure, da das Entwerfen ziemlich trivial ist. Sie können problemlos an jeder Kante synchronisieren und bleiben auch bei Zeitverschiebung für immer synchron. Da wir nicht wissen, wie ein Empfänger aufgebaut ist, wenn wir nicht dort arbeiten und in der richtigen Abteilung sind, ist es am besten, zu versuchen, diese wenigen Prozent zu erreichen und ausreichend Tests durchzuführen, um Statistiken über die Bitfehlerrate zu generieren.
old_timer
10

Der interne ist ein Oszillator, normalerweise ein RC-Oszillator. Diese Oszillatoren sind viel ungenauer als Kristalle. Auch diese Oszillatoren tendieren dazu, bei Temperaturänderungen zu driften.

Kristalle hingegen können so genau sein wie das Geld, das Sie ausgeben möchten. Die Genauigkeit wird benötigt, wenn beispielsweise Hochgeschwindigkeitskommunikation wie USB verwendet wird. USB hat sehr enge Toleranzen.

vini_i
quelle
8

Siehe dieses Diagramm auf Seite 16:

ST Uhrbaum

Anscheinend können Sie den Quarz auch als Eingang für die PLL verwenden, sodass Sie mit einem langsameren Quarz interne Taktraten von 48 MHz erzielen können.

pjc50
quelle
7

Der Quarzoszillator speist in einen integrierten Phasenregelkreis (PLL) ein, der die Quarzfrequenz mit Werten zwischen 1 und 16 multiplizieren und dividieren kann. Mit einem 8-MHz-Quarz können Sie also einen 48-MHz-Haupttakt für den Prozessor generieren. Wie bereits erwähnt, ist ein externer Kristall genauer und stabiler als der On-Chip-Hochgeschwindigkeitsoszillator.

Steve G
quelle