Forum: Mikrocontroller und Digitale Elektronik Baud-Rate umschalten


von Coach (Gast)


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.

von Ronny (Gast)


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 ;)

von Coach (Gast)


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?

von Rahul (Gast)


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...)

von Ronny (Gast)


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.

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
Noch kein Account? Hier anmelden.