www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik UART Übertragungsgeschwindigkeit einstellen


Autor: Zerberus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen, ich möchte gerne bei meinem AT90CAN128 die UART 
Übertragungsgeschwindigkeit des UART1 auf 19,2k einstellen. Als Clock 
verwende ich einen externen 8Mhz Quarz.
So wie ich das Datenblatt verstehe muss ich folgendes eingeben,

UBRR1L  = 25;    // 25 ( dezimal ) ergibt 19,2k bei 8Mhz Clocktakt

Sehe ich das richig? Kommen nämlich nur Hyroglyfen an oder bin ich zu 
doof um die Tabelle im Datenblatt zu kapieren..... :-(

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Zerberus wrote:
> Hallo zusammen, ich möchte gerne bei meinem AT90CAN128 die UART
> Übertragungsgeschwindigkeit des UART1 auf 19,2k einstellen. Als Clock
> verwende ich einen externen 8Mhz Quarz.
> So wie ich das Datenblatt verstehe muss ich folgendes eingeben,
>
> UBRR1L  = 25;    // 25 ( dezimal ) ergibt 19,2k bei 8Mhz Clocktakt
>
> Sehe ich das richig? Kommen nämlich nur Hyroglyfen an oder bin ich zu
> doof um die Tabelle im Datenblatt zu kapieren..... :-(

die einfachste Variante ist es, nicht in der Tabelle nachzusehen,
sondern den Compiler die notwendigen Berechnungen anstellen zu
lassen.

Sieh dir hier mal das Makro UBRR_VAL an
http://www.mikrocontroller.net/articles/AVR-GCC-Tu...


PS: Der heäufigste Fehler, wenn eine UART nicht funktioniert
ist es, wenn dein µC nicht auf der Taktfrequenz läuft, die du
angibst. D.h. zb. du gibst zwar 8Mhz im Programm an und hast
auch einen Quarz dranhängen. Allerdings hast du vergessen, die
Fuses umzustellen und daher arbeitet der µC immer noch auf
dem internen RC-Oszillator auf ca. 1Mhz

Autor: Zerberus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ok Karl Heinz,

klar da hast Du schon recht, aber die Fuses passen, und der Interne 
Prescaler ist auch ausgeschaltet, der teilt nämlich sonst standartmäßig 
immer schon durch 8.
Danke jedenfalls für deine Tips.
Aber sonst müsste die 25 schon passen oder??
Dann liegt der Fehler wo anders :-(

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.