Frage:
Was ist der Zweck von PLL in einem allgemeinen Mikrocontroller?
KMC
2020-07-31 07:02:20 UTC
view on stackexchange narkive permalink

Ein ARM Cortex-M4-basierter Mikrocontroller wie TM4C123GH6PM ist mit mehreren Taktquellen mit einem von der PLL bereitgestellten Prozessorkern mit 80 MHz ausgestattet, der nach dem, was in NI-What is a PLL gelesen wurde? und Alles über Schaltung - Was genau ist eine PLL? ist eine Art Rückkopplungs-x-Oszillatorschaltung, die Phasenverschiebung erkennt und Eingangsfrequenzen durch Rückkopplung stabilisiert. Ich verstehe nicht, wie PLL mit Mikrocontroller zusammenhängt. Ich spüre hier keine Phasenverschiebung oder versuche, ein Signal zu stabilisieren, und ich verstehe nicht, wie die PLL magisch einen 400-MHz-Takt erzeugt.

Warum ist diese PLL in den Mikrocontroller eingebettet? Wenn ich möchte, dass mein Prozessor mit maximal 80 MHz taktet, wie in den technischen Daten angegeben, verwende ich einfach einen externen 80-MHz-Quarz. Wenn einige Peripheriegeräte wie USB schnellere Taktquellen benötigen, verwende ich einen schnelleren Kristall und teile den Takt, um anderen Geräten ein Vielfaches des langsameren Takts zuzuführen. Externe Kristalle sind ohnehin genauer als interne Oszillatoren. Warum also eine PLL zwischen einen genauen externen Kristall und den Prozessor stecken, insbesondere wenn es sich nicht um Hochfrequenz- oder HF-Anwendungen handelt?

TM4C123 clock source

Nun, PLL ist eine Feeback-Steuerungstechnik, die nichts mit MPU zu tun hat.Wie Sie aus Wikipedia lesen können, wird PLL in vielen Bereichen verwendet, einschließlich Oszillator.Phasenregelkreis - Wikipedia https://en.wikipedia.org/wiki/Phase-locked_loop.
Ich habe Ihre beiden Artikel überflogen und festgestellt, dass sie erklären, wie PLL funktioniert.Wie gesagt, wenn Sie verstehen, dass PLL in Oszillatorschaltungen verwendet wird, ist es keine Frage, warum es in MCU, SBC oder anderen Systemen verwendet wird, die einen Oszillator verwenden.Aber natürlich gibt es eine Ausnahme: PLL ist kein so guter Quarz / Kristall, der präziser, aber sperriger und teurer ist.
Eine 400-MHz-PLL, die von einem 50-MHz-Xtal (oder so) angetrieben wird, ist nicht so genau wie ein 400-MHz-Xtal (wie auch tlfong01 hervorhebt), aber für viele Anwendungen, einschließlich MCU und Consumer-RF, ist sie vollkommen in Ordnung.Die Vielseitigkeit ist ein großes Plus, ebenso wie die einfache Verlegung von Platinen / Leiterplatten, wie DKNguyen in seiner Antwort weiter unten ausführt.
Schauen Sie sich auch diesen Artikel unter https://www.analog.com/de/analog-dialogue/articles/phase-locked-loop-pll-fundamentals.html# an, den ich für die Anwendung zur Taktmultiplikation in, zInstamce, FPGAs
@P2000 bedankt sich, aber der Artikel zusammen mit der Wiki-Seite ist für mich als Hobbyist, der Intro-Bücher liest und blinkende Beispiele ausarbeitet, nicht zu verstehen.Aus Anfängersicht kann ich die PLL als Blackbox behandeln, die intern einen 400-MHz-Takt erzeugt. Höchstwahrscheinlich werde ich die RCC / RCC2-Register so konfigurieren, dass sie direkt einen externen Kristall verwenden, und die PLL einfach vollständig ignorieren, da ich gewonnen habe. 'Ich brauche keine so hohe Taktrate über ein paar MHz hinaus.Ist das ein richtiger Ansatz?
Oh ja natürlich.Behandeln Sie es einfach als Black Box, Clock oder Sinus-In, andere Frequenz (höhere, niedrigere) Clock oder Sinus-Out.Sie können es ganz überspringen, wenn Sie nur einen Takt von etwa 50 MHz benötigen.Wenn Sie Ihren externen Takt auf den Takteingang des FPGA anwenden, wird er durch die internen Taktpuffer bereinigt, um sicherzustellen, dass es sich um eine saubere Rechteckwelle handelt und dass die Kanten in allen Ecken des FPGA pünktlich eintreffen.Viel Spaß beim Codieren!
Das Entwerfen eines Quarzoszillators, der im Bereich von 4 bis 8 MHz arbeiten kann, und eines Frequenzvervielfachers, der eine Frequenz in diesem Bereich mit einem beliebigen Wert von 1 bis 16 (mit einem Maximum von 80 MHz) multiplizieren kann, ist einfacher als das Entwerfen eines Quarzoszillators, der effizient arbeiten kannalle Frequenzen im Bereich von 4-80 MHz.
Sechs antworten:
DKNguyen
2020-07-31 07:25:53 UTC
view on stackexchange narkive permalink

Mit der PLL können Sie auch nach dem Aufbau des Boards flexibel mit der Taktrate arbeiten und natürlich viele verschiedene Frequenzen mit einem integrierten Oszillator erzeugen.

Ehrlich gesagt lohnt es sich, nur eine PLL zu haben, damit Sie mit dem integrierten RC-Oszillator viele Frequenzen erzeugen können. Auf diese Weise können Sie ohne externen Oszillator flexibel arbeiten, wenn Sie keinen benötigen. Von dort aus ist es nicht viel aufwendiger, es zu erstellen, sodass Sie diese PLL auch zu einem externen Oszillator umleiten können.

Mit der PLL können Sie Uhren schneller produzieren als mit einem Quarzkristall. Obwohl MEMS-Oszillatoren verfügbar sind, die mit viel höheren Frequenzen als Quarz schwingen können, möchten Sie möglicherweise nicht direkt mit einem arbeiten, da Sie für einen externen 400-MHz-Oszillator eine 400-MHz-Spur routen müssen.

Wie die PLL funktioniert. Weißt du etwas über Musik? Wissen Sie, wie Sie ein Lied hören und im Takt klatschen können? Sie halten einfach das gleiche Timing zwischen jedem Klatschen und passen das Timing an, bis jedes Klatschen auf einem Schlag landet. Einfach, oder?

Weißt du, wie du zwei oder sogar vier Klatschen pro Schlag machen kannst? Eine PLL macht das Gleiche. Sie zählen Ihre eigenen Klatschen und stellen sicher, dass die Zeit zwischen den einzelnen Klatschen gleich ist. Sie passen jedoch die Zeit zwischen den Klatschen an, bis jedes vierte Klatschen auf dem Beat landet, den Sie im Song hören. An diesem Punkt hören Sie auf, sich anzupassen. Auf diese Weise können Sie einen Klatsch erzeugen, der viermal so schnell ist, obwohl der Takt des Songs viermal langsamer ist.

