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
Naja. Was ist verbindlich, das was im Datenblatt steht, oder was irgendjemand erzaehlt ?
Gast
#1527594
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.
Andreas V. schrieb: > Laut Datenblatt von ATmel steht auch gleich auf dem Deckblatt 0-16 MHZ. richtig > > Mir wurde aber gesagt es würde keinen Microcontroller mit 16 MHZ geben. wer ? Atmel ? oder gibts mittlerweile "Elektronik-Bild" ?
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.
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
Gast
#1527614
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.
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
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?
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
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
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
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
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.
Gast
#1527647
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...
Gast
#1527650
16e6 ist nicht so fehleranfällig wie 16000000. Das ist schnell mal ne 0 zu viel dabei... oder auch zwei ;)
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
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...
Vielen Dank für die vielen und sehr aufschlussreichen Antworten. Allen noch einen schönen abend. Gruß, Andreas
Gast
#1527665
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.
Vielen Dank!
Gast
#1528246
> 16e6 ist nicht so fehleranfällig wie 16000000. Das ist schnell mal ne 0 > zu viel dabei... oder auch zwei ;) Alternativ geht auch (16 1000 1000). Das ist auch noch gut erkennbar.
Gast
#1528249
Ok, und jetzt nochmal, ohne Forums-Zeichenersetzungs-Gedöns:
1 | |
>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.