Warum Mikrocontroller mit verschiedenen Frequenzen

Hallo,
ich habe bis jetzt immer gedacht, dass ein Mikrocontroller oder ein Prozessor mit seinen ganzen Schaltungen für genau eine gewisse Taktfrequenz hergestellt und entwickelt wurde.
Nun lese ich in einem Buch über Mikrocontroller, dass man bei einem solchen den Takt beliebig wählen kann, ob man nun einfach ein RC-Glied nimmt oder einen Hochfrequenzquarzoszillator ist völlig egal.
Ist das so, dass man bei solchen Schaltungen eine langsamere Taktfrequenz immer anlegen kann?
Die Daten liegen dann einfach länger an den Pins an, bis sie weiterverarbeitet werden und neue Daten angelegt werden, weil sie durch einen neuen Befehl, induziert durch das Hochzählen im Programmcode durch den Takt, geändert werden?
Das heißt, es gibt also nur eine Obergrenze für Taktraten (und keine Untergrenze), weil dann die Bits noch nicht fertig anliegen, bis sie weiterverarbeitet werden, aber schon die nächsten kommen bzw. dann durch die hohe Frequenz einfach zu viel gedämpft wird, wenn die Schaltungen nicht extra gebaut werden?
Aber wenn es so wäre, warum muss ich dann extra die Konfigurationsbits für den verwendeten Oszillator im Mikrocontroller setzen, wenn die Taktrate nach unten quasi egal ist?

Vielen Dank
Tim

Nun lese ich in einem Buch über Mikrocontroller, dass man bei
einem solchen den Takt beliebig wählen kann…

Hallo Tim,

das ist nicht bei allen so, es kommt drauf an, ob das Design „voll statisch“ ist. Es gibt auch welche, bei denen manche Stufen AC-gekoppelt sind, besonders in der Takterzeugung, ausserdem werden z.B. PC-Prozessoren mit Takten betrieben, die durch PLL aus einer niedrigen Quarzfrequenz erzeugt werden (es gibt keinen Prozessor mit 3 GHz-Quarz). Eine solche PLL hat auch ihre Grenzen. Letzlich gilt, was im Datenblatt steht, wenn dort ein Takt von 0…20 MHz angegeben ist, dann kann man den Prozessor auch anhalten. Bei einem PC dürfte das tödlich enden (für den PC).

Gruss Reinhard

hallo.

ich habe bis jetzt immer gedacht, dass ein Mikrocontroller
oder ein Prozessor mit seinen ganzen Schaltungen für genau
eine gewisse Taktfrequenz hergestellt und entwickelt wurde.

falsch gedacht.

Aber wenn es so wäre, warum muss ich dann extra die
Konfigurationsbits für den verwendeten Oszillator im
Mikrocontroller setzen, wenn die Taktrate nach unten quasi
egal ist?

mit welcher taktrate du den controller betreiben kannst/mußt, hängt von deiner anwendung ab. es gibt anwendungen, bei denen reichen ein paar kHz, für andere müssen’s ein paar MHz sein.
für beide anwendungen kann durchaus derselbe prozessor in frage kommen.
und eine anwendung kann durchaus mit verschiedenen frequenzen betrieben werden.

wenn deine anwendung mit der default-taktfrequenz arbeitet, mußt du an den default-einstellungen der konfigurationsbits auch nix ändern.

auch kann’s sinn machen, die frequenz in bestimmten betriebsartenrunterzusetzen, um strom zu sparen:
z.b. im „low power mode“ fragst du nur temperaturen ab und berechnest irgendwas, per tastendruck schaltest du in den „high power mode“ um und steuerst ein display an, auf dem du die ergebnisse anzeigst.

gruß

michael

Hallo,

mit welcher taktrate du den controller betreiben kannst/mußt,
hängt von deiner anwendung ab.

Also die reine Schaltung eines Mikrocontrollers, unabhängig von der Anwendung, hat nur ein maximale obere Frequenz, weil dann die Transistoren wegen ihrer Kapazität nicht mehr richtig arbeiten würden.
Je nach Frequenz liegen dann die fertig durch die Schaltung bearbeiteten Daten länger oder kürzer an den Ausgängen an bis sie abgeholt bzw. durch neue ersetzt werden.
Ist diese Aussage korrekt?

Also die reine Schaltung eines Mikrocontrollers, unabhängig
von der Anwendung, hat nur ein maximale obere Frequenz, weil
dann die Transistoren wegen ihrer Kapazität nicht mehr richtig
arbeiten würden.
Je nach Frequenz liegen dann die fertig durch die Schaltung
bearbeiteten Daten länger oder kürzer an den Ausgängen an bis
sie abgeholt bzw. durch neue ersetzt werden.
Ist diese Aussage korrekt?

ja. falls eine externe taktquelle konfiguriert wurde, macht der mikrocontroller nur etwas, wenn er steigende und fallende flanken an seinem takteingang sieht.
wie schnell diese flanken kommen, ist ihm bis zur max. erlaubten frequenz egal.
es gab früher mal mikroprozessor-experimentier-kits, die wurden
händisch programmier und dann wurde händisch getaktet. damit konnte man genau nachvollziehen, was das teil eigentlich macht.

gruß

michael

Minimierung externer Bauteile
Hallo Tim,

Aber wenn es so wäre, warum muss ich dann extra die
Konfigurationsbits für den verwendeten Oszillator im
Mikrocontroller setzen, wenn die Taktrate nach unten quasi
egal ist?

Die Konfiguration bezieht sich normalerweise nur auf den Oszillator. Einfache Oszillatoren bestehen aus einem Inverter, wobei der Quarz zwischen Ein- und Ausgang geschaltet wird. Damit so ein Oszillator stabil arbeitet, muß er neben seiner 180°-Phasendrehung noch eine zusätzliche Phasendrehung von etwa 90° erzeugen. Bei Frequenzen über 10 MHz reicht dazu häufig die Laufzeit des Inverters aus, bei niedrigeren Frequenzen muß ein zusätzliches RC-Glied eingefügt werden. RC-Oszillatoren funktionieren wieder ganz anders. Um die Anzahl externer Komponenten zu minimieren, werden diese über die Oszillatorkonfiguration sozusagen intern hinzugefügt.

Jörg