Ich mag den DCO des [MSP430] (https://www.ti.com/lit/ds/slas504g/slas504g.pdf?ts=1596166158508&ref_url=https%253A%252F%252Fwww.google.com%252F#%5B%) sehr.7B% 22num% 22% 3A301% 2C% 22gen% 22% 3A0% 7D% 2C% 7B% 22name% 22% 3A% 22XYZ% 22% 7D% 2C0% 2C585,6% 2C0% 5D).Sie können die Frequenz bei Bedarf ditheren, um das EMI zu verteilen, oder sie für einen weiten Bereich durchschnittlicher Taktraten verwenden.Der obere Rand von Seite 7-5 [hier] (https://www.ti.com/sc/docs/products/micro/msp430/userguid/ag_07.pdf) enthält eine schöne Beschreibung einiger Vorteile eines FLL-basierten DCO.Plus dies: * der DCO ist absolut monoton. * Schön.Hat deine Beschreibung trotzdem gefallen.
In Anlehnung an diese Analogie jagt die PLL-Schaltung der Eingangsfrequenz nach und gibt eine Konstante von 400 MHz aus.Wenn ich ihm also einen externen 10-MHz-Kristall gebe, "klatscht" die PLL 80-mal pro Kristall-Rechteckwellenperiode, und wenn es 25 MHz sind, "klatscht" die PLL 16-mal pro Periode.Ist diese Analogie korrekt, um die konstante PLL-Ausgabe anzuzeigen?
@KMC Ja.In der PLL befindet sich ein VCO.Wenn in der Zeit eines Referenztaktzyklus zu wenige Zyklen vergangen sind, beschleunigt dies den VCO etwas.Wenn zu viele Zyklen vergangen sind, wird die Frequenz durch Verringern des Steuereingangs etwas verringert.Es wird so lange angepasst, bis die richtige Anzahl von Zyklen innerhalb eines Zyklus des Referenztakts auftritt.Theoretisch könnte die PLL, wenn sie plötzlich die Taktfrequenz verliert, so konstruiert sein, dass sie immer noch von selbst zählt, aber allmählich an Genauigkeit verliert, genauso wie Sie nach dem Ende des Songs weiter klatschen können oder der Beat verschwindet, da der VCO kein gutes Selbst ist-Referenz
@KMC Beachten Sie, dass es analoge PLLs gibt, die mit Sinuswellen arbeiten können, und digitale PLLs, die mit Rechteckwellen arbeiten.Der VCO ist in beiden Versionen immer analog.Es ist der Phasendetektor, der digital oder analog sein kann.
Ich bin mir ziemlich sicher, dass Prozessoren digitale Phasendetektoren verwenden, aber Radios würden analoge Phasendetektoren verwenden.Digital ist leichter vorstellbar, da die Kante und der Nulldurchgang auf einer Rechteckwelle dasselbe sind und Sie sie einfach zählen können, aber Sie können nicht sagen, wo Sie sich in der Rechteckwelle befinden, wenn Sie sich von einer Kante entfernt haben, da dies nur der Fall istein konstanter Wert.Analoge Phasendetektoren sind seltsamer und ich denke, sie können die Dinge sogar vom Nulldurchgang weg verfolgen, da es sich um eine Sinuswelle handelt.Analoge Frequenzteiler (das zählt, wie viele Klatschen pro Referenzzyklus auftreten) sind ebenfalls seltsamer.
@DKNguyen, Tatsächlich ist der Phasenschlupf zwischen zwei Taktsignalen eine kontinuierliche Größe: Nehmen Sie XOR (Takt1, Takt2), wenn sie perfekt ausgerichtet sind, ist der Ausgang ganz Null.Wenn Sie sie jetzt falsch ausrichten, zeigt der XOR-Ausgang Impulse, die mit zunehmender Phasendifferenz breiter (nicht höher) werden.Tiefpassfilter, der (stark) und Sie haben eine analoge Größe proportional zur Phasendifferenz.Das geht in den VCO, um seine Frequenz zu erhöhen / zu verringern.
@P2000 Ich verstehe ....
Dies ist eine sehr gute Analogie!
user1850479
2020-07-31 07:24:53 UTC
view on stackexchange narkive permalink

Ich verstehe nicht, wie sich PLL auf Mikrocontroller bezieht. Ich spüre hier keine Phasenverschiebung oder versuche, ein Signal zu stabilisieren, und ich verstehe nicht, wie die PLL auf magische Weise einen 400-MHz-Takt erzeugt.

Aus Sicht eines Mikrocontrollers ist eine PLL nur ein Frequenzvervielfacher. Es nimmt eine Referenzfrequenz wie von einem 10-MHz-Oszillator und erzeugt alle anderen Taktfrequenzen, die ein Mikrocontroller benötigt.

Warum ist diese PLL in den Mikrocontroller eingebettet? Wenn ich möchte, dass mein Prozessor mit maximal 80 MHz taktet, wie in den technischen Daten angegeben, verwende ich einfach einen externen 80-MHz-Quarz. Wenn einige Peripheriegeräte wie USB schnellere Taktquellen benötigen, verwende ich einen schnelleren Kristall und teile den Takt, um anderen Geräten ein Vielfaches des langsameren Takts zuzuführen.

Dies ist normalerweise nicht praktikabel, es sei denn, Sie finden zufällig einen einzelnen Oszillator, der genau auf alle benötigten Frequenzen unterteilt werden kann. Stattdessen nehmen Sie eine Referenzuhr und multiplizieren sie nach Bedarf nach oben (oder unten). Ich habe billige Geräte gesehen, die versuchen, eine einzelne Uhr aufzuteilen, und es funktioniert normalerweise sehr schlecht. Sie neigen dazu, seltsame Störungen zu haben, wie die Erzeugung von 48-kHz-Audio, das in Ordnung klingt, aber 44,1 kHz, das schnell läuft, da das LCM von 48000 und 44100 eine große Zahl ist.

Externe Kristalle sind ohnehin genauer als interne Oszillatoren. Warum also eine PLL zwischen einen genauen externen Kristall und den Prozessor stecken, insbesondere wenn es sich nicht um Hochfrequenz- oder HF-Anwendungen handelt?

In diesem Fall verwendet die PLL einen externen Oszillator. Sofern dieser nicht inkompetent implementiert ist, ist er sehr genau.

Steve Melnikoff
2020-07-31 20:35:40 UTC
view on stackexchange narkive permalink

Um die anderen Antworten zu ergänzen, gibt es einige andere Gründe, warum eine PLL nützlich sein kann:

T, um die EMV-Emissionen zu reduzieren (und gleichzeitig Geld zu sparen und die Wahrscheinlichkeit von Störungen zu verringern)

So zitieren Sie aus dem ST-Anwendungshinweis AN1709:

Einige Mikrocontroller verfügen über einen eingebetteten programmierbaren PLL-Taktgenerator, der die Verwendung von Standardkristallen mit 3 bis 25 MHz, um einen großen Bereich interner Frequenzen zu erhalten (bis zu einige hundert MHz). Auf diese Weise kann der Mikrocontroller billiger arbeiten, Mittelfrequenzkristalle, während immer noch ein interner Hochfrequenztakt für das Maximum bereitgestellt wird System Geschwindigkeit. Die Hochtaktfrequenzquelle ist im Chip enthalten und tut dies auch Gehen Sie nicht durch die Leiterplattenschienen (Printed Circuit Board) und externen Komponenten. Diese reduziert die potenzielle Geräuschemission der Anwendung.

Die Verwendung eines PLL-Netzwerks filtert den CPU-Takt auch gegen externe sporadische Störungen (Störungen).

TUm Strom zu sparen

In einem Produkt mit geringem Stromverbrauch kann es sehr nützlich sein, den Prozessor (und seine Peripheriegeräte) mit unterschiedlichen Geschwindigkeiten zu betreiben, je nachdem, was zu einem bestimmten Zeitpunkt zu tun ist, oder verschiedene Uhren zu generieren einige Male, aber nicht andere.

Dies kann also bedeuten, dass die Taktrate bei Bedarf erhöht, aber zu anderen Zeiten verringert (oder die PLL insgesamt ausgeschaltet) wird.

Um ein konkretes Beispiel zu geben: Ich habe an einem batteriebetriebenen Produkt gearbeitet, das normalerweise mit 8 MHz und ausgeschaltetem PLL betrieben wurde. In regelmäßigen Abständen mussten wir jedoch viel schnellere Uhren generieren, um das I2S-Streaming von einem externen Audio-Chip zu ermöglichen. Also haben wir die PLL nur für die wenigen Sekunden hochgefahren, in denen wir diese Uhren brauchten, und sie dann heruntergefahren, wenn wir fertig waren.

Justme
2020-07-31 10:09:55 UTC
view on stackexchange narkive permalink

Mit einer PLL kann die Frequenz auf ein höheres Niveau multipliziert werden, als dies mit anderen Mitteln möglich ist.

Wenn beispielsweise eine STM32-MCU mit 400 MHz betrieben werden muss, kann ein 400-MHz-Quarz- oder Rechteckwellenoszillator nicht direkt an eine MCU angeschlossen werden.

Ein 4-MHz-Kristall kann verwendet werden, und die PLL innerhalb der MCU kann so eingestellt werden, dass die Referenz 4 MHz mit 100 multipliziert wird, um einen 400-MHz-Takt für die MCU zu erreichen.

Es kann auch zur Laufzeit verwendet werden, um die Frequenz bei Bedarf zu ändern, um Strom usw. zu sparen.

old_timer
2020-07-31 22:56:49 UTC
view on stackexchange narkive permalink

Dies ist keine Mikrocontroller-Sache. Prozessoren tun dies, verschiedene andere Produkte tun dies. Auf der einen Seite, warum das Geld für einen hochpreisigen Oszillator verschwenden, wenn Sie nicht müssen. Eine andere Seite, wie erwähnt, gibt Ihnen Flexibilität. Was mcus entwickelt hat, ist ein interner RC-Oszillator. Hinzu kommt die PLL, und Sie erhalten noch mehr Flexibilität bei reduzierten Kosten, wenn die Genauigkeit innerhalb Ihrer Toleranz liegt.

Wenn Sie an einen X86- oder ARM-basierten Chip denken oder was auch immer zum Teil Ihre Kosteneinsparungen, aber auch Sie können die schnellen Sachen meistens auf dem Chip halten und die äußeren Sachen langsamer haben, so dass diese Chips mit PLLs gepackt sind, sicherlich die Referenz Takt auf 4 GHz oder was auch immer die Hauptuhr Ihres Chips läuft, aber für Dram, PCIE, Netzwerk usw. haben Sie plls, die die verschiedenen Uhren für diese verschiedenen Peripheriegeräte erzeugen, da nicht alle mit der gleichen Geschwindigkeit laufen. Manchmal haben Sie separate Referenzuhren für die verschiedenen Elemente (Netzwerk, PCIE usw.). Also mehrere Oszillatoren / Kristalle abhängig.

Wie es auf magische Weise eine höhere Uhr macht. Es ist ein Phasenregelkreis, den Sie googeln können. Es handelt sich im Grunde genommen um eine instabile analoge Schaltung, die schwingt, eine TTL-Logik und eine ungerade Anzahl von Wechselrichtern verwendet und diese in einer Schleife bindet. Wenn sie bei Stromversorgung schwingt, schwingt sie einfach weiter. Es gibt eine Zeit ungleich Null, in der das Signal auf einer Seite invertiert und auf der anderen Seite ausgeht. Multiplizieren Sie diese Zeit, indem Sie mehr Komponenten verwenden und die Oszillationsfrequenz an einem beliebigen Punkt senken (also ein Wechselrichter und eine Reihe von Nicht-Wechselrichtern) Wechselrichter). Kaufen Sie Kisten mit Komponenten und verkabeln Sie mehrere Setups aufgrund von Abweichungen im Prozess, den Anschlüssen, der Leistung usw. Keine zwei Sets sind identisch, wenn sie momentan relativ zum anderen driften. Nutzen Sie dies nun, und erstellen Sie absichtlich einen instabilen Stromkreis wie diesen (möglicherweise nicht aus Wechselrichtern, aber etwas, das schwingt). Sie haben eine lose Kontrolle, da Sie die Spannung variieren, mit der er läuft, und ihn schneller und langsamer laufen lassen. Dann zählen Sie die Schwingungen. Wenn ich eine 100-MHz-Referenzuhr habe und 400 MHz erzeugen möchte, muss ich ein Steuersystem um den beschissenen Oszillator erstellen, damit er jedes Mal, wenn die Referenzuhr tickt, viermal zählt. Verwenden Sie dann den Ausgang des instabilen Oszillators als meinen 400-MHz-Takt. Oft möchten Sie, dass der VCO (spannungsgesteuerter Oszillator) oder DCO eine höhere Frequenz ausgibt, als diese aufzuteilen, um Ihren System- / Peripherietakt zu erhalten. Zum Beispiel einfacher zu sagen, mit 100 multiplizieren und dann, wenn Sie eine Zählung von 99 erhalten, beschleunigen und eine Zählung von 101 verlangsamen. Anstatt 2 zu sagen, verlangsamen Sie, wenn Sie eine Zählung von 1 beschleunigen, eine Zählung von 3 und der Jitter ist deutlich größer. Am Ende gibt es keine Magie.

Es gab eine Zeit und einige Produkte, auf die man einen Oszillator setzen musste.Heutzutage macht es nicht viel Sinn, viele Anwendungsfälle sind mit dem internen Oszillator und seiner begrenzten Genauigkeit in Kombination mit dem pll in Ordnung, um verschiedene Auswahlmöglichkeiten innerhalb eines Produkts zu bieten und keine externen nicht freien Komponenten zu erfordern.Wenn eine höhere Genauigkeit erforderlich ist, gibt es häufig Auswahlmöglichkeiten für Kristalle und Oszillatoren für dasselbe Produkt, ohne dass der Hersteller mehrere Chips generieren muss, die ansonsten gleich sind, nur um mögliche Taktoptionen zu berücksichtigen.

Tony Stewart Sunnyskyguy EE75
2020-07-31 08:03:22 UTC
view on stackexchange narkive permalink

Ein uC hat Zugriff auf viele konfigurierbare Register und Zähler, die für die Synthese eines breiten Frequenzbereichs für viele Zwecke nützlich sind.

Ein Frequenzmischer vergleicht 2 Takte durch ein Tiefpassfilter, um einen VCO zu steuern, der zum Ableiten eines der Takte verwendet wird.Der andere stammt von einem internen RC-Oszillator oder einem externen sehr stabilen Resonator mit hohem Q. Es kann sich um eine 32-kHz-Stimmgabel, MEMs, Keramik- oder Quarzkristallresonatoren handeln.Zähler werden zum Skalieren des VCO verwendet, sind jedoch so konfiguriert, dass sie entweder multiplizieren oder dividieren, um das Ergebnis zu erzielen.

Wenn die VCO-Zähler als Rückmeldung an den Mischer verwendet werden, multipliziert der VCO den festen Referenztakt, aber wenn er zum Vorwärtskoppeln und Teilen verwendet wird, erzeugt er einen niedrigeren f-Ausgang.Fractional-N-Synthesizer verwenden eine Kombination von beiden

Die Zwecke jeder Uhr sind allgemein bekannt.CPU-Kern, UART, I2C, Timer usw.



Diese Fragen und Antworten wurden automatisch aus der englischen Sprache übersetzt.Der ursprüngliche Inhalt ist auf stackexchange verfügbar. Wir danken ihm für die cc by-sa 4.0-Lizenz, unter der er vertrieben wird.
Loading...