Hallo alle,
da ich gerade bei Baudratenberechnungen bin und nicht alles per Hand
machen wollte hab ich einfach mal ne Tabellenkalkulation beauftragt
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
da ich gerade bei Baudratenberechnungen bin und nicht alles per Hand
machen wollte hab ich einfach mal ne Tabellenkalkulation beauftragt
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