16MHZ oder nicht!

OP #1527582
Lesenswert?

Hallo,

ich lerne mit einem ATmega 2560.

Laut Datenblatt von ATmel steht auch gleich auf dem Deckblatt 0-16 MHZ.

Mir wurde aber gesagt es würde keinen Microcontroller mit 16 MHZ geben.

Was ist den nun richtig? Darf ich weiterhin in meinem Code 16 MHZ 
einstellen oder lieber nicht? und noch eine Anfängerfrage, wenn ich die 
Frequenz benötige wird diese im Makefile eingetragen oder über define in 
der .c Datei?

Danke,
Andreas
Gast #1527594
Lesenswert?

Andreas V. schrieb:
> Laut Datenblatt von ATmel steht auch gleich auf dem Deckblatt 0-16 MHZ.
Ja, also halte dich daran.

> Mir wurde aber gesagt es würde keinen Microcontroller mit 16 MHZ geben.
Und zwar weil...?

> und noch eine Anfängerfrage, wenn ich die
> Frequenz benötige wird diese im Makefile eingetragen oder über define in
> der .c Datei?
Besser im Makefile, für den Fall, dass du z.B. die <util/delay.h> noch 
sonstwo benutzt.
#1527608
Lesenswert?

Die AVR's laufen im Auslieferungszustand mit einem internen 
RC-Oszillator.   In diesem Sinne haben die meisten Kontroller eine 
Taktfrequenz von 8MHz.

Mittels der Fuses kann man aber auf externen Quarz oder externen 
Oszillator umschalten, dann kann man dem Kontroller jede gewünschte 
Taktfrequenz geben, nur oberhalb 16MHz ist die Funktion nicht mehr im 
ganzen Spannungsbereich /Temperaturbereich gesichert.
OP #1527610
Lesenswert?

Sven P. schrieb:
>> Laut Datenblatt von ATmel steht auch gleich auf dem Deckblatt 0-16 MHZ.
> Ja, also halte dich daran.

Das habe ich auch vor, wurde wegen der Aussagen hier nur etwas verwirrt, 
sodass ich einfach noch einmal nachfragen wollte.

Sven P. schrieb:
>> Mir wurde aber gesagt es würde keinen Microcontroller mit 16 MHZ geben.
> Und zwar weil...?

Das kann ich Dir auch nicht sagen, aber einige waren doch sehr erstaunt 
darüber

Sven P. schrieb:
> Besser im Makefile, für den Fall, dass du z.B. die <util/delay.h> noch
> sonstwo benutzt.

und wie würde so ein Eintrag im Makefile aussehen?

Danke
#1527615
Lesenswert?

Andreas V. schrieb:
> Mir wurde aber gesagt es würde keinen Microcontroller mit 16 MHZ geben.

Das ist auch richtig, da es 16MHz heißt. ;-)
Aber im Ernst: Wer hat dir den Unsinn erzählt?!? Moderne Mikrocontroller 
gehen bis ein paar hundert MHz. Der Takt wird dabei oft intern 
hochgesetzt, sodaß der externe Quarz kleiner (in MHz) ausfallen kann. 
Die meisten AVR gehen, soweit mir das jetzt bekannt ist, bis 20MHz. 
Allerdings kann man die teilweise stark übertakten.

Gruß,
  SIGINT
OP #1527616
Lesenswert?

Peter R. schrieb:
> Mittels der Fuses kann man aber auf externen Quarz oder externen
> Oszillator umschalten, dann kann man dem Kontroller jede gewünschte
> Taktfrequenz geben, nur oberhalb 16MHz ist die Funktion nicht mehr im
> ganzen Spannungsbereich /Temperaturbereich gesichert.

Das bedeutet ich darf bei meiner define keine 16 MHZ eintragen, sondern 
nur 8?
OP #1527619
Lesenswert?

doc schrieb:
> Hab grade einen Mikrocontroller mit 75 Mhz hier liegen..aber wenn du
> sagst, den gibt es garnicht..hm..bringst du mich in Grübeln... dann bin
> ich wohl auf eine Schwindlerfirma hereingefallen.

Nicht ich habe dies gesagt, die Aussage kommt hier aus dem Forum
Gast #1527629
Lesenswert?

Hi,

lies die Beiträge bitte richtig.... Bei OBERHALB von 16MHz funktioniert 
er eventuell nicht richtig. Das wäre dann ja auch ein Betrieb außerhalb 
der Spezifikation. Solange Du mit Spannung, Temperatur, Frequenz und 
Strom innerhalb der Spezifikationen des Datenblatts bleibst, darfst Du 
auch 16MHz eintragen.
Welche Frequenz man benutzt, ist auch davon abhängig, was der µC machen 
soll. 16MHz sind beispielsweise für ein Lauflicht völliger Unsinn.

Nur Präventiv: Wenn Du eine Frequenz im Makefile einträgst, heißt das 
nicht automatisch, dass der µC auch mit dieser Frequenz läuft. Da musst 
Du dann schon die Fuses richtig einstellen und ggf. einen Quarz 
anschließen.

Und: Wo in diesem Forum steht, es gäbe keine µC mit 16MHz?
Gast #1527630
Lesenswert?

Wenn im Datenblatt 16 MHz bei 4 bis 5V angegeben sind dass läuft das 
Teil auch mit 16 MHz wenn man einen entsprechenden Quarz anschließt. 
Warum denn auch nicht?

Deine "Freunde" verwechseln das bestimmt mit GHz. Ich kenne auch so 
einen Spezi (Kommilitone E-Technik(!)) der eine 800 MB Festplatte in der 
Hand hielt und erst sagte "Wow die ist aber groß" und danach "Wie viel 
GB sind denn 800 MB?".
Das fasst man sich manchmal schon an den Kopf :).
Gast #1527635
Lesenswert?

Wenn es sich um Atmel AVR handelt gibt es im Datenblatt
eine Kapitel:

   Electrical Characteristics

Bei den neueren ist dort unter

  Speed Grades

bei den älteren (die mit Niederspannungstyp V) unter

  Maximum Speed vs. VCC

sind Grafiken mit Taktfrequenz und Spannung.

Bei anderen µC (auch von anderen Herstellern) ist es ähnlich.

Diese Angaben sind so grundsätzlich, dass das Datenblatt hier
wohl selten Fehler hat ;)

avr
OP #1527637
Lesenswert?

Marvin M. schrieb:
> Und: Wo in diesem Forum steht, es gäbe keine µC mit 16MHz?

"Deine Frequenz ist zu hoch eingestellt, so einen AVR gibts nicht!"
ist zum beispiel so eine Antwort.
Aber ich will hier niemanden hochfahren.
Ich möchte nur das wenn ich eine frage habe ich eventuell hier auch die 
Unterstützung finden. Mir soll keiner eine Lösung presentieren die will 
ich allein finden. Nur als Anfänger fehlt halt auch die Erfahrung.
OP #1527654
Lesenswert?

sp1 schrieb:
> In dem anderen Thread hat man dir gesagt dass die Frequenz zu hoch ist
> weil du im define 1,6 GHz und nicht 16 MHz angegeben hast...

Damit sollte es geklärt sein, jetzt hab ich es auch gesehen!

Und warum habe ich dann keine Probleme mit dieser Konfiguration 
bekommen?
Gast #1527657
Lesenswert?

Weil das NICHT die Konfiguration ist..
Das ist nur Angabe für den Compiler. Wenn du da was falsch machst, 
instressiert das niemanden, nichtmal den Compiler. Du wirst höchstens 
irgendwann feststellen, daß bestimmte Sachen viel zu langsam ablaufen...
Gast #1527665
Lesenswert?

Höchst wahrscheinlich weil du keinen externen Quarz/Oszilator an deinen 
µC angeschlossen hast und die Fuses auch nicht auf externe 
Taktversorgung eingestellt hast! Dann kannst du in deinem Makefile auch 
1000GHz eingeben aber der controller läuft weiterhin mit seiner internen 
Taktversorgung, meist 1MHz.
#1528277
Lesenswert?

>Das bedeutet ich darf bei meiner define keine 16 MHZ eintragen, sondern
>nur 8?

In deine define solltest du die Frequenz eingeben, die du verwendest.

Wenn du einen 16 MHz Quarz am Controller eingebaut hast, dann gibst
du das in der define an.
Wenn du einen 14,745600 MHz Quarz einsetzt, dann gibst du diesen Wert
in deiner define an.

Mit dem Wert in der define kannst du nicht die Taktfrequenz für den
Controller ändern, sondern du teilst dem Assembler oder Compiler mit
diesem Wert nur mit, wie hoch die Taktfrequenz ist, damit diese bei
Berechnungen in der richtigen Größe berücksichtigt wird.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren