Atmega mit 3V ?

OP #3712738
Lesenswert?

Ich habe mich schon ein wenig informiert und möchte meine laufende 
Schaltung Atmega328p mit 3V/5V i2c Signalkonverter und 16Mhz Quarz 
komplett auf 3V umstellen. Dafür habe ich mir schon passend 12MHz Quarze 
besorgt. Ich frage mich nun ob ich da jetzt Fuses setzen muss oder die 
umstellung von F_CPU im Quelltext ausreicht. Gibts sonst noch was ?
Gast #3712740
Lesenswert?

Natürlich muss der Takt über die Fuses eingestellt werden.

F_CPU ist nur ein Makro für dich zum berechnen von Takten/Teilern/Ticks.

Außerdem solltest du die Brownout-Detection runter setzen...
Gast #3712762
Lesenswert?

>Das ist nur für irgendwelche Berechnungen die Du im Code machst,
>interessiert aber den Controller herzlich wenig bis gar nicht.

Nicht ganz, delay geht mit falschen Werten zwar auch, aber falsch. Da 
man es eigentlich nicht benutzen sollte, hast Du wiederum Recht.
Gast #3712771
Lesenswert?

Amateur schrieb:

>>Das ist nur für irgendwelche Berechnungen die Du im Code machst,
>>interessiert aber den Controller herzlich wenig bis gar nicht.
>
> Nicht ganz, delay geht mit falschen Werten zwar auch, aber falsch. Da
> man es eigentlich nicht benutzen sollte, hast Du wiederum Recht.

Nö, du hast es auch nicht gerafft.

Die Delays gehen nämlich genau *deshalb* falsch, weil sich der µC 
nicht die Bohne für die Deklaration irgendeines Symbols in irgendeiner 
Programmiersprache schert.

Der µC arbeitet schlicht den (in diesem Fall bezüglich seines Zweckes 
fehlerhaften) Code ab, den ihm der Compiler vorsetzt.

Wüßte der µC irgendwas von F_CPU, würde er seine Takt dem Code anpassen 
können und die Delays würden stimmen.
Gast #3712778
Lesenswert?

c-hater schrieb:
> Die Delays gehen nämlich genau deshalb falsch, weil sich der µC
> nicht die Bohne für die Deklaration irgendeines Symbols in irgendeiner
> Programmiersprache schert.

Von welcher Seite man es auch betrachtet, entweder passt die Deklaration 
nicht zum Takt des Controllers -oder- der Takt passt nicht zur 
Deklaration, das Ergebnis ist doch das Gleiche. Die Deklaration muß mit 
dem Takt übereinstimmen, fertig.
OP #3712803
Lesenswert?

okay danke schonmal.. also habe halt in einer tabelle gesehen das 3,3V 
bis zu 13,3MHz laufen sollte, über dieser Frequenz müsste Vcc erhöht 
werden und 12Mhz im grünen bereich liegen.. solang der i2c Bus dem 
gleich läuft sehe ich da kein problem.

Habe mitlerweile eine Anleitung für 12MHz samt neuem Serial Upload 
Bootloader gefunden der genau in meine Vorstellung passt.

Trotzdem wäre es Sinnvoll diese Teilung zu verstehen.

# Low power xtal (12MHz) 16KCK/14CK+65ms
atmega328_12: LFUSE = FF

das ist jetzt Logo:
# 2.7V brownout //
atmega328_12: EFUSE = 05

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