-         

Ergebnis 1 bis 6 von 6

Thema: Genauigkeit des internen Quarz

  1. #1
    Benutzer Stammmitglied
    Registriert seit
    19.06.2004
    Alter
    44
    Beiträge
    66

    Genauigkeit des internen Quarz

    Anzeige

    Nur um sicher zu gehen: interpretiere ich die Doku (siehe Bild) richtig dass der interne Quarz eine Abweichung von -10% bis +10% hat?

    D.h. der Chip arbeitet aufgrund von Temperatur und Spannung zwischen 7,2Mhz und 8,8Mhz?
    Miniaturansichten angehängter Grafiken Miniaturansichten angehängter Grafiken attiny_quarz_toleranz.jpg  

  2. #2
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    06.08.2005
    Ort
    Berlin
    Alter
    52
    Beiträge
    239
    Hallo Chris,

    das ist kein Quarz. Im Chip werkelt ein normaler RC-Oczillator, dessen Frequenz auf Grund von Bauteiltoleranzen halt irgendwo zw. den angegebenen Werten liegen kann (8MHz +-10%). Den kannst Du aber noch selbst kalibieren um genauere Werte zu bekommen.

    Gruß Dirk

  3. #3
    Benutzer Stammmitglied
    Registriert seit
    19.06.2004
    Alter
    44
    Beiträge
    66
    Danke Dirk.

    Ich benötige eine "genaue" Kalibrierung lediglich für eine serielle Kommunikation.

    Wenn das Programm Einfluss auf den RC Quarz haben kann, müsste eine Kalibrierung wie folgt möglich sein:

    Der PC sendet über seine serielle Schnittstelle die Zahl 10101010b (170d) an einen PIN des Chips.

    Mit Start und Stopbit ergibt sich also an einem Eingangspin des Chips die Folge 0101010101 die sich ständig wiederholt.

    Das Programm im Chip versucht nun den RC Quarz so zu steuern bis die Abstände zwischen 01 und 10 alle gleich sind.

    Bei 57600 Baud sind das exakt 52us. D.h. die Empfangsroutine im Chip zählt die Anzahl der Prozessorzyklen die ausgeführt werden können solange das Eingangssignal (die 0en und 1en) sich nicht ändert.

    Aufgrund dieser Informationen kalibriert sich der Chip selbst auf eine möglichst genaue serielle Kommunikation, beispielsweise für 57600Baud,
    Indem später für das senden und Empfangen von Daten versucht wird die Anzahl der "Wartezyklen" entsprechend auszuführen.

    Doch was wenn sich nach der Kalibrierung die Temperatur ändert? Ich kann der Doku leider nichts über Temperaturschwankungen des RC Gliedes entdecken.

  4. #4
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    25.07.2006
    Ort
    Berlin
    Beiträge
    439
    Hallo Chris266,

    der sicherste Weg ist ein externer Quarz, der ist temperaturstabil!

    Gruß
    Detlef

  5. #5
    Neuer Benutzer Öfters hier
    Registriert seit
    20.06.2006
    Beiträge
    14
    Hallo,

    ein Abgleich des internen RC-Oszillator ist meines Erachtens nicht vom Anwenderprogramm möglich. Die entsprechende Fuses für den RC-Oszillator werden über den Programmer gesetzt.
    Die serielle Kommunikation wird bei einem Error von 10% auch nicht mehr sicher funktionieren. Daher empfehle ich einen externen Quarz einzusetzen (Kostet auch nicht die Welt).

    Rasuth

  6. #6
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    13.09.2005
    Ort
    am Bodensee
    Beiträge
    217
    moin,

    also

    Der RC-Oszillator wird NUR vom Anwenderprogramm Abgeglichen ..

    (leider) man kommt nur Extern an die von Atmel Eingetragenen werte z.b. über das AVR Studio.. unter "Advanced" muss dann bei "Calibrate 4 Frequenz" die Frequenz ausgewählt werden .. dann nen "Read Cal. Byte"..
    dann ins E² oder ins Flash damit an ne stelle wo man will ..

    und im Anwenderprogramm bessergesagt in der Initialisierung dann mittels OSCCAL = deinortwoshaltwar; <-- Flash oder E² .. und es is Abgeglichen ..

    oder ihr merkt euch die zahl die das AVR Studio euch gegeben hat und bindet diese dann in das Programm direkt mit ein...

    dann z.b.

    OSCCAL = 0xA3 ;

    aber ACHTUNG !!! Die werte sind vom Werk einprogrammiert (also von Atmel selbst) diese Werte können (nicht müssen) Unterschiedlich sein .. es kann auch sein das es bei manchen Bausteinen garnicht benötigt wird. ..

    Ach ja .. und wenn man sich nen Programmschreibt wie du oben schon Sagtest das die Zeitenausmisst .. klappt das natürlich auch nur ist dies wesentlich aufwendiger ...

    wenn echt irgendwie 30ppm genau sein willst .. nutze besser nen Externen Quarz..

    ich hoff ich konn bisschen weiterhelfen.

    mfg

    bluelight

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •