www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik AVR mit dynamischen Takt


Autor: Michael Melzer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo!

Ist es eigentlich möglich einen AVR z.B.
wenn er von der Batterie versorgt wird 2MHz
und wenn er vom Netz versorgt wird 8MHz
ohne das er einen Reset macht??

Wenn ja, wie macht man denn sowas?
Wäre es möglich mit einem Relay an einem Port, das zwischen einem 8MHz
und einem 2MHz Quarz schaltet?

Danke im Voraus
Melzer

Autor: ...HanneS... (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn der Quarz mit der Kapazität der Relaiskontakte noch schwingt? Kommt
auf Relais und Quarz an, also ausprobieren...

Autor: Wolle (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
spannungsgesteuerter Oszillator statt Quarz ?

Autor: Tobi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
wäre ein/zwei quarzoszillator/en mit analogschalter da nicht besser?

wie genau ist ein vco?

Autor: Rufus T. Firefly (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der Quarzoszillator im AVR wird über ein Umschalten des angeschlossenen
Quarzes wenig erfreut sein; schließlich muss der neu anschwingen, was
eine gewisse Zeit lang ein seltsames Verhalten zur Folge haben dürfte.

Einfacher wäre ein Festfrequenzoszillator, der durch einen digital
umschaltbaren Teiler mit dem AVR verbunden ist.
Da läuft zwar der Oszillator immer mit vollem Takt, ebenso der Teiler,
aber der AVR bekommt ein sauberes Taktsignal, ohne daß im
Umschaltmoment ein Oszillator neu anschwingen müsste.

Das dürfte dem leicht erhöhten Leistungsbedarf gegenüber ein
eindeutiger Vorteil sein.

Autor: Michael Melzer (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
wäre das eine möglichkeit dies zu realisieren?

Autor: Ingo Henze (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Da hier kein konkreter AVR genannt wurde, möchte ich anmerken, das die
neueren AVRs einen "System Clock Prescaler" haben. Beispielsweise die
neuen Mega48/88/168 und der Mega162, aber auch die aktuellen Tinys, wie
Tiny13 oder 2313.
Feine Sache das, einfach mal den Takt zu Laufzeit runtersetzen, um z.B.
Strom zu sparen.

Gruß
Ingo

Autor: Markus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wäre es nicht sinnvoller, den Takt intern umzuschalten? Können aber
nicht alle Modelle, also vorher kontrollieren ob das geht.

Markus

Autor: Ratber (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Noch eine Anmerkung nebenher weil da öfters mal welche hereinfallen.


Natürlich kann man den Takt wechseln wie man will (Wie es geht steht ja
oben schon) aber es bleibt da ein kleines Problem.
Die Soft auf dem Controller sollte auch darauf ausgelegt sein mit
unterschiedlichen Takten zu arbeiten und diese auch angezeigt bekommen
da Programmablauf und auch angeschlossene Hardware eventuell abhängig
vom takt sind.

Autor: Philipp Sªsse (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mit einem VCO sehe ich eine Probleme mit dem Einschwingen, schließlich
läßt sich die Steuerspannung soweit tiefpaßfiltern, daß der AVR folgen
kann. Mit einem NCO geht das natürlich auch.

Da wird es dann aber wichtig zu wissen, um welche Anwendung es geht!
Wenn zu einem zeitpunkt eine definierte Taktrate herrschen muß wegen
zeitkritscher Routinen, macht das natürlich wenig Spaß.

Wenn es eher so ist, daß mal mehr, mal weniger Last anfällt, ohne
plötzliche Wechsel, finde ich die Realisierung durchaus pratikabel. Ein
Beispiel? Bei einem Bordcomputer ist die Last (GPS-Auswertung,
LCD-Darstellung) etwa geschwindigkeitspropotional. Und ein AVR kommt
schneller von "null auf hundert" als ein Ferrari! (-;

Autor: Rufus T. Firefly (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Michael:

Deine Schaltung ist keine Lösung. Einerseits ist nicht klar, ob die
Treiberleistung eines Portpins bzw. des verwendeten Inverters genügt,
um als Versorgungsspannung für einen Oszillator verwendet zu werden,
andererseits ist das Anschwingverhalten und Ausschwingverhalten zum
Zeitpunkt des Umschaltens höchst undefiniert.
Der Controller wird einige Millisekunden lang mit gequirltem Quark
anstelle eines Taktsignales versorgt werden.
Auch will so ein Oszillator mit Versorgungsspannungspegeln statt des
müden "high" eines Portpins versorgt werden.

Nein, entweder einen Quarzoszillator mit eingebautem programmierbaren
Teiler verwenden (EXO-3*), oder aber einen Vorteiler verwenden und
zwischen dessen Ausgängen umschalten (Aus der CMOS-Reihe 4040 oder
ähnliches; wenn ich mich recht entsinne, gab's da doch auch einen mit
integrierter Oszillatorschaltung?).

Besser allerdings ist der Hinweis von I. Henze einige Posts weiter
oben.

Zuletzt noch: Lohnt der ganze Aufriss überhaupt? Die Leistungsersparnis
durch reduzierten Takt ließe sich schließlich auch durch geschickte
Programmierung unter Ausnutzung der verschiedenen Stromsparmodi des
Prozessors nutzen - Nutzung von Interrupts statt zyklischem Pollen
etc.
Das Datenblatt des Mega128 verrät ab Seite 42 einiges interessantes.

*) http://www1.odn.ne.jp/~aal22410/pdf/PDF005.pdf

Autor: Ingo Henze (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja, das mit einem 4060 hatte ich auch probiert.
An sich ein nettes Teil, wahlweise als RC- oder Quarzoszillator zu
betreiben und mit integriertem 14-Bit Binärteiler (die Stufen Q3 bis
Q13 sind jeweils herausgeführt).
Erschreckend für mich war dann aber doch der recht hohe Stromverbrauch
der ganzen Sache, der weit über dem lag, was ich beim AVR durch den
verringerten Takt eingespart hätte.
Kurz und gut, ich habe das Projekt "Externe Taktversorgung mit
Taktumschaltung" schnell wieder fallen gelassen und bin nun mit einem
Mega48 glücklich :-)

Gruß
Ingo

Autor: crazy horse (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bin auch der Meinung, dass das alles Heck-Meck ist. Mit der
Geschwindigkeit laufen lassen, die nötig ist, bleibt dennoch Zeit (z.B.
weil im Batteriebetrieb weniger zu tun ist) schlafen legen, dass spart
mehr Strom als mit reduzierte Taktrate im Kreis springen lassen.

Autor: Michael (ein anderer) (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wie genau soll der Takt denn sein?

Eine einfach Lösung wäre: Externer RC-Oszilator zu verwenden, und wenn
der Takt schneller laufen soll (bei Netzbetrieb) über einen Portpin
einen zweiten Widerstand dazuschalten.

Also Widerstand und Kondensator für Frequenz bei Batteriebetrieb
berechnen, dann einen zweiten Widerstand so berechnen, dass bei
Parallelschaltung der beiden Widerstände der Oszilator mit der
gewünschten höheren Frequenz schwingt.

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenns nur aufs Stromsparen ankommt, z.B. den Mega8 mit 32kHz Quarz
betreiben + internen 8MHz RC-Oszillator.
Und dann beim Batteriebetrieb immer zyklisch schlafen legen und durch
die 32kHz aufwecken lassen (T2 Interrupt).

Die Stromersparnis ist die gleiche, egal ob man alles langsam macht
oder   schnell auf einen Ruck und dann den Rest der Zeit schlafen
geht.


Peter

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.