Forum: Mikrocontroller und Digitale Elektronik zwei unterschiedliche Baudraten für RXD & TXD an Atmega128?


von Niklas R. (niklas)


Lesenswert?

Hallo Spezialisten!

Ich baue gerade eine Hardware, bei der ich u.a. mit RFID einen 
MP3-Player steuern muss. Der RFID Leser sendet Daten mit 9200 Baud und 
hängt an RXD0.
Der MP3-Player erwartet mit 19200 Baud gesendete Daten und hängt 
momentan an TXD0 (könnte aber auch an TXD1 angeschlossen werden).

Als Controller verwende ich einen Atmega128, den ich in Bascom 
programmiere. Die Baudraten der Peripherie kann ich leider beide nicht 
ändern.

Nun die konkrete Frage: Kennt jemand eine Möglichkeit, wie ich innerhalb 
eines Programms mit diesen beiden Geräten auf unterschiedlichen 
Geschwindigkeiten kommunizieren kann?

Vielen Dank schonmal für Eure Hilfe,

Niklas

von Hopser (Gast)


Lesenswert?

Da der ATmega128 zwei UARTs besitzt, sollte das kein Problem sein.

von Karl heinz B. (kbucheg)


Lesenswert?

Mit einer Software-UART kännte man das schon hinkriegen.
In Hardware: Eine Schnittstelle - Eine Baudrate

Häng also deinen RFID an die Serielle 0
und den MP3 Player an die Seriell 1

von Niklas R. (niklas)


Lesenswert?

Vielen Dank für die schnellen Antworten!

Die _Hardware kann ich gut ändern. Nur wie richte ich eine Software UART 
ein? Kann mir da jemand noch konkreter weiterhelfen? Vielleicht sogar 
mit ein paar Zeilen Code? Bin leider absolut kein Programmierspezialist.

Vielen Dank,

Niklas.

von Karl heinz B. (kbucheg)


Lesenswert?

Bascom, was?

Das übliche: in der Hilfe nachschauen.

$BAUD setzt die Baudrate für UART 0
$BAUD1 setzt sie für UART 1

PRINT "test"       sendet den String zur UART 0
PRINT #0, "test"   ebenfalls
PRINT #1, "test"   sendet den String zur UART 1


Zur ersten Zeile in diesem Posting: Ist es wirklich so
schwer in der Hilfe nachzuschauen. Bascom macht einem die
Dinge wirklich einfach, nur lesen muss man noch selber.

von Niklas R. (niklas)


Lesenswert?

Ok, ich schäme mich, trotzdem Danke!

von Michael U. (Gast)


Lesenswert?

Hallo,

wenn nicht gleichzeitig gesendet und empfangen werden muß, sollte 
eigentlich auch nichts dagegen sprechen, zum Senden die Baudrate auf 
19200 umzustellen und wieder zurück auf 9600, wenn er fertig ist mit 
senden.

Gruß aus Berlin
Michael

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.