User manual

322Bibliotheken
© 2013 Conrad Electronic
5.20 RS232
Wenn man die "gepollten" seriellen Routinen benutzt, besteht, insbesondere bei hohen Baudra-
ten, die Möglichkeit, das Zeichen nicht empfangen werden. Um dies zu verhindern bitte Serial_I-
nit_IRQ() anstelle von Serial_Init() benutzen.
Mega
Die serielle Schnittstelle kann mit Geschwindigkeiten bis zu 230.4kbaud betrieben werden. Bei den
Funktionen für die serielle Schnittstelle gibt der erste Parameter die Portnummer an (0 oder 1). Beim
Mega32 steht nur eine serielle Schnittstelle zur Verfügung (0), für den Mega128 zwei (0, 1).
AVR32Bit
Die C-Control Pro AVR32Bit unterstützt 3 serielle Schnittstellen mit Geschwindigkeiten von bis zu
460.8kbaud. Die seriellen Schnittstellen sind von 0 bis 2 durchnummeriert. Diese Nummern sind ab-
weichend von dem wie Atmel die Schnittstellen im Datenblatt benennt:
C-Control AVR32Bit
Atmel AVR32
0
USART0
1
USART3
2
USART4
5.20.1 Divider (Mega)
Die Funktionen Serial_Init() und Serial_Init_IRQ bekommen als Baudratenparameter einen Teiler (di-
vider) der den Baudratentakt aus dem Prozessortakt ableitet. Der Prozessortakt beträgt 14,7456
MHz bei Mega32, Mega128 und 16 MHz bei dem Mega128 CAN.
Laut dem Atmel Prozessor Handbuch wird folgende Formel angewendet um einen divider für eine
Baudrate zu ermitteln:
divider = (Prozessortakt / Baudrate / 16 ) -1
Beispiel: 15 = (14745600 / 57600 / 16 ) -1
Es ist schwieriger aus dem 16 MHz Takt des Mega128 CAN die Standard Baudraten abzulei-
ten. Daher sind die divider Tabellen der Prozessoren leicht unterschiedlich.
DoubleClock Modus
Wenn man das High-Bit setzt, wird der DoubleClock Modus eingeschaltet. Man muss dann denn
doppelten Wert als divider eintragen. Für 57600 Baud kann man z.B. statt 0f Hex (dezimal 15) auch
801e Hex (= 8000 Hex + 2 * 15) benutzen. Für MIDI (31250 Baud) bekäme man einen divider =
(14745600 / 31250 / 16 ) -1 = 28,49 . Da man nur ganzzahlige Werte übergeben kann, bekommt
man im DoubleClock Modus einen besseren Wert: 8039 Hex (= 8000 Hex + 2 * 28,5).