Forum: Mikrocontroller und Digitale Elektronik Skalierbarer MCU


von Johnny S. (sgt_johnny)


Lesenswert?

Stellt euch folgende Problematik vor:


Ein Mikrocontroller muss in gewissen Fällen genügend Leistung erbringen 
um Berechnungen durchzuführen und zwei RFID Leser zu bedienen, hierzu 
ist eine Frequenz von ca. 8-16Mhz praktisch nicht vermeidbar.

Nachdem diese Fälle abgeschlossen sind, überwacht der MCU nurnoch ein 
Analogsignal(7khz) und wartet auf ein passendes Ergebniss.Hierzu reicht 
eine Frequenz von 1-4Mhz völlig aus. Ein einfacher "Soll-Ist" Wert z.b. 
mit einem Comparator reicht nicht aus, da der MCU noch auswertet wie der 
Wert steigt.

Wird jedoch der MCU (z.b. Atmel) auf eine Frequenz eingestellt, so 
behält er diese immer, und verbraucht in allen gegebenheiten fast 
gleichviel Strom.

Da der Modus in welchem das Analogsignal überwacht wird mitunter mal 
15-20 Minuten dauern kann, hat das mitunter grossen einfluss auf die 
Batterielebensdauer.


Nun wollte ich mal nachfragen ob es MCU gibt welche ihre Frequenz im 
Betrieb anpassen können? Etwa so wie das hochstehende Prozessoren z.b. 
im PC tun.

Falls nicht, wäre eine Lösung mit einem zweiten MCU praktikabel? Also 
der "Main MCU" geht in den Deep-Sleep und ein low power MCU mit 1MHz 
überwacht das Signal und weckt dann den Main?

: Verschoben durch User
von Tilo R. (joey5337) Benutzerseite


Lesenswert?

Die verschiedenen Sleep-Modes sind eigentlich ausreichend.
Es macht vom Stromverbrauch nur wenig Unterschied, langsamer zu rechnen 
oder schneller und dafür mehr zu schlafen.

Es ist aber durchaus möglich, den Controller mit externen Takt zu 
betreiben und diesen zu variieren.
(Beim AVR habe ich aber auch schon davon gelesen, dass man den externen 
Takt nicht um mehr als Faktor 2 auf einmal steigern/reduzieren sollte)

von S. Landolt (Gast)


Angehängte Dateien:

Lesenswert?

> Wird jedoch der MCU (z.b. Atmel) auf eine Frequenz eingestellt,
> so behält er diese immer ...

?

Ohne Kommentar.

von Purzel H. (hacky)


Lesenswert?

Ond dann gaeb's noch den internen Oscillator, der kann mit dem Osccal 
Register verstellt werden.

von Johnny S. (sgt_johnny)


Lesenswert?

S. Landolt schrieb:
>> Wird jedoch der MCU (z.b. Atmel) auf eine Frequenz eingestellt,
>> so behält er diese immer ...
>
> ?
>
> Ohne Kommentar.

Und das kann man im laufenden Betrieb ändern?

von S. Landolt (Gast)


Lesenswert?

Steht ja da: "These bits can be written run-time to vary the clock 
frequency to suit the application requirements."

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Johnny S. schrieb:
> Nun wollte ich mal nachfragen ob es MCU gibt welche ihre Frequenz im
> Betrieb anpassen können?

Das kann beispielsweise die MSP430-Reihe. Die können im Betrieb zwischen 
extern angeschlossenem Quarz und internem RC-Oszillator umschalten und 
auch die Frequenz des RC-Oszillators ändern.

von Johannes S. (Gast)


Lesenswert?

Und Cortex-M können das üblicherweise auch alle, dazu lassen sich noch 
nicht benötigte Hardware Units abschalten.

von S. Landolt (Gast)


Lesenswert?

an Johnny S.:

Okay, zugegeben, die "klassischen" AVR8 'AT90...' konnten es nicht, auch 
z.B. ATmega8 oder 16 noch nicht.

von Quarz-Killer (Gast)


Lesenswert?

Johannes S. schrieb:
> Und Cortex-M können das üblicherweise auch alle, dazu lassen sich noch
> nicht benötigte Hardware Units abschalten.

Und wenn der externe Quarz im Betrieb abbricht schalten die besseren auf 
den internen RC-Oszillator um :-)

von X4U (Gast)


Lesenswert?

Quarz-Killer schrieb:
> Und wenn der externe Quarz im Betrieb abbricht schalten die besseren auf
> den internen RC-Oszillator um :-)

Oder auf den Uhren-Quarz

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Habe ich auch schon mit XMega gemacht für einen Datenlogger. Läuft mit 2 
MHz im Logmodus und mit 32 Mhz, sobald man ihn zum Auslesen mit dem PC 
verbindet - natürlich im laufenden Betrieb.

: Bearbeitet durch User
von Tim (Gast)


Lesenswert?

S. Landolt schrieb:
> konnten es nicht, auch
> z.B. ATmega8 oder 16 noch nicht.
Aber auch da kann man an OSCCAL drehen. Von nominell 8 MHz sollte ein 
Bereich zwischen 5 und 15 MHz erreichbar sein.

Quarz-Killer schrieb:
> Und wenn der externe Quarz im Betrieb abbricht schalten die besseren auf
> den internen RC-Oszillator um :-)
Wenn man statt einem Schwingquarz einen Quarzoszillator mit 
Enable-Eingang nimmt, kann man den Zeitpunkt des Zu- und Abschaltens per 
Software bestimmen.

von c-hater (Gast)


Lesenswert?

Tim schrieb:

> Wenn man statt einem Schwingquarz einen Quarzoszillator mit
> Enable-Eingang nimmt, kann man den Zeitpunkt des Zu- und Abschaltens per
> Software bestimmen.

Beim AVR8?

Abschalten ja, das ginge sicher.

Aber wieder anschalten geht nicht, da müsste dann externe Hardware für 
sorgen. Denn wo kein Takt, da kein Programm, was irgendetwas dafür tun 
könnte, dass wieder ein Takt kommt...

von Rolf M. (rmagnus)


Lesenswert?

Johnny S. schrieb:
> S. Landolt schrieb:
>>> Wird jedoch der MCU (z.b. Atmel) auf eine Frequenz eingestellt,
>>> so behält er diese immer ...
>>
>> ?
>>
>> Ohne Kommentar.
>
> Und das kann man im laufenden Betrieb ändern?

Es sind Register. Wie soll man die denn ändern, wenn nicht im laufenden 
Betrieb?

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Register ja, "Fuses" nein.

von Tim (Gast)


Lesenswert?

c-hater schrieb:
> Beim AVR8?
Nein, nicht das ich wüßte.

Quarz-Killer schrieb:
> Und wenn der externe Quarz im Betrieb abbricht schalten die besseren auf
> den internen RC-Oszillator um
Was auch immer "die besseren" sind, meine Erkenntnisse diesbezüglich 
sind auf AVR begrenzt.

Nein, stimmt nicht: In FPGAs bau ich gelegentlich auch solche 
Takt-Fallback-Schaltungen ein.
Ein internen getakteter zähler überwacht einen extern getakteten Zähler. 
Nur wenn der im richtigen Freuqenzbereich ist, wird der Clock-Mux auf 
extern geschaltet.

Vorteil: Die Kommunikationsschnittstellen laufen auch im 'Fehlerfall' 
(kein externer Takt).

von Volker S. (vloki)


Lesenswert?

PICs mit internen Oszillator kann man auch über einen großen Bereich 
während dem Betrieb umstellen.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.