Hallo, in meiner Anwendung dreht der 328 die meiste Zeit Däumchen, hat aber permanent Kleinigkeiten zu erledigen, ich kann ihn also nicht kplt. einschläfern. Da würde eine Taktfrequenz im kHz-Bereich ausreichen. Bei bestimmten Ereignissen muss er aber bei 20MHz unter Volldampf laufen. Dafür muss er aber mit min. 4,5V betrieben werden was den Stromverbrauch in die Höhe treibt. Deshalb möchte ich ihn dynamisch runtertakten und die Versorgungsspannung auf 1,8V absenken. Die Spannung kann ich ganz einfach mit einen I/O-Pin an einen Spannungsregler umschalten. Den Takt könnte ich mit dem CLKPR-Register runterteilen (bis zu 20MHz / 256 = 78KHz). Mein Ziel wäre das Teil mit den 78KHz bei 1,8V und 20MHz bei 4,5V laufen zu lassen. Nun meine Frage, läuft der Quarzoszillator mit 20MHz bei 1,8V? Das der Prozessor nicht laufen würde ist mir klar, aber der Oszi? Im Datenblatt habe ich nichts gefunden, was aber nichts heißt ;-) lg Thomas
Scadi schrieb: > Nun meine Frage, läuft der Quarzoszillator mit 20MHz bei 1,8V? Was hindert dich daran das an deinem existierenden Design auszuprobieren? Ein Taskopf am XTAL Out genügt. Erwarte aber nicht TTL Pegel oder ähnliches. Eher ein paar hundert mV. Meine Testaufbauten 644 funktionieren bei 3.3V 20 MHz. Ich weiss .... nicht laut Datenblatt ....
@Scadi (Gast) >Bei bestimmten Ereignissen muss er aber bei 20MHz unter Volldampf >laufen. >Dafür muss er aber mit min. 4,5V betrieben werden was den Stromverbrauch >in die Höhe treibt. Wieso denn? Er läuft doch nur kurze Zeit bei vollem Takt. Im Sleep Mode ist die Versorgsungsspannung nahezu egal. >Deshalb möchte ich ihn dynamisch runtertakten und die Kann man machen. >Versorgungsspannung auf 1,8V absenken. Das ist keine gute Idee. >Mein Ziel wäre das Teil mit den 78KHz bei 1,8V und 20MHz bei 4,5V laufen >zu lassen. Mußt du wirklich SOOO krampfhaft Strom sparen? >Nun meine Frage, läuft der Quarzoszillator mit 20MHz bei 1,8V? >Das der Prozessor nicht laufen würde ist mir klar, aber der Oszi? Solche Tricks lohnen sich nur seeeehr selten. Lass es.
Scadi schrieb: > Nun meine Frage, läuft der Quarzoszillator mit 20MHz bei 1,8V? > Das der Prozessor nicht laufen würde ist mir klar, aber der Oszi? Wenn er korrekt angepasst ist, dann läuft er auch bei 1,8V noch völlig problemlos. Das Problem sind hier nicht die Halbleiter im µC, sondern einzig die korrekte Dimensionierung der Bürdekapazitäten. Sprich: je kleiner die Spannung, desto geringer wird auch der Spielraum für Dimensionierungsfehler dieser Kapazitäten. Als groben Anhaltspunkt kannst du den "Full-Swing"-Betrieb bei 4.5V Vcc nehmen. Wenn da das Signal an XTAL1 nicht 4.5V Vss erreicht, stimmt die Anpassung definitiv nicht. Durch Tausch der Kapzitäten kannst du den Bereich der korrekten Anpassung "abmessen", also den Bereich, in dem der "Full-Swing" tatsächlich erreicht wird. Von dem so ermittelten Kapazitätsbereich nimmst du das geometrische(!) Mittel und davon ausgehend den nächstniedrigeren(!) Standardwert für die Bürdekondensatoren. Dann sollte es, in'sch Allah, auch bei 1,8V noch problemlos laufen. Was du natürlich ganz einfach auch wieder mit dem Oszi überprüfen kannst, es sollten dann im Idealfall 1,8V Vss an XTAL1 zu messen sein, in der Praxis wird es allerdings meist merklich weniger sein. Solange es auch in der Serie über mehrere Exemplare der Schaltung (idealerweise mit µc, Quarz und Bürdekapazitäten aus verschiedenen Chargen) immer gut über 1V Vss sind, ist's Super-OK, mehr kann man nicht verlangen und mehr ist auch nicht nötig, denn da bleibt dann reichlich Luft bis zum "geht nicht"...
Scadi schrieb: > Deshalb möchte ich ihn dynamisch runtertakten und die > Versorgungsspannung auf 1,8V absenken. Grober Unfug. Schlafen legen mit ein paar wenigen µA Stromverbrauch, über den Watchdog aufwachen, Aktion zügig erledigen und wieder Gute Nacht. Hier läuft ein AT328 mit 5V / 16MHz bei 6µA im sleep.
Interessanter Ansatz, aber wirft die Frage auf, ob die Verlustleistung der LDOs für die Spannungen diesen Aufwand rechtfertigt, und man doch nicht lieber die 20MHz-CPU in den Deep-Sleep schickt, und nur bei Bedarf aufweckt. Wenn er die "einfachen Aufgaben" mit 20MHz statt paar kHz erledigt, geht das ja auch viel schneller, und der µC muß viel kürzer "wach" sein. Was am Ende zählt, ist die Energie-Bilanz. Das nur an der momentanen Stromaufnahme fest zu machen ist imho zu kurz gedacht. Vielleicht ist ja auch der 8bit-AVR der falsche µC für das Vorhaben?
:
Bearbeitet durch User
Läuft mal mit 1.8, mal mit 4.5 V - wie sieht da eigentlich die Anbindung der Peripherie aus?
Scadi schrieb: > Bei bestimmten Ereignissen muss er aber bei 20MHz unter Volldampf > laufen. Wieder mal diffuser Nebel: "bei bestimmten Ereignissen" Da ist der Hebel anzusetzen: In Assembler optimieren, auf minimale Zahl von Befehlen z.B. auf reine Aufnahme der Daten beschränken, diese in Speicher übergeben und anschließend "gemütlich" verarbeiten, mit Richtigkeitskontrolle, Umformung, Verarbeitung usw.
Harry L. schrieb: > Interessanter Ansatz, aber wirft die Frage auf, ob die Verlustleistung > der LDOs für die Spannungen diesen Aufwand rechtfertigt, und man doch > nicht lieber die 20MHz-CPU in den Deep-Sleep schickt, und nur bei Bedarf > aufweckt. Solange das MÖGLICH ist, ist diese Variante natürlich unbedingt vorzuziehen, da gebe ich dir vollkommen Recht. Bloß leider ist es eben längst nicht immer möglich. Das Problem stellt sich immer dann, wenn man einerseits eine dauerhafte Zeitbasis mit quarzgenauem Takt benötigt, gleichzeitig aber die Anforderung nach extrem geringem Energiebedarf hat. Dann gibt es bei den AVR8 (im besten Fall) nur zwei Möglichkeiten: asynchroner Timer mit Uhrenquarz oder geringer Systemtakt mit Uhrenquarz. Nun ist es aber leider so, dass längst nicht jeder AVR8 überhaupt einen asynchronen Timer hat (z.B. nahezu alle Tinys). Damit entfällt diese Lösungsmöglichkeit für diese Devices. Dazu kommt, dass ein weiterer Teil der Tinys nicht einmal den Betrieb mit einem "langsamen" Quarz als Systemtaktquelle unterstützt. Und ein weiteres Problem tut sich auf, wenn zwar "langsamer Systemtakt" möglich ist, mit diesem geringen Takt aber die geforderte Antwortzeit für eine konkreten Aufgabe schlicht nicht realisierbar ist. Erkennst du das Problem? Und ja: Der Ansatz des TO ist für genau solche kritischen Anwendungen absolut zielführend. Man kann damit tatsächlich aus dem "geht nicht" ausbrechen. Allerdings: der Energieverbrauch wird natürlich immer noch höher sein, als bei Wahl des für die Anwendung optimalen Device. Sprich: er sollte einfach einen Mega nehmen...
Scadi schrieb: > Nun meine Frage, läuft der Quarzoszillator mit 20MHz bei 1,8V? > Das der Prozessor nicht laufen würde ist mir klar, aber der Oszi? Auch der kann probleme machen. Man schaue sich mal die Datenblätter zu 74HCxxx Logik an: Bei 2V sind die viel langsamer als bei 5V. Das wird auch für den Inverter im Pierce-Oszillator auf dem AVR gelten - zumal der für richtig Speed auch auf "Full Swing" gestellt sein muss. Da würde ich in der Serie mit erhöhter Ausfallrate rechnen - und eine Einzelstück könnte temperaturempfindlich sein. Blöderweise kannste den Oszillator bei den ollen AVRs nicht einfach mal abklemmen. Aber wenn man die 20 MHz wirklich aus Performance Gründen braucht, sollte man eher über einen Plattformwechsel zu Cortex-M3 oder Cortex-M4 nachdenken. Beispiele: STM32 für Performance (>100MHz) oder Silabs EFM32 für batterieschonenden Strombedarf. Falls ich die 5V wirklich noch brauche, gäbe es was passendes von Nuvoton. Eventuell lohnt es sich die Ableger von Bluetooth LE intergrierten Chips anzuschauen. Deren Quarzoszillatoren können in <1ms hochfahren. Das wären dann richtige BTLEs wie NordicSemi NRF5x oder Silabs "Gemstone" Chips (Perl/Jade Gecko), letztere gibts auch ohne Radio. Allerdings ist man dann auf eine bestimmte Quarzfrequenz festgelegt.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.