Hallo, eventuell kann mir bei folgender Frage jemand weiter helfen.... Ich benutze einen ATTINY2313 mit internem 8 MHz Takt bei 5V und Zimmertemperatur (im Gehäuse, also etwas wärmer...sagen wir mal 23 Grad). Der im Werk hinterlegte OSCCAL Wert ist für 8 MHz (gut) aber 3,3 V und (glaube ich) 20 Grad Celsius. Ich möchte mehrere Geräte in Serie bauen bzw. eine allgemeingültige Software verwenden - eine individuelle OSCCAL Ermittlung scheidet also aus. (ich kann keinen Quarz verwenden, Pins sind verbraten). Wie stark ist denn die Streuung der OSCCAL Werte in verschiedenen Chips ?? Oder anders gefragt ist es besser einen (nicht individuellen) OSCCAL Wert in alle 2313 meiner Serie zu brennen, welcher aber bei 5V und 23 Grad ermittelt wurde ? Oder ist die Chipspezifische Streuung zu groß ? Vielen Dank für eure Antworten !!
Die Exemplar Streuuung ist zu gross fuer serielle Kommunikation. Ich verwende einen 32k Quarz zum Eichen bei (jedem) powerup an Timer2. Und die Werte streuen sehr stark. Die Spannungsabhaengigkeit ist marginal (+-1), aber die Temperaturabhaengigkeit ist es nicht(+-3). Neben dem 32k Quarz an timer2 fuer 0.15Euro, benoetigt man ca 60 Zeilen ASM Code fuer die Kalibration. Die Appnote uebertreibt masslos in dieser Hinsicht.
Sorry, ich vergass die Exemplarstreuung, die kann schon mal 20hex fuer eine Frequenz betragen.
Vielen Dank für die schnelle Antwort. zusammengefasst... Die Exemplarstreuung überwiegt die Spannungs- und Temperaturstreuung bei weitem - ein Nachkalibrieren mit einem fixen (Exemplarunabhängigen) Wert ist Unsinn (schade). Ist das richtig so ? Grüße, Bombastix
neue Idee.... wenn ich den individuellen OSCCAL Wert per ISP auslese, kann man dann durch z.B. addition eines Korrektufaktors (der 5V und 23 Grad Celsius verkörpert) einen besseren OSCCAL Wert als den implementierten (ohne Kalibrierung!) ermitteln ? Grüße, Bombastix
Hallo, Du hast nichts über die konkreten Bedingungen geschrieben... Für UART und zeitgenaue Anwendungen geht ohne Quarz normalerweise nichts, zumindest nicht zuverlässig bei wechselnden Umgebungsbedingungen. Kommt also daruf an, wieviel zuläsige Abweichung die konkrete Anwendung verkraftet. Gruß aus Berlin Michael
@bombastix, weshalb nicht bei der Programmierung eine Kalibration vornehmen ? Ob's ein Offset tut weiss ich nicht, da ich einen Quarz zur Kalibration habe. Mach am Besten ein paar Tests.
Hallo Michael, es soll nur genauer sein... Der 2313 soll bei Wegfallen eines externen Taktes diesen selbst generieren - so genau wie möglich (Uhrzeit). Es gibt also keine Grenzbedingungen - je genauer, um so besser. Viele Grüße, Bombastix
Die Temperatur mit einem NTC messen und aufgrund einer Tabelle den OSCCAL korrigieren geht nicht ?
Wenn du eh schon einen externen Takt hast, und nur bei dessen Wegfall genauer bleiben willst: Kontinuierlich OSCCAL anhand des externen Taktes nachkalibrieren, und bei Wegfall den letzten wert beibehalten... Klappt dann sogar, wenn eines der Module grad bei -10° im Tiefkühler ist, wärend das andere grad in der Sauna schwitzt... Blos sollte sich nach dem Wegfall des Taktes die Temperatur nichtmehr stark ändern
Automatische Kalibrierung ist beispielsweise auf Basis eines externen Referenztaktes möglich. Ein Beispiel dazu findet sich im Code vom Butterfly, der den internen Oszillator über den 32KHz Uhrenquarz einstellt. Ist bei dem 2313 aber etwas schwieriger (besser: Mega8, Mega48), weil der keinen separaten 32KHz Oszillator hat. Der Referenztakt müsste also extern erzeugt werden. Ein Oszillator-Fallback bei Ausfall eines Oszillators gibt es bei manchen Controller-Familien, aber nicht bei AVRs.
Hallo Ernst, eine gute Idee....wenn ich noch Platz im Flash hätte.... Rene schrieb da was von 60 Zeilen ASM - grob geschätzt mal 2 - mindestens 120 Byte, so viel Platz habe ich auf keinen Fall (was in C wohl daraus wird?). Aber elegant wäre das schon... Ich will sozusagen am fertigen Objekt durch minimale Änderungen noch etwas "tunen". Trotzdem vielen Dank, schöne Idee - merke ich mir. Bombastix
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.