Forum: Mikrocontroller und Digitale Elektronik Wie viel Megaherz sind gut für den AVR?


von Megaherz (Gast)


Lesenswert?

Hi, ich habe da mal eine Frage, auf die ich hier nirgends eine Antwort 
finden konnte.


Früher wurde, wenn ich das richtig verstanden habe, viel mit 
Versorgungsspanungen von 5 V gearbeitet und heute nimmt man lieber die 
3,3 V, warum auch immer.

Ein AVR kann ja i.d.R. mit bis zu 20 MHz betrieben werden.

Warum nimmt eigentlich nicht jeder Bastler der 5 V-Schaltungen baut 
gleich die 20 MHz?

Ok, der Stromverbrauch ist natürlich höher, aber macht sich das wirklich 
bemerkbar?


Oder anders herum gefragt, reichen die Maximalen 8 oder 10 MHz bei 3,3 V 
für größere Anwendungen?

Das ein Megaherz 10^6 Schläge pro Sekunde sind, ist klar, aber ich kann 
mir halt nicht vorstellen, wie viel Megaherz für welche Anwendung sinnig 
sind und was eher unsinnig ist.

von Florian (Gast)


Lesenswert?

z.B. kann die Hardware-PWM-Frequenz nur ein Teiler der Taktfrequenz 
sein.

Benötigst du eine bestimmte PWM-Frequenz, musst du den Controller mit 
einer entsprechenden Taktfrequenz betreiben.


Bei Batterieanwendungen kann es schon wichtig sein, Strom zu sparen 
durch möglichst geringe Spannung und Taktfrequenz.

von Wegstaben V. (wegstabenverbuchsler)


Lesenswert?

ein einfacher Taschenrechner für 3 EUR [4 Grundrechenarten, Wurzel, 
Kehrwert] wird mit einigen hundert KILO-Herz betrieben (z.B. 200 kHz).

Der "Bordcomputer" der Apollo Kapsel lief auf 512 kHz.

überlege dir, wie du "früher" auf einem Blatt Papier addiert, 
mutipliziert oder (wenn du sowas überhaupt gemacht hast) Wurzeln gezogen 
hast. Dann stelle dir ansatzweise vor, wie ein Programm dazu aussieht, 
welches nur 8 oder 16 bit breite Register hat, du aber dennoch 
Bruchzahlen mit 10 Nachkommastellen damit berechnen willst (--> Du wirst 
zu Recht annehmen, daß dieses Programm mehr als 5 Zeilen Programmcode 
umfasst)


Wie war nochmal die Frage?

> Oder anders herum gefragt, reichen die Maximalen 8 oder 10 MHz
> bei 3,3 V für größere Anwendungen?

JA. DEFINITIV.

von Kurt H. (Firma: KHTronik) (kurtharders)


Lesenswert?

Hallo,
wenn ein AVR mit <= 8MHz betrieben wird, ist das oft der interne 
Oszillator. Für alle Anwendungen, bei denen die Genauigkeit eines 
Quarzes/Kermaikresonators nicht benötigt wird, ist das eine gute Wahl.
Beim Einsatz von Kermaikresonatoren ist bei 16MHz meist Schluss, bei 
20MHz brauch man den Quarz oder einen externen Taktgenerator. Dafür ist 
dann der Takt auch für z.B. kritische RS-232-Timings genau genug.
Ein Beispiel für die Taktauswahl:
mit einem AVR sollten alle 50µs zwei Pins gelesen und in einen Puffer 
geschoben werden. Ausserdem musste das Ende der Datenübertragung 
erkannt, der Puffer umgeschaltet und der Hauptprozess benachrichtigt 
werden, dass neue Daten vorliegen.
Mit 8MHz Takt hätte man ca. 400 Befehle in der Zeit ausführen können. 
Das war in Grenzsituationen zu knapp, so dass ein 20MHz-Quarz zum 
Einsatz kam.
Fazit: Man kann es ja mal langsam versuchen, und zählt dann im 
Assemblerlisting des Compilers die Befehle. Wenn man das nicht 
kann/will, nimmt man einen Quarz :-)
Grüße, Kurt

von Frank K. (fchk)


Lesenswert?

Megaherz schrieb:

> Früher wurde, wenn ich das richtig verstanden habe, viel mit
> Versorgungsspanungen von 5 V gearbeitet und heute nimmt man lieber die
> 3,3 V, warum auch immer.

Warum: kleinere Halbleiterstrukturen, die weniger Spannung abkönnen; 
geringerer Energieverbrauch (P=U^2/R, d.h. halbe Spannung -> viertel 
Leistung)

> Warum nimmt eigentlich nicht jeder Bastler der 5 V-Schaltungen baut
> gleich die 20 MHz?

