-
        

Ergebnis 1 bis 5 von 5

Thema: RS232 + interner RC Oszillator 8Mhz als Takt und OSCCAL

  1. #1
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    17.01.2007
    Beiträge
    134

    RS232 + interner RC Oszillator 8Mhz als Takt und OSCCAL

    Anzeige

    Hallöchen

    Ich brauche beim AVR alle Pins. Daher habe ich auch die XTAL-Pins verwendet.

    Da der interne RC Oszilator nicht sehr temperaturstabil ist, ergeben sich bei Temperaturänderungen Probleme mit der Baudrate der RS232.

    Um das Problem zu lösen möchte ich eine Art "autotune" für das OSCCAL erstellen.

    Ginge ja bei meiner Anwendung ganz einfach :
    Ein PC fragt vom AVR 5*pro Sekunde Werte ab.
    Wenn der PC die Werte die ich sende empfängt sendet er eine Bestätigung zurück.
    Wenn ich diese Bestätigung nicht mehr erhalte erhöhe ich den Wert des OSCAL-Registers um eins , aber maximal bis + 8, dann fange ich mit Werte von -7 wieder von unten an.
    Irgendwann , nach spätestens 2 Sekunden fängt er sich dann wieder bei einem Wert bei dem die Baudrate wieder in er Toleranz ist.
    Bei meiner Anwendung ist es zum Glück egal wenn mal einige Werte nicht richtig übertragen werden !


    Ein kleines Testprogramm läuft nun schon ganz gut.
    Ich sehe am Oszi wenn das Timing rauswandert und nach dem Abgleich des OSCCAL wieder in Zeitfenster reinkommt.


    Nun meine Frage :
    Spricht was gegen diese Lösung ?

    Oder hat jemand eine bessere Idee ?

    Bin für jede Anregung dankbar.

    hmg
    Mandi

  2. #2
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    22.04.2005
    Beiträge
    178
    Im "AVR-Mikrocontroller-Lehrbuch" von Roland Walter (www.rowalt.de) ist eine solche Routine beschrieben. Ich schaue mal zuhause nach, ob ich den Artikel noch finde. Kann 1-2 Tage dauern.

    felack

  3. #3
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    17.01.2007
    Beiträge
    134
    Hallo felack

    Wäre toll wenn Du mir die Infos senden könntest.

    Danke im voraus

    hmg
    Mandi

  4. #4
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    22.04.2005
    Beiträge
    178
    Hallo Mandi,

    ich hab die Info gefunden. Das Basic-Programm steht im RcTerm.txt. Falls Du weitere Infos dazu brauchst bitte eine PN senden. RCTerm.zip musst Du in RcTerm.exe umbenennen (exe.Dateien kann man nicht hochladen).

    felack
    Angehängte Dateien Angehängte Dateien

  5. #5
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    17.01.2007
    Beiträge
    134
    Hallöchen

    und vielen Dank.

    Aber das reicht leider nicht.
    Die Kalibierung erfolgt dann nur für eine Temperatur.

    Und wenn man die Print dann im Sommer verwendet bei 40-50°C
    läuft der RC davon.


    Ich mache das so :
    Der PC sendet eine Anfrage an den uC
    Der uC sendet die Anwort, welches der PC mit ACK bestätigt.
    Dies erfolgt 10 mal pro Sekunden.

    Empfangt der uC das ACK nicht, verändere ich das OSCCAL-Register solange bis ich das ACK wieder empfange. ( natürlich mit Timeout )

    spätestens nach 1 Sekunde hat er sich wieder gefangen.

    Hab das ganze von 0 - 70°C ausprobiert und scheint zu funktionieren.

    Dies geht natürlich nur wenn Daten mit Prüfsumme und Softwarehandshake übertragen werden. Und wenn auch mal Daten verloren gehen können.

    hmg
    Mandi

Berechtigungen

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