Hallo zusammen,
weiß jemand welche Toleranz der interne 8MHz Oszillator des ATMEGA328PB
besitzt? Im Datenblatt steht, dass dieser kalibriert sein soll. Der
interne Oszillator des ATMEGA328P ist ja mit +-10% sehr ungenau und für
meine Anwendung zu groß. Etwa 2-3% würde mir allerdings reichen. Habe im
Datenblatt und nach kurzer Internetrecherche dazu nichts gefunden...
Danke schon mal!
Ist doch toll, wenn man ihn ueber einen groesseren Bereich abstimmen
kann.. nicht alle Leute wollen 8.000 MHz, ich hatte einmal den Fall, das
ich ihn auf 7.3728MHz, eine Baudratenfrequenz, haben wollte.
ATMEGA328PB schrieb im Beitrag #6784848:
> Im Datenblatt steht, dass dieser kalibriert sein soll.
Ist er. Für irgendeine Standard-Temperatur und irgendeine
Standard-Betriebsspannung.
Hab vergessen, was genau die jeweiligen Standards sind, das steht aber
GANZ sicher im DB).
> Habe im> Datenblatt und nach kurzer Internetrecherche dazu nichts gefunden...
Dann musst du definiv an deinen Kompetenzen arbeiten, insbesondere
natürlich bezüglich der Lektüre von Datenblättern.
c-hater schrieb:> Dann musst du definiv an deinen Kompetenzen arbeiten, insbesondere> natürlich bezüglich der Lektüre von Datenblättern.
Bei AVR8 ist das so eine Sache. Beim ATmega32 beispielsweise steht in
der Beschreibung zum internen RC-Oszillator etwas von 3%, die auf 1%
trimmbar seien. Und das hat man sich in frühen Jahren so gemerkt.
Beim ATmega328 steht dann unter den "elektrischen Daten" u.a. der Wert
10%, der vermutlich dazu dient, Reklamationen gering zu halten, wenn in
der Fertigung etwas gehakt hat.
Brauchbare Werte sieht man in den Kurven zu den "typischen Daten", wo
dann Vcc und Temperatur als Vorgabe zur eff. Taktfrequenz entnommen
werden können.
Deutlich wird dann, daß z.B. beim ATmega32 die internen 8 MHz bei
typisch 5 V und 25°C erreicht werden. Beim ATmega328 sind es hingegen 3
V. Das hat sich über die Jahre so verschoben.
Was noch schön an den typischen Kurven ist, sind die Schaltschwellen und
Hysteresen der Eingänge, da hier brauchbare Werte gezeigt werden und
nicht die pauschale Aussage 0,3 bzw. 0,7 x Vcc für '0' und '1' Pegel.
Dieser Umstand wurde hier wiederholt von einigen "bibeltreuen" Schnullis
ignoriert, da typische Werte angeblich nur zufällig eingehalten würden.
Das nur nebenbei ;-)
Und dann gabs noch die diversen Kennlinien OSCCAL <=> f. Bei vielen ist
da ein Frequenzsprung bei OSCCAL=128 drin, bei anderen nicht.
Wirklich benutzt habe ich OSCCAL bisher nur wenig. Das einzige was mir
einfällt war eine Anwendung für LIN, und da ist ja auch extra das
SYNCH-Byte genau dafür da. Ansonsten, wenn es aufs genaue timing
ankommt, kommt eben ein Quarz oder Resonator dazu. Ja, nimmt Platz,
schluckt Pins und kostet Geld.
Beim Tiny441 war die Kalibrierung für 8MHz@3,3Vund 25° sehr gut und
zumindest im Bereich 0-85° für UART ausreichend genau. Aber dann kommt
eben noch die Spannungsabhängikeit hinzu.
H.Joachim S. schrieb:> Wirklich benutzt habe ich OSCCAL bisher nur wenig. Das einzige was mir> einfällt war eine Anwendung für LIN,
Für schnelle Anwendungen, die ohne ext. Quarz auskamen, hatte ich beim
ATmega48 0xff hineingeschrieben. Das Teil lief dann mit 17 MHz mehr als
doppelt so schnell und ebenso die ISRs. UART und EEPROM wurden nicht
benötigt, Kommunikation lief über TWI.
H.Joachim S. schrieb:> Beim Tiny441 war die Kalibrierung für 8MHz@3,3Vund 25° sehr gut und> zumindest im Bereich 0-85° für UART ausreichend genau. Aber dann kommt> eben noch die Spannungsabhängikeit hinzu.
Die ist meist das weitaus geringere Problem. Sowieso nur für Anwendungen
relevant, bei denen der AVR direkt aus einem Akku oder einer
Primärzellen-Batterie versorgt wird. Aber auch in diesen Fällen gilt,
dass der Impact der Betriebsspannung vergleichsweise gering ist.
Der eigentliche Knackpunkt ist vielmehr die Temperatur. Selbst in
Wohnumgebungen kann die bei vielen AVRs zum Problem werden. Beim
konkreten AVR des TO allerdings eher nicht, der stammt schon aus der
Generation, in der Atmel hier massiv nachgebessert hat.