www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Einstellung der Baudrate für UART


Autor: gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
ich versuche die kommunikation zwischen den Mikrocontroller und dem PC 
zu esrtellen. Ich arbeite mit dem Mikrocontroller at90can128. Ich 
arbeite mit einem clock-Frequenz von 10 MHz. Ich möchte die Daten  mit 
einer Geschwindigkeit von 115200 bps übertragen.Im Datenbaltt(seite 212) 
steht  folgende werte Fclock=10 MHz, Baud=115200 bps, UBBR=10, u2x=1 
error= -1.5%.

Das Problem:Wenn ich diese Einstellungen nehme,ist die Kommunikation 
zwischen dem Mikrocontroller und dem PC erfolgreich, wenn die Baudrate 
der PC 57600 bps ist. Aber ich möchte gern mit 115200 bps übertragen.
Im datenblatt steht: u2x=1 wird die Baud halbieren.

Danke

Autor: Z8 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du hast deine Frage selbst beantwortet!  (u2x=?) Z8 :)

Autor: gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hallo,
es bedeutet dass, ich eigentlich mit 115200 bps übertrage?

Autor: Justus Skorps (jussa)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
gast schrieb:

> error= -1.5%.

du schreibst doch selbst, dass der Fehler zu groß ist...der aollte max. 
1% sein...

Autor: Z8 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hab mal in DB geschaut:

UBBR=10, u2x=1

ist eigendlich Ok.

Du hast nicht zufällig mit UMSELn=1 auf asynchrone Datenübertagung
geschalten?

Autor: Z8 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
edit :

synchrone Datenübertagung

>The transfer rate can be doubled by setting the U2Xn bit in UCSRnA. Setting >this 
bit only has effect for the asynchronous operation

Autor: gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hallo Z8,
es geht um eine asynchrone Kommunikation.
/* set frame format: i wil set it now as 8 bits, no parity 1 stop bit, 
asynchron*/

   UCSR0C = (0<<UMSEL0)|(0<<UPM0)|(0<<USBS0)|(3<<UCSZ0) |(1<<U2X0);

Autor: Z8 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Aufbau UCSR0C:

UMSEL0 UPM01 UPM00 USBS0 UCSZ01 UCSZ00 UCPOL0
  6      5     4     3     2       1      0

mit (1<<U2X0) bist Du im falschem Register! Z8

Autor: Z8 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
... das Bit sitzt im UCSR0A Reg.

Autor: gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hallo Z8,

ich danke Dir, ich probiere jetzt.

Autor: Z8 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
gehts jetzt?

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.