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

Eine eigene Frage? Dieser Thread ist über 12 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.