waste1 hat geschrieben:Wenn der ADC mit konstantem Clock läuft, dann ist er auch immer eine konstante Zeit eingeschaltet. Während dieser Zeit läuft auch parallel der Oszillator des Prozessors mit, ohne Programmausführung.
Ich glaube bei der untersuchten Variante, habe ich den µC nach Start des ADCs schlafen gelegt und per ADC-Fertig IRQ aufwecken lassen. Sicher bin ich mir aber nicht, da ich dieses Verhalten später rausgenommen habe.
waste1 hat geschrieben:In der anderen Phase, also während der Programmausführung ohne ADC-Messung ist es egal, weil sich da die kürze Laufzeit mit dem höheren Stromverbrauch bei höherer Frequenz aufhebt.
Nur teilweise, wie ich gelernt habe:
1.: der Oszillator läuft immer gleich schnell und verbraucht dabei immer gleichviel Strom, unabhängig davon, wie schnell der µC läuft. Der µC-Takt wird ja erst nach dem Oszillator durch den Prescaler runter geteilt.
2.: der Oszillator selbst schluckt ganz ordentlich (ich habe so den Eindruck: im mA-Bereich) - also viel im Vergleich zur CPU des µC
3.: der summarische Verbrauch der CPU ist relativ unabhängig von der Taktfrequenz: die Anzahl der notwendigen Takte und der Strom, der für das Umladen der Gate-Kapazitäten notwendig ist ist gleich (wie von Dir oben ja schon geschrieben und was auch meine Vermutung gewesen wäre)
Aber: 4.: wenn die CPU schon nach der Hälfte der Zeit mit ihrer Arbeit fertig ist und sich wieder schlafen legt, wird eben auch der Strom hungrige Oszillator nach der Hälfte der Zeit wieder ausgeschaltet. ... und damit spart man dann Strom.
waste1 hat geschrieben:Bei festem ADC-Clock gibt es also ein Optimum für den günstigsten Stromverbrauch und zwar wenn der Prescaler für den ADC auf Minimum (also 2) steht. Wenn man also den ADC innerhalb der vorgeschriebenen 50 - 200 kHz Rate betreiben will, dann sollte der Prozessortakt nicht höher als 400 kHz sein.
Das gilt, wenn der Stromverbrauch des ADCs einen großen Anteil am Gesamtstromverbrauch besitzt. Das kann ich jetzt nicht aus meinen Messungen direkt ableiten, da ich den ADC-Takt nicht im erlaubten Bereich gehalten hab (sondern ihn mit steigendem µC-Takt auch erhöht habe) und weiterhin µC zwischen den Messungen schlafen geschickt habe (allerdings in diesem Fall mit laufendem Oszillator).
Ich werde die Messungen entsprechend nochmal wiederholen.
Viele Grüße,
Thomas(_st)