weil dann zB bei den seriellen Schnittstellen die üblichen Baudraten 
nicht genau hinkommen. Daher findest Du oft krumme Quarzfrequenzen.

> Oder anders herum gefragt, reichen die Maximalen 8 oder 10 MHz bei 3,3 V
> für größere Anwendungen?

Was sind "größere Anwendungen"? Für vieles reicht es, und wenn nicht, 
dann gibts andere Chips, die viel schneller sind. Es gibt zB dsPIC33EP 
mit 70 MHz (16 Bit) oder PIC32MX1xx/2xx mit 50 MHz (32 Bit) im DIL28, 
und die sind nur unwesentlich teurer als ein Mega 328p, und sie laufen 
mit 3.3V. Wer wirklich Rechenleistung oder viel RAM braucht, wäre also 
völlig bescheuert, wenn er AVR nehmen würde.

fchk

von Megaherz (Gast)


Lesenswert?

Ok, vielen Dank an alle :-)

Die Antworten bringen mich sehr viel weiter ;-)

von Falk B. (falk)


Lesenswert?

@ Megaherz (Gast)

>Warum nimmt eigentlich nicht jeder Bastler der 5 V-Schaltungen baut
>gleich die 20 MHz?

Machen die meisten doch, ist auch OK.

>Ok, der Stromverbrauch ist natürlich höher, aber macht sich das wirklich
>bemerkbar?

Sicher, das ist praktisch linear zur Taktfrequenz.

>Oder anders herum gefragt, reichen die Maximalen 8 oder 10 MHz bei 3,3 V
>für größere Anwendungen?

Was ist für dich eine "größere Anwendung". Die Pallette ist SEHR groß.
Manchmal braucht man viel MHZ aber wenig Speicher, manchmal anders 
herum, manchmal beides, manchmal beides nicht.

>Das ein Megaherz 10^6 Schläge pro Sekunde sind, ist klar, aber ich kann
>mir halt nicht vorstellen, wie viel Megaherz für welche Anwendung sinnig
>sind und was eher unsinnig ist.

Das kann man auch nicht so einfach, dazu braucht es Erfahrung und 
Wissen. Eine Soft-PWM braucht viele MHz, sonst aber sehr wenig 
Flash. Ein Menu für eine Steuerung braucht viel Flash für Texte und 
Anzeigen aber wenig MHz, weil vielleicht nur alle paar hundert ms was 
passiert.

von Ulrich (Gast)


Lesenswert?

Eine niedrigere Taktfrequenz und weniger Spannung führt auch zu weniger 
Funkstörungen. Von daher spricht viel für 3,3 V (oder weniger).

Für das meiste reicht auch schon der interne 1 MHz Takt so wie es bei 
den meisten als Vorgabe eingestellt ist. Das ist immer noch etwa die 
maximale Geschwindigkeit die der original 8051 konnte oder etwa das 1-2 
fache von dem was früher ein C64, Apple 2 oder typische CP/M Computer an 
Geschwindigkeit hatten. Weniger nimmt man eher ungern, weil dann ggf. 
die ISP Verbindung auch langsamer gestellt werden muss.

Der Schritt von 10 MHz zu 20 MHz ist nur ein Faktor 2 - da gibt es nur 
ganz wenige Fälle wo 20 MHz ausreichen, aber 10 nicht mehr. Vermutlich 
gibt es mehr Anwendungen wo auch 128 kHz schon ausreichen.

von Peter R. (pnu)


Lesenswert?

Bei den ersten atmega8-Versionen war der Frequenzbereich von der 
Technologie mit 16MHz schon ziemlich ausgereizt. Die 16MHz wurden für 5V 
garantiert.Da gab es ("selektiert", weil extra danach ausgemessen) die 
Niedervolt-Versionen des atmega8, die aber m.W. nur bis 8MHz 
spezifiziert waren.
Daraus lässt sich ersehen:

16MHz war bei den ersten atmegas schon die Grenze der Taktfrequenz.

Bei Nachfolgeversionen wie atmega48,88... werden, dank feinerer 
Strukturen 20MHz als Grenze angegeben.

Die Auslieferungseinstellung der meisten atmegas ist aber 1MHz. Bei 
dieser Frequenz scheinen sich die Kontroller erst richtig wohl zu 
fühlen, was sich in vollem ausnutzbaren Spannungs- und Temperaturbereich 
zeigt.

Welche Taktfrequenz nötig ist, entscheidet eigentlich die Software.

Meistens sind 1MHz völlig ausreichend. Wenn  das Programm  allerdings 
mit copy und paste zusammengestöpselt ist, ohne Rücksicht auf die 
Resourcen, sind selbst 20MHz Taktfrequenz zu wenig, ganz zu schweigen 
vom benötigten Speicherbereich.

: Bearbeitet durch User
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
Noch kein Account? Hier anmelden.