Hallo,
auf dem Arduino-Uno-Board befindet sich ein Quartz mit 16.000 MHz. Kann man auch einen anderen Quartz verwenden, z.B. 10.000 MHz?
Andi
Druckbare Version
Hallo,
auf dem Arduino-Uno-Board befindet sich ein Quartz mit 16.000 MHz. Kann man auch einen anderen Quartz verwenden, z.B. 10.000 MHz?
Andi
Jain!
Ja, weil es rein vom Microprozessor kein Problem darstellt.
Nein, weil nicht alle Arduino-Funktionen korrekt funktionieren werden. Z.B. millis() würde falsche Werte liefern. Alle Programme, die darauf beruhen damit auch. Das zu beheben wäre mit Programmieraufwand verbunden, dessen Größe vom konkreten Projekt abhängt.
Danke. Für einen Sketch, der lediglich Taster/Schalter beinhaltet, die relativ zeitunkritisch sind, könnte ich also auch einen 10.000er Quartz verwenden (?) Kann ich den einfach statt des 16ers einsetzen? Oder muss da Bauteilseitig auch etwas angepasst werden? Viele Bauteile sind es ja nicht...
Andi
Ich bin der Meinung ein Tausch geht einfach so, weil die Oszillatorschaltung für einen relativ breiten Frequenzbereich ausgelegt ist. Hab ich aber selbst noch nicht getestet.
Ist das eine rein hypothetische Frage oder welchen Grund gibt es, den Quarz zu tauschen?
Wozu willst du einen geringeren Takt? Um was geht es dir dabei? Willst du Energie sparen?
Erstmal kannst du den Clock-Divider einstellen, so dass der Takt runtergeteilt wird mit einem Faktor bis zu 256. Noch mehr bringt es, wenn du den internen 128 KHz Oszillator als Clock einstellst. Je geringer der Takt, desto geringer der Stromverbrauch.
Wenn es nur um Taster geht, kann der µC in den Deep Sleep Modus versetzt werden, da braucht er fast keinen Strom. Wenn eine Taste gedrückt wird, wird er über einen Interrupt wieder aufgeweckt.
Ein Uno ist dafür aber schlecht geeignet, weil der noch allerhand drumherum auf der Platine hat. Wenn es um Stromersparnis für eine reine Tasteranwendung geht, nimm einen Pro Mini.
Danke für Eure Antworten. Es ist ein simpler Grund für meine Frage: ich habe noch 20 Quartze je 10.000 MHz rumliegen. Wenn ich die (für zeitunkritische Sketches) verwenden kann, muss ich nicht extra neue 16er kaufen...
Andi
Etwas verwirrend, dass deine Frage auf den Uno Bezug nimmt - da ist doch schon ein Quartz drauf... ;-)
10 MHz reicht nicht nur für gänzlich zeitunkritische Tasteraufgaben. Ich glaube, schon standardmäßig ist der Divider auf 8 gesetzt, d. h., ein "frischer" Atmega328 läuft nur mit 2 MHz (bei 16 MHz Quartz). Und in vielen Fällen wird das wahrscheinich nie geändert...
Im Übrigen gibt es meines Wissens verschiedene Konstanten, die dem Compiler sagen, mit welchem Takt der µC tatsächlich läuft. Damit kann man die millis() usw. anpassen. (Zumindest kenn ich das vom Atmel Studio so.)
...weil ich meistens den UNO auf meinen Schaltungen nicht als fertiges Board verwende, sondern seine nötigen Komponenten (ohne USB usw) nachbaue und somit in meine Schaltung integriere.
Andi
Na, dann ist es ja auch kein Uno... ;-)
Wie bereits erwähnt kann man, wenn man nur einen uC verwendet, auch einen internen Takt verwenden. Es gibt mehrere, Standard ist 8MHz mit Teiler von 8. Den Teiler kann man auch abschalten. Zusätzlich gibt es noch weitere Oszillatoren.
MfG Hannes