Forum: Mikrocontroller und Digitale Elektronik Avr mit 8MHz oder höher


von Frank Neumann (Gast)


Lesenswert?

Hallo,

eine Frage zum Verständnis,
was genau macht oder passiert mit dem AVR, wenn ich statt 8MHz Quarz 
einen 25MHz einbaue?

Arbeitet die Do Schleife dann schneller?
oder ist es nur für den Timer vorgesehen?

Wann sollte ich einen kleineren und wann einen größeren Quarz nehmen?
Was entscheidet die optimale Größe des Quarz?

Danke im Voraus
Frank

von bastel (Gast)


Lesenswert?

Frank Neumann schrieb:
> was genau macht oder passiert mit dem AVR, wenn ich statt 8MHz Quarz
> einen 25MHz einbaue?

Er arbeitet schneller, unzuverlässig oder gar nicht (Außerhalb der 
Spezifikation, zulässige Quarze siehe Datenblatt). Und ich vermute mal 
er wird wärmer/verbraucht mehr Strom. Nicht empfehlenswert außer zum 
Spaß/Experimentieren.

Frank Neumann schrieb:
> Arbeitet die Do Schleife dann schneller?
> oder ist es nur für den Timer vorgesehen?

Beides, wobei manche Timer auch alleine extern getaktet werden können.

Frank Neumann schrieb:
> Wann sollte ich einen kleineren und wann einen größeren Quarz nehmen?
> Was entscheidet die optimale Größe des Quarz?

Je nachdem, wie viel Platz Du auf der Platine hast.

von Alter Sack (Gast)


Lesenswert?

Frank Neumann schrieb:
> Hallo,
>
> eine Frage zum Verständnis,
> was genau macht oder passiert mit dem AVR, wenn ich statt 8MHz Quarz
> einen 25MHz einbaue?
da 25Mhz außerhalb der Kennwerte gemäß Datenblatt liegen hängt es vom 
Zufall ab ob der Quarzoszillator vom AVR dann überhaupt noch schwingt. 
Je kühler CMOS betrieben wird, desto höher ist die maximale 
Betriebsfrequenz. Über 25MHz sollte man auf keinen Fall hinausgehen weil 
dies schon jenseits der vom Hersteller vorgegebenen Grenze liegt. Wer 
die maximal zuläßigen Betriebswerte des Herstellers willentlich 
übersteigt macht das auf eigene Verantwortung und Gefahr. Auch besteht 
bei manchen ICs und Bedingungen die Gefahr einer möglichen Überhitzung.
>
> Arbeitet die Do Schleife dann schneller?
> oder ist es nur für den Timer vorgesehen?
Bis auf den RC Watchdog Timer sind alle vom Takt abhängigen 
Schaltungsteile von der Frequenz der Taktquelle proportional abhängig. 
Also alle internen Zähler und Vorteiler und Synchronisations Logik.
>
> Wann sollte ich einen kleineren und wann einen größeren Quarz nehmen?
Wenn Du physische Größe meinst, dann sind kleinere Quarze generell 
robuster aber möglicherweise ungenauer. Deine Frage ist irreführend weil 
man nicht weiß ob physische Größe oder Frequenz gemeint ist.
Quarze werden heutzutage in extrem kompakten Baugrößen gefertigt und 
werden in veschiedensten Genauigkeitsklassen und Temperaturstabilität 
gefertigt.

Die Beantwortung hängt auch stark von der Anwendung ab und läßt sich 
ohne Kontext und Randbedingungen nicht gut beantworten.

> Was entscheidet die optimale Größe des Quarz?
Wenn Du Frequenz meinst:
Stromverbrauch. Je niedriger die Quarzfrequenz ist, desto geringer ist 
die Stromaufnahme. Sonst hängt das stark von den Anforderungen der 
Anwendung ab.

Baudraten für asynchrone Verständigung. Da der Baudratengenerator nur 
Integer Nummern verarbeiten kann, sind spezielle Frequenzen besonders 
geeignet um genaue konforme Baudraten wie 115200 Baud exakt zu erzeugen. 
Z.b. Findet man in solchen Fällen die (komische) Frequenz 11.0592MHZ 
oder 18.432MHz da sie sich genau teilen lassen und Null % 
Baudratenfehler aufweisen.

Timing. Wer z.B. Zeitintervalle genau in us messen will, findet 
Frequenzen wie 8 oder 16 MHz günstig weil der Vorteiler des Timers genau 
auf 1us Periode herunter geteilt werden kann und so Zeitintervalle ohne 
Runden zu müssen, genau erfasst werden können. Dafür kann man nicht alle 
Baudraten fehlerfrei erzeugen. Ist also ein Kompromiss.

Ich rate Dir die einschlägigen Einführungen im Forum und sonst wo zu 
studieren. Auch das Datenblatt und die vielen Application Notes können 
viele Deiner Fragen mehr oder weniger gut beantworten.

Wenn Du wirklich ein totaler uC Einsteiger bist, dann wirst Du einige 
Zeit brauchen die vielen dazu existierenden Informationen richtig zu 
verdauen weil Vieles eigentlich nicht ohne Hintergrundwissen wirklich 
verständlich ist. Der Fachjargon ist auch so eine Sache. Sieh Dir die 
vielen Artikel hier im Forum an. Sonst frage halt. Der Stephanus hat 
auch eine gute einführende Seite. Da wir Dich nicht kennen, ist es halt 
schwierig Fragen auf Deinem Niveau für Dich verständlich zu beantworten. 
Das wird hier oft vergessen. Ich hoffe mein Kommentar klingt nicht 
herablassend. Das ist nicht meine Absicht.
>
> Danke im Voraus
> Frank

von Frank Neumann (Gast)


Lesenswert?

Ok, danke erstmal an Euch für die ausführliche Erklärung.

Ich habe vor, mir eine I/O Karte zu basteln, ich weiß es gibt fertige 
und günstige im Netz aber der Sinn ist ein selber basteln und dabei die 
uC Welt kennen lernen. Da es über die USB laufen soll, dachte ich mir, 
ich nehme mir den AT90USB162 zur Hand, weil ich eine fertige 
Grundschaltung im Netz gefunden habe.

Lt. dem Datenblatt darf ich max. 16MHz nehmen.
Aber selbst hier stellt sich die Frage, wann ein 8MHz und wann einen 
16MHz ist einzusetzen?

Hätte das z.B Einfluss auf die Kommunikation zwischen der HW und dem PC?

Je höher desto schneller die Übertragung?

von M. K. (sylaina)


Lesenswert?

Frank Neumann schrieb:
> Aber selbst hier stellt sich die Frage, wann ein 8MHz und wann einen
> 16MHz ist einzusetzen?

In erster Linie wäge ich bei so etwas immer ab, wie schnell und genau 
der µC für die entsprechende Anwendung sein muss. Als zweite Frage kommt 
dann immer auf, wieviel Strom der µC verbrauchen darf in der 
entsprechenden Anwendung. Das legt dann bei mir immer die Taktquelle und 
Geschwindigkeit fest.

von Alter Sack (Gast)


Lesenswert?

Frank Neumann schrieb:
> Ok, danke erstmal an Euch für die ausführliche Erklärung.
>
> Ich habe vor, mir eine I/O Karte zu basteln, ich weiß es gibt fertige
> und günstige im Netz aber der Sinn ist ein selber basteln und dabei die
> uC Welt kennen lernen. Da es über die USB laufen soll, dachte ich mir,
> ich nehme mir den AT90USB162 zur Hand, weil ich eine fertige
> Grundschaltung im Netz gefunden habe.
Das hat nur Sinn wenn Dir die volllständige und korrekt funktionierende 
Projekt HW und SW Dokumentation mit allen SW Werkzeugen zur Verfügung 
steht die erlauben den Original Quellcode lauffähig herzustellen sowie 
die HW zu testen. Auch so bedarf es einiger Erfahrung um so etwas 
erfolgreich zum Laufen zu bringen. Wenn Du auf dem Gebiet noch keine 
Erfahrung hast lass es besser bleiben. Ein USB Projekt ist nichts für 
Anfänger. Auch die Beherrschung der SW Werkzeuge bedarf vieler 
Erfahrung. Der geringste Fehler führt hier oft zu 100% Versagen.
>
> Lt. dem Datenblatt darf ich max. 16MHz nehmen.
Dann mußt Du Dich daran halten.
> Aber selbst hier stellt sich die Frage, wann ein 8MHz und wann einen
> 16MHz ist einzusetzen?
Darüber dürfte Dein Quell Code bzw. Die Dokus Aufschluß geben. Wenn der 
uC mit 8 Mhz schnell genug ist und der Quell Code paßt, dann wird es 
auch mit 8 Mhz funktionieren. Der USB Teil(Controller) hat seinen 
eigenen internen Takt und ist vom uC Teil diesbezüglich unabhängig.
>
> Hätte das z.B Einfluss auf die Kommunikation zwischen der HW und dem PC?
Ganz bestimmt. Da mußt Du Dich an die Original Design Randbedingungen 
halten. Wenn das ein Bauprojekt ist, dann halte Dich an diese Angaben. 
Willkürliche Abweichungen führen ohne große Sachkenntnis garantiert zu 
Mißerfolg.
>
> Je höher desto schneller die Übertragung?
Nicht unbedingt. Das gewählte USB Übertragungs Protokoll und die USB HW 
bestimmt wie schnell es geht. Zur Steuerung von Real World IO wie z.B. 
Relais spielt das überhaupt keine Rolle. Für USB muß der USB Engine Takt 
genau eingehalten werden. Intern arbeitet USB oft mit 48Mhz um alle 
Signale konform aufzubereiten.

Mein Rat ist: Solltest Du mit uC bei Null Anfangen, dann würdest Du es 
Dir und allen Forumsmitstreitern leichter machen erst einmal mit Einfach 
anzufangen, oder vielleicht mit Arduino anzufangen und Dich durch die 
zahlreichen Beispiele durcharbeiten um mitzukriegen ob Dir das zusagt 
und ein Gefühl für diese Art Technik bekommst. Außerdem hat Arduino eine 
große User Community und Bibliotheken die schnelles Probieren erlauben 
um sich ein Bild darüber machen zu können. Laß im Augenblick die Finger 
von USB. Das ist ein schlafender Vulkan an Problemen wenn man sich nicht 
auskennt. Sonst würdest Du ja auch nicht hier fragen.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Frank Neumann schrieb:
> Ich habe vor, mir eine I/O Karte zu basteln, ich weiß es gibt fertige
> und günstige im Netz aber der Sinn ist ein selber basteln und dabei die
> uC Welt kennen lernen.
Der erste Schritt dazu ist, das Datenblatt und die AppNotes zu den 
beteiligten Bauteilen zu lesen und zu verstehen. Dort ist dann auch die 
Taktverteilung und die Auswirkungen auf Komponenten und Stromverbrauch 
beschrieben.

> die uC Welt kennen lernen.
Kauf dir ein fertiges EVAL Board und mache daran deine ersten 
Erfahrungen. Wenigstens weißt du dann, dass die Hardware prinzipiell 
funktioniert und der Fehler in deiner Beschaltung oder der Software 
ist. Dann kannst du da auch mal unterschiedliche Quarze einbauen oder 
einen externen Takt von einem Quarzoszillator mit 25MHz einspeisen.

Sonst geht es dir wie dem Kollegen aus dem 
Beitrag "Eagle Schaltplan - Verbesserungsvorschläge": du stößt schon bei den 
simpelsten Fragen an "Probleme".

von Peter D. (peda)


Lesenswert?

Frank Neumann schrieb:
> Aber selbst hier stellt sich die Frage, wann ein 8MHz und wann einen
> 16MHz ist einzusetzen?

Soweit ich das Datenblatt überflogen habe, gehen für USB 8 oder 16MHz.
Eine PLL macht daraus die benötigten 48MHz (*6 bzw. /2*6).

Frank Neumann schrieb:
> Je höher desto schneller die Übertragung?

Nö.
Geschwindigkeit und Pollingrate sind im USB-Standard festgelegt.
Eine Pollingrate von 1ms bedeutet, daß sich nicht schneller als alle 1ms 
die IOs setzen oder lesen lassen. Die maximal mögliche Ausgabefrequenz 
beträgt also 500Hz.

Hast Du denn schon irgendeine Vorstellung, wie PC-seitig die Ansteuerung 
erfolgen soll?

von Stefan F. (Gast)


Lesenswert?

Frank Neumann schrieb:
> Was entscheidet die optimale Größe des Quarz?

Du meinst wohl die Taktfrequenz.

Ich halte es generell für eine gute Idee, die Leistungsgrenzen nur dann 
auszureizen, wenn man dafür einen wichtigen Grund hat. Potentiell ist 
mit weniger Fehlfunktionen zu rechnen, wenn man unter dem Maximum 
bleibt. Ungenutzte Rechenleistung durch unnötig hohe Takfrequenz halte 
ich für Energieverschwendung. Sie ist für nichts gut.

By the way: Vergleiche mal Business Laptops (Arbeitsgeräte) der 
500-1000€ Klasse mit gleich teuren Consumer Laptops von Saturn oder 
Aldi. Du wirst sehen, dass die Business Geräte überwiegend langsamer 
getaktet sind. Unterm Strich kann man mit den Business Geräten aber mehr 
Arbeitsleistung bringen, weil sie zuverlässiger laufen. Man verplempert 
weniger Zeit mit Fehlfunktionen.

von Christoph db1uq K. (christoph_kessler)


Lesenswert?

Die 16 MHz gelten nur für 5V Betrieb. Es gibt im Datenblatt eine Kurve, 
die für 3,3V irgendwo bei max. 8 MHz liegt.

PS. es gab mal eine Werbung für aktive Computerkühler mit Kältemaschine:
"Wenn Pinguine Computer hätten, würden sie schneller laufen. Die 
Computer, nicht die Pinguine".
Höhere Taktfrequenzen bedeuten auch höhere Verlustleistung.

von Stefan F. (Gast)


Lesenswert?

Frank Neumann schrieb:
> Ich habe vor, mir eine I/O Karte zu basteln...
> Je höher desto schneller die Übertragung?

Mein USB I/O Interface (http://stefanfrings.de/net_io/index.html) läuft 
mit 7 MHz effektiv nicht langsamer als mit 20 MHz. Weniger habe ich 
nicht ausprobiert.

Mein Ethernet I/O Interface (http://stefanfrings.de/net_io/index.html) 
läuft mit 20MHz effektiv genau so schnell, als wie mit 32MHz.

In beiden Fällen ist die Schnittstelle zum PC das Nadelöhr, dass die 
Geschwindigkeit dominiert.

Ich würde Dir empfehlen, zuerst mit der höchsten empfohlenen Taktrate 
des µC zu beginnen. Wenn das Programm fertig ist, probierst du aus, wie 
weit du runter gehen kannst.

Bei Controllern mit integriertem USB hast da meist nicht allzu viele 
Wahlmöglichkeiten. Die 1€ STM32 Bluepill Boards 
(http://stefanfrings.de/stm32/stm32f1.html#bluepill) wollen zum Beispiel 
mit 48 oder 72 Mhz getaktet werden.

von Uwe D. (monkye)


Lesenswert?

Das stimmt, wer den MC außerhalb der Spezifikation betreibt hat die 
Verantwortung. Im Garten habe ich mehrere Anwendungen, die mit >30MHz 
Takt gut klarkommen. Es entsteht allerdings auch keine Katastrophe, wenn 
die SOLAR-Lampe (im Kombi mit Funk-/IR-Empfänger) dann mal versagen 
sollte oder der Kombi-Sensor Unfug anzeigt.

Und bevor Fragen kommen: Ich verwende fertige Quarz-Oszillatoren.

Ist halt wie immer im Leben, die Verantwortung hat der der es dann 
macht...

von Purzel H. (hacky)


Lesenswert?

Ich bevorzuge niedere Frequenzen. zB 7.3238 MHz, da passt das UART. 
Niedrige Frequenzen erlauben die CPU mit kleinerer Spannung 
laufenzulassen. Ich bevorzuge zur Zeit 3.3V, hatte aber auch schon 3.0V. 
Dies ist meist durch externe Komponenten gegeben, und ich Pegelwandler 
vermeide.

Bei Stromsparanwendungen wuerde man allenfalls mit 2.7V oder weniger 
laufen lassen, und den Quarz auf 3.84Mhz, 1.9MHz oder tiefer.

Quarze habe ich mal je 100 Stueck mit verschiedenen Frequenzen fuer 
jeweils 20 Euro gekauft und die reichen immer noch.

: Bearbeitet durch User
von Uwe D. (monkye)


Lesenswert?

Ja, kommt darauf an was Du erreichen willst. Zum Stromsparen ist nicht 
nur die hohe Frequenz ein Thema, auch der Oszillator verkonsumiert schon 
viel.
Mir ging es mehr um die Möglichkeit, dass (richtig gut) Übertakten geht.

von omg (Gast)


Lesenswert?

Frank Neumann schrieb:
> Arbeitet die Do Schleife dann schneller?
> oder ist es nur für den Timer vorgesehen?

Guckst du Datenblatt

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.