ist es möglich bei einem Arduino/Atmega328 im laufenden Betrieb die Taktrate zu ändern? Vllt mit 2 Quarzen?
Die Idee dahinter ist, Strom zu sparen. Allerdings benötige ich in der Zeit in der der Chip "richtig" arbeitet die PWM Ausgänge und würde da ungern auf die Frequenz verzichten, die ja wie ich gelesen hab auch von der Frequenz des Chips abhängt.
Kann ich damit Strom sparen oder ist es den Aufwand nicht wert?
Zum Strom sparen gibt es eigentlich verschiedene Sleep - Modi.
Nur um eine bestimmte PWM Frequenz zu haben, brauchst du auch keine 16 MHz, und keinen Quarz, sondern kannst zwischen den internen 8 und 1 MHz wechseln.
zum Energie einsparen nützt Dir eine Taktsenkung sehr wenig. Das ist alles nur Kosmetik. Wenn dann müßtest Du auch die Spannung dazu ändern. Zum Bsp. den µC nur mit 3,3V und 8MHz betreiben. Das wäre aber sehr aufwendig. Richtig Energie sparen kannst Du nur wenn Du den µC schlafen legst und durch externe Interrupts aufwecken kannst.
War gestern nur so eine Schnapsidee, die mir spontan gekommen ist, ich aber nichts im Internet dazu finden konnte.
Außer natürlich bei "richtigen" Prozessoren (dann nicht Absenkung der Taktrate sondern eher Anhebung (Boost))
nicht Absenkung der Taktrate sondern eher Anhebung (Boost)
Soll auch Leute geben, die behaupten 16MHz geht auch mit 3.3V
Von 24 MHz hab ich allerdings noch nichts gesehen.
Wobei das auch keinen wirklichen Sinn macht.
Die Geschwindigkeitszunahme ist eigentlich unwesentlich. Interessanter am "Arduino Übertakten" ist eher, ob man bei Standard-Taktfrequenz auch mit geringerer Versorgungsspannung auskommt.
16Mhz geht mit 3V3 nicht zuverlässig, irgednwo nach 12-14MHz ist das ganze alles andere als zuverlässig. Wenn du wirklich Strom sparen willst, dann nehme keine Nano, Uno oder ähnliches, sondern einen nakten Atmega oder Pro Mini. Am besten direkt mit 8MHz und 3V3. Das reicht vollkommen aus, 16MHz braucht man nicht immer.
Frequenz auf 1 MHz absenken (um mit niedriger Spannung laufen zu können)
So lange wie irgend möglich schlafen legen (Stichwort Narkoleptic: https://code.google.com/p/narcoleptic/source/browse/user+guide.txt)
4b) alles was irgendwie geht an die Hardware abdrücken, also eine Zustandsmaschine die mit Interrupts arbeitet und zur Not mit den Hardwarezählern arbeitet
4c) unnötige Prozessorfeatures ausschalten
Mein Rekord liegt bei <1 Microampere im Schlafmodus und ~200 Mikroampere wach. Im Mittel <1 Mikroampere