Maximale RS232 Baudrate beim XMEGA

Gast #2756728
Lesenswert?

Hallo Jungs,

ich habe einen XMEGA und einen RS232 USB Converter von FTDI. Der RS232 
USB Converter kann maximal 3MBaud übertragen. Benötige tue ich jedoch 
"NUR" 2MBaud.

Ich habe einen Baudcalculator unter diesem Link gefunden:

http://www.avrcalc.elektronik-projekt.de/xmega/baud_rate_calculator

Wenn ich als XMEGA Takt 32MHz wähle und 2Mbps bei der baud rate dann 
erhalte ich die Parameter für die RS232 Konfiguration. Der Taktfehler 
liegt bei 0%.

Kann der XMEGA wirklich 2Mbps oder ist dies nur eine teoretische 
Tabelle? Wo liegt denn das maximale der RS232 Frequenz beim XMEGA

Wozu ist denn der normal/ double speed mode vorhanden? Wenn "normal" 
aktiviere dann erreiche ich keine 2Mbps bei der baud rate. Aktiviere ich 
den "double speed modus" dann erreich ich die 2Mbps bei der baud rate.
Gast #2756748
Lesenswert?

Im Datenblatt habe ich folgendes gefunden:

- Synchronous clock rates up to 1/2 of the device clock frequency
– Asynchronous clock rates up to 1/8 of the device clock frequency

Demnach bei Verwendung eines 32MHz Takts ergibt die 4Mbps oder 16Mbps 
bei er synchronen RS232. Jedoch habe ich die Taktleitung nicht am XMEGA 
angeschlossen :-)
#2756762
Lesenswert?

Wenn es im Datenblatt steht dann sollte es auch funktionieren. Dir 
sollte allerdings bewusst sein, daß du dann nicht mehr viel Zeit 
dazwischen hast um die Daten zu erzeugen und zu verarbeiten.
Du solltest dir die Frage stellen brauche ich wirklich so viele Daten so 
schnell und kann ich das Drumherum ausser dem Senden auch noch 'in Time' 
erledigen.
Gast #2756910
Lesenswert?

Danke für den Hinweis :-)

Es ist doch immer etwas :-)

Kennt jemand einen BAUD RATE CALCULATOR für den FTDI USB Converter?

Ich benutze den FT232R. Dies habe ich im Datenbaltt gefunden:

Baud Rate Generator - The Baud Rate Generator provides a 16x clock input 
to the UART Controller from the 48MHz reference clock. It consists of a 
14 bit pre-scaler and 3 register bits which provide fine tuning of the 
baud rate (used to divide by a number plus a fraction or “sub-integer”). 
This determines the baud rate of the UART, which is programmable from 
183 baud to 3 Mbaud.
The FT232R supports all standard baud rates and non-standard baud rates 
from 183 Baud up to 3 Mbaud. Achievable non-standard baud rates are 
calculated as follows -
Baud Rate = 3000000 / (n + x)
where „n‟ can be any integer between 2 and 16,384 ( = 214 ) and „x’ can 
be a sub-integer of the value 0, 0.125, 0.25, 0.375, 0.5, 0.625, 0.75, 
or 0.875. When n = 1, x = 0, i.e. baud rate divisors with values between 
1 and 2 are not possible.
This gives achievable baud rates in the range 183.1 baud to 3,000,000 
baud. When a non-standard baud rate is required simply pass the required 
baud rate value to the driver as normal, and the FTDI driver will 
calculate the required divisor, and set the baud rate. See FTDI 
application note AN232B-05 on the FTDI website (www.ftdichip.com) for 
more details.
Gast #2758213
Lesenswert?

Divisor = 1 and Divisor = 0 are special cases. A divisor of 0 will give 
3 MBaud, and a divisor
of 1 will give 2 MBaud. Sub-integer divisors between 0 and 2 are not 
allowed

Leider steht nicht wie genau diese 2 MBit sind.
(Firma: TravelRec.) Persönliche Seite #2758234
Lesenswert?

Die XMEGA AU-Serie kann mit 48Mhz getaktet werden. Das ist zwar leicht 
außerhalb der Spezifikation, erlaubt aber die 3MBit. Oder Du taktest mit 
24Mhz, dann gehen auch die 3MBit oder 1.5MBit des FT232R. 3MBit gehen 
mit dem XMEGA aber auch mit seinem fraktionalem Vorteiler und 32Mhz oder 
36Mhz Taktfrequenz, musst Du nur mal gucken, ob der Jitter für ein 
fehlerfreies Signal nicht zu groß ist.
Gast #2758343
Lesenswert?

So viel ich weiß gibt es Probleme wenn ich mehr als 921600 Baud benutze, 
da der Windows Treiber nur bis 921600 Baud geht. Wenn ich schneller 
übertragen möchte dann kann ich den FTDI Chip nicht mehr als Virtuellen 
Com Port benutzen, sondern muss die DLL-Funktionen von FTDI benutzen.

Dies hat dann aber einen riesen Nachteil (zumindestens war das mal vor 2 
Jahren so) Wenn ich dann z.B. 1 Byte an den µC senden möchte, dann muss 
ich immer 128 Bytes senden so das der 128Byte Receiver Buffer auf dem 
FTDI Chip voll ist. Nur dann signalisiert dieser das er Daten besitzt.

Ich werde dies jedoch noch mal gegenprüfen. Vielleicht hat sich dies ja 
inzwischen geändert.

Wie oben geschrieben erzeugt der FTDI Chip bei einem Divisor von 1 2 
MBit als Transferrate. Es wird im AN232B-05 beschrieben, das man die 
ini-Datei anpassen muss und dann wird diese Geschwindigkeit als 
Standardgeschwindigkeit verwendet. Nur leider steht nicht wie genau die 
2MBit sind.

Wenn ich 921600 Baut beim FTDI einstelle erhalte ich eine 
Übertragungsfrequenz von 923,1kHz. Dies entspricht einer Abweichung von 
0,16%. Dies ist mehr als ausreichend gut.
Gast #2758936
Lesenswert?

So ich habe jetzt einfach bei der COM-Port Initialisierung 2Mbps 
eingestellt und mit dem Oszilloskop nachgemessen. Alles funktioniert 
super. Der USB zu RS232 Converter erzeugt 500ns Pulse :-)

Den µC habe ich auch auf 2Mbps eingestellt.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren