Ich benutze immer den internen Oszillator, den Bilder haben, da ich nie die Notwendigkeit gefunden habe, etwas mit einer höheren Frequenz als 8 MHz laufen zu lassen (was die schnellste ist, die ich benutze). Gibt es irgendwelche Gründe, die über 8 MHz hinausgehen und bedeuten, dass ich einen externen Oszillator verwenden sollte? Es scheint nur noch eine Sache zu sein, die mir missfällt, aber ich würde gerne hören, was andere tun.
microcontroller
pic
design
oscillator
SimonBarker
quelle
quelle
Antworten:
Wie bereits erwähnt, sind genaue Frequenz und Frequenzstabilität Gründe für die Verwendung eines externen Keramikresonators oder -kristalls. Ein Resonator ist um ein Vielfaches genauer als der interne RC-Oszillator und für die UART-Kommunikation ausreichend. Ein Kristall ist viel genauer und erforderlich, wenn Sie andere Kommunikationsarten wie CAN, USB oder Ethernet ausführen.
Ein weiterer Grund für einen externen Kristall ist die Wahl der Frequenz. Kristalle kommen in einem weiten Frequenzbereich vor, wohingegen der interne Oszillator normalerweise eine Frequenz ist, wobei möglicherweise eine Auswahl von 4x PLL aktiviert ist. Einige neuere 24-Bit-Core-PICs haben sowohl einen Multiplikator als auch einen Teiler in der Taktkette, sodass Sie eine große Auswahl an Frequenzen aus der einzelnen internen Oszillatorfrequenz auswählen können.
Es gibt natürlich verschiedene Anwendungen, die von Natur aus eine genaue Frequenz oder ein genaues Timing erfordern, abgesehen von der Kommunikation. Zeit ist die Eigenschaft in der Elektronik, die wir kostengünstig am genauesten messen können. Daher wird das Problem manchmal in das Messen von Zeit oder das Erzeugen von Impulsen mit genauem Timing umgewandelt.
Dann gibt es Anwendungen, die eine Langzeitsynchronisation mit anderen Blöcken erfordern. Ein 1% -Oszillator wäre um mehr als 14 Minuten pro Tag abgeschaltet, wenn er als Basis für eine Echtzeituhr verwendet würde. Möglicherweise wird auch eine genaue Langzeitzeit benötigt, ohne dass Sie die Echtzeit kennen müssen. Angenommen, Sie möchten, dass eine Reihe von Geräten mit geringem Stromverbrauch einmal pro Stunde aufwacht, um einige Sekunden lang Daten auszutauschen und dann wieder einzuschlafen. Ein 50ppm Kristall (sehr leicht zu bekommen) ist in einer Stunde nicht länger als 180ms entfernt. Ein 1% RC-Oszillator könnte jedoch um 36 Sekunden ausgeschaltet sein. Dies würde den Geräten, die nur ein paar Sekunden pro Stunde kommunizieren mussten, eine beträchtliche Pünktlichkeit und damit einen erheblichen Energiebedarf verleihen.
quelle
Präzision. Interne Uhren sind nicht präzise, können durch Rauschen beeinträchtigt werden.
Temperaturunabhängige Präzision. Typische Oszillatoren können sehr unterschiedlich sein. Spezielle temperaturkompensierende Oszillatoren können bei Anwendungen mit niedriger oder hoher Temperatur oder bei starken Temperaturschwankungen erforderlich sein.
Geschwindigkeit. Interne Oszillatoren erreichen möglicherweise nicht die höchste Geschwindigkeit des IC. Hierfür können externe erforderlich sein.
Stromspannung. Die Geschwindigkeit eines internen Timers kann von der Spannung abhängen, mit der er betrieben wird.
Es werden mehrere Uhren benötigt. Einige Anwendungen möchten einen Oszillator gemeinsam nutzen.
Spezielle Anwendungen, bei denen die interne Uhr möglicherweise nicht einfach verwendet werden kann. Das Teilen der internen Uhr kann schwieriger sein, als einen billigen 31-kHz-Uhrenkristall darauf zu werfen, um die Zeit zu halten.
Der vom Arduino verwendete ATMEGA 328 benötigt einen externen Quarz mit 5 V für seine maximale Geschwindigkeit. Die Lily Pad-Version läuft auf dem internen Oszillator mit 8 MHz, da sie auf 3,3 V begrenzt ist. Das MSP430 Value Line-Launchpad ist auf 10 MHz bei 3 V und 8 MHz bei 2,5 V begrenzt.
quelle
Die Frequenzstabilität ist bei einer externen Frequenz höher. Wenn Sie also eine Anwendung haben, die wirklich von der mcu-Frequenz abhängt, müssen Sie möglicherweise eine externe verwenden.
Aber die meisten modernen mcu: s haben einen recht stabilen internen Oszillator, daher war dies meiner Meinung nach vor ein paar Jahren eine größere Frage. Es gibt auch immer mehr Möglichkeiten, die interne zu trimmen und Temperaturdrift (usw. usw.) auszugleichen.
Auf der anderen Seite gibt es andere Möglichkeiten, um sicherzustellen, dass Sie synchronisiert sind. In einigen Ländern beträgt die Frequenzstabilität im Stromnetz 50 Hz ± 0,01 Hz, und an anderen Orten wie in Schweden beträgt sie ± 0,001 Hz, und ich habe Projekte gesehen, bei denen dies beibehalten wird Dinge synchron. Und dann bist du nicht mehr so abhängig von der mcu freq und kannst die interne verwenden. Aber das ist ein bisschen Thema :)
quelle
Die Frequenzstabilität ist die wichtigste, insbesondere für serielle Kommunikationen mit hoher Geschwindigkeit. Dies führt jedoch auch dazu, dass gelegentlich ein Kristall mit einer scheinbar ungeraden Frequenz benötigt wird, um eine genaue Baudrate zu erhalten, da Ihnen die Taktteiler nur eingeschränkte Möglichkeiten bieten.
quelle
Ich bin tatsächlich auf ein Szenario gestoßen, in dem 1% für UART nicht gut genug war.
Wenn einer von euch von der Teensy ++ v1.0 Mikrocontroller-Entwicklungsplatine gehört hat, hat sie einen schrecklich empfindlichen UART. Ich hatte mein Host-Baud auf 115200 und es auf 115200 eingestellt und konnte für die längste Zeit nicht herausfinden, warum es die Daten nicht richtig las. Es stellte sich heraus, dass mein Host näher an 114300 Baud sendete. (115200 - 114300) / 115200 = ~ 0,9% Fehler. Ich habe es mit zwei verschiedenen MCUs versucht und sie haben gut funktioniert.
Der Punkt ist: Unabhängig von Ihrer Anwendung sollten Sie einen externen Resonator, Quarz oder sogar Oszillator verwenden, wenn eine höhere Genauigkeit der Taktfrequenz von Vorteil ist, wenn Ihr Chip nicht über die erforderliche Treiberschaltung verfügt.
PS: Ich frage mich, ob irgendjemand irgendwelche Einsichten darüber hat, welche niedrige Design-Wahl sie für die UART-Hardware getroffen haben, die sie so empfindlich macht.
quelle
Externe Quarzoszillatoren sind genauer als interne Uhren und sollten verwendet werden, wenn ein genaues Timing erforderlich ist. Manchmal verwenden Designer interne, um Geld zu sparen.
quelle