ATmega - UBBR Baudratenberechnung

dino03

Aktives Mitglied
27. Okt. 2008
6.760
20
38
Sprachen
  1. BascomAVR
  2. Assembler
Hallo alle,

da ich gerade bei Baudratenberechnungen bin und nicht alles per Hand
machen wollte hab ich einfach mal ne Tabellenkalkulation beauftragt :D
Also benutzt habe ich "OpenOffice 2.4 Calc".
Da ich die .ods nicht hochladen kann ist das Teil gezippt.

Hier die Datei ... Anhang anzeigen ATmega-UBBR.zip

Die Berechnung geht folgendermaßen per Hand ...

fosc = Quarzfrequenz in Hz
Baud = Baudrate in Bit/sec

--- Bei U2X=0 ---
Baud = fosc / 16*(UBBR+1)
UBBR = (fosc / 16*Baud)-1

--- Bei U2X=1 ---
Baud = fosc / 8*(UBBR+1)
UBBR = (fosc / 8*Baud)-1

Die Fehlerberechnung sieht folgendermaßen aus ...
Error[%] = ( (BaudIst/BaudSoll)-1)*100%

Das UBBR muß dann noch in UBBRH und UBBRL zerlegt werden.
In UBBRH sind die oberen 4 Bits (also 0 bis maximal 15 als Wert möglich)
In UBBRL sind die unteren 8 Bits (also 0 bis 255 als Wert)

Aufpassen, das bei manchen Prozessoren UBBRH die selbe IO-Adresse wie
das UCSRC-Register hat. Wenn man das Bit7 auf High setzt, dann spricht
man mit dem Rest der Bits das UCSRC-Register an. Wenn man dagegen
das Bit7 auf Low läßt, dann landen die restlichen Bit im UBRRH-Register.

Die Berechnungen der Werte findet man in den Datenblättern auch unter
"Examples of Baud Rate Settings" und
"Internal Clock Generation - The Baud Rate Generator"

Ich habe jetzt nur die asynchrone Übertragung im Normal- und Double-Mode
berechnet. Also für eine RS232-Schnittstelle.

Denn wünsch ich mal allen damit viel Spaß beim Daten schieben ...

Gruß
Dino
 
Hi Dino,

danke für die Tabelle und den Hinweis.

Aufpassen, das bei manchen Prozessoren UBBRH die selbe IO-Adresse wie
das UCSRC-Register hat. Wenn man das Bit7 auf High setzt, dann spricht
man mit dem Rest der Bits das UCSRC-Register an. Wenn man dagegen
das Bit7 auf Low läßt, dann landen die restlichen Bit im UBRRH-Register.
.ods geht nicht? Hast Du Dirk schon befragt?


Grüsse,

Michael
 
Hallo Dino,

ich hatte mal zum Thema UBBR-Berechnung ein kleines Tool programmiert.

AVR-USART-Calculator

Grüße,
Dirk
 
Hallo Dirk,

ich hab mir dein Tool mal angesehen. Sieht ganz gut aus (kann man wohl
gebrauchen) :D :D

Ein paar Verbesserungsvorschläge:
Das Fenster könnte allerdings ein paar Pixel breiter sein (beim letzten Error
fehlt schon ein bischen was von den Werten) und wenn es die UBBR noch
in High und Low teilen würde, dann wär das Ding perfekt.

Vor allem startet es doch ne Ecke schneller als ne Office-Anwendung :rolleyes:

Gruß
Dino
 
Hallo Dino,
Das Fenster könnte allerdings ein paar Pixel breiter sein (beim letzten Error
fehlt schon ein bischen was von den Werten) und wenn es die UBBR noch
in High und Low teilen würde, dann wär das Ding perfekt.
:eek: muss ich mir mal ansehen, ist mir nicht aufgefallen. :pcguru: Ich werde es dann mal am Wochenende verbessern.


Tschüssi,
Dirk :ciao:
 

Über uns

  • Makerconnect ist ein Forum, welches wir ausschließlich für einen Gedankenaustausch und als Diskussionsplattform für Interessierte bereitstellen, welche sich privat, durch das Studium oder beruflich mit Mikrocontroller- und Kleinstrechnersystemen beschäftigen wollen oder müssen ;-)
  • Dirk
  • Du bist noch kein Mitglied in unserer freundlichen Community? Werde Teil von uns und registriere dich in unserem Forum.
  •  Registriere dich

User Menu

 Kaffeezeit

  • Wir arbeiten hart daran sicherzustellen, dass unser Forum permanent online und schnell erreichbar ist, unsere Forensoftware auf dem aktuellsten Stand ist und der Server regelmäßig gewartet wird. Auch die Themen Datensicherheit und Datenschutz sind uns wichtig und hier sind wir auch ständig aktiv. Alles in allem, sorgen wir uns darum, dass alles Drumherum stimmt :-)

    Dir gefällt das Forum und unsere Arbeit und du möchtest uns unterstützen? Unterstütze uns durch deine Premium-Mitgliedschaft!
    Wir freuen uns auch über eine Spende für unsere Kaffeekasse :-)
    Vielen Dank! :ciao:


     Spende uns! (Paypal)