www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Baud-Rate umschalten


Autor: Coach (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Tach zusammen!

Ich arbeite mit einem ATmega88 und habe ein Problem beim Umschalten der
Baudrate. Ich möchte Daten mit einer Baudrate von 62 empfangen, in ein
Feld schreiben und mit einer Baudrate von 2400 an einen PC
weiterleiten.
Die Daten stehen auch richtig in dem Feld drin, nur zeigt mir ein
Terminalprogramm auf dem PC immer mehr Daten als ich gesendet habe.
Muss ich beim Umschalten der Baudrate im Programm irgendwas beachten?
Ich setze im Moment einfach vor meiner Sende-Routine die Baudrate hoch
und danach wieder runter. Kann man das so einfach machen?

Gruß, Coach.

Autor: Ronny (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Erstmal:

Warum empfängst du mit 62Bit/s?Zwingt dir das eine ander Hardware
auf?Is nich nur extrem langsam sonder auch unüblich.

2. Was für einen Quarz hast du dran,wie sieht dein Baudraten-Teiler
aus?

3. Wartest du,bis fertig empfangen/gesendet wurde,bevor du
umschaltest?

und zu guterletzt: Is alles richtig verschaltet?

Code&Schaltplan wär z.B prima um die Raterei zu beenden ;)

Autor: Coach (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich muss so langsam übertragen weil mein Übertragungsmedium ziemlich
träge ist. Ich würde gerne noch langsamer, aber 62 ist das niedrigste
was bei 4 MHz geht (UBRR = 4031). Und langsamer kann ich den Controller
nicht takten, weil sonst nicht mehr alle Interrupts durchkommen.
Beim Empfang schreibe ich die Daten in ein Feld bis ein LineFeed
erkannt wird. Dann schalte ich um und versende das Feld in einer
Schleife. Danach schalte ich wieder um.
Schaltung müsste passen. Wenn ich das Medium überbrücke und direkt mit
einer Baudrate sende funktioniert alles. Es liegt also am Umschalten.
Kann es sein, dass ich dabei irgendeine Reihenfolge einhalten muss?
Vielleicht erst den UART disablen und danach wieder enablen oder so?

Autor: Rahul (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Vielleicht erst den UART disablen und danach wieder enablen oder so?
Ich würde zuerst die RXC etc Flags löschen, dann die Baudrate ändern
und dann die Baudrate ändern.

Was ist das denn für ein Medium? Wasser?
Hast du an Reflexionen gedacht? (Deswegen wohl die wahnsinnge
Baudrate...)

Autor: Ronny (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Alternative: Software-UART über einen Timerkanal.Dann liesse sich auch
weniger als 62Bit/s machen.

Startbit,Stopbit,Parität,paar Datenbits...

Und der hardware-UART bleibt für die PC-Kommunikation frei.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.