www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik FT232 und RS232 Geschwindigkeit.


Autor: Andreas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich habe ein wenig mit dem COM Port meines Rechner herum gespielt. Ich 
schalte per C# nur den RTS Port high low. Ohne irgendwelche Waits oder 
Timer.
Ich denke kürzer geht es nicht und es müßte doch die maximale Frequenz 
dabei heraus kommen.

private void button1_Click(object sender, EventArgs e)
        {
            serialPort1.Open();

            while (true)
            {
              serialPort1.RtsEnable = true;

                serialPort1.RtsEnable = false;
            }

wenn ich nun den eingebauten RS232 Port meines Rechners benutze, 
schaltet RTS etwa mit 10kHz. Benutze ich nun einen FT232 (FTDI) komme 
ich gerade auf 70Hz!! und das mit dem gleich Code auf dem gleichen 
Rechner. Wie kommt das? Kann ich das beschleunigen auf die wenigsten 
10kHz der RS232. Eigentlich brauche ich 20kHz.

Danke
Andreas

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Benutze ich nun einen FT232 (FTDI) komme
>ich gerade auf 70Hz!! Wie kommt das? Kann ich das beschleunigen auf die 
>wenigsten 10kHz der RS232.

Nein, das kriegst du bei USB nicht hin.

Autor: Andreas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Schade, würd mich mal interessieren warum?

Trotzdem, Danke für Deine Antwort.

Gruß
Andreas

Autor: Christian H. (netzwanze) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der Grund ist einfach.
Beim physikalischen RS232-Port kannst du mit einem Portzugriff direkt an 
einem Pin wackeln. Hierzu muss lediglich ein Byte an eine bestimmte 
Adresse geschrieben werden.

Um ein Pin über USB zu setzen muss immer ein komplettes Datenpacket 
verschickt werden. Das dauert halt seine Zeit. Aus genau diesem Grund 
sind einfache Parallelport-ISP-Adapter nicht an einem USB-Port möglich 
(oder nur bedingt einsetzbar).

Autor: Anja (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Andreas schrieb:
> Schade, würd mich mal interessieren warum?

Die Übertragung von Daten findet bei USB blockweise im 1ms-Zeitraster 
statt.
-> die theoretisch maximale Frequenz wenn nur ein USB-Teilnehmer am 
gleichen Controller sitzt wäre 500 Hz.

http://www.ftdichip.com/Support/Documents/AppNotes...

im Bit-Bang Mode des FTDI sollten unter gleichen Voraussetzungen (kein 
weiterer Busteilnehmer optimiertes Zusammenspiel von Betriebssystemtick 
16ms? zu USB-ticks 1ms sowie optimierte Transferbuffergrößen) ca 30kHz 
drin sein. (1 ms * (64-2) Bytes).

http://www.ftdichip.com/Support/Documents/AppNotes...

Gruß Anja

Autor: Andreas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ist ja interessant. Bei mir hängt mittlerweile einiges am USB Port.

Danke für eure Antworten und die Links. Da werd ich noch ein bischen 
lesen.

Gruß
Andreas

Autor: Michael G. (linuxgeek) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Anja schrieb:

> http://www.ftdichip.com/Support/Documents/AppNotes...
>
> im Bit-Bang Mode des FTDI sollten unter gleichen Voraussetzungen (kein
> weiterer Busteilnehmer optimiertes Zusammenspiel von Betriebssystemtick
> 16ms? zu USB-ticks 1ms sowie optimierte Transferbuffergrößen) ca 30kHz
> drin sein. (1 ms * (64-2) Bytes).
>
> 
http://www.ftdichip.com/Support/Documents/AppNotes...
>
> Gruß Anja

Also ich hab jetzt schon etliche Projekte mit diesen Bausteinen 
realisiert (aktuell bin ich auch wieder an einem dran) und muss das 
zumindest anzweifeln. Ein USB-Paket braucht auf meiner Kiste mind. etwa 
80ms (hab es irgendwann mal gemessen) um zu uebertragen werden und zwar 
unter guten Voraussetzungen.

Ausserdem ist es sinnlos, sich auf so etwas verlassen zu wollen, selbst 
wenn es auf der eigenen Kiste funktioniert. Man weiss nie, unter welchen 
Bedingungen der Endbenutzer das Geraet einsetzen will, vielleicht hinter 
zwei Hubs mit ein dutzend anderer Geraete. Man sollte also immer vom 
Schlechtfall ausgehen wenn man was zuverlaessiges machen will.

Greets,
Michael

P.S. Diese ganzen FTDI-Chips sind ne ziemliche Magie, zuverlaessig is 
auch was anderes ;)

Autor: Anja (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Michael G. schrieb:
> Ein USB-Paket braucht auf meiner Kiste mind. etwa
> 80ms (hab es irgendwann mal gemessen) um zu uebertragen werden und zwar
> unter guten Voraussetzungen.

Da machst Du irgendwas falsch das wären ja noch nicht mal 9600 Baud.
Du darfst die Bytes nicht einzeln auf die Reise schicken sondern in 
vielfachen von 64*62 = 3968 Bytes bei korrekt eingestellter 
Transferbuffergröße im D2XX Treiber-Mode.


Siehe auch:

http://www.ftdichip.com/Support/Documents/AppNotes...

http://www.ftdichip.com/Support/Documents/AppNotes...

Gruß Anja

Autor: Michael G. (linuxgeek) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Anja schrieb:
> Michael G. schrieb:
>> Ein USB-Paket braucht auf meiner Kiste mind. etwa
>> 80ms (hab es irgendwann mal gemessen) um zu uebertragen werden und zwar
>> unter guten Voraussetzungen.
>
> Da machst Du irgendwas falsch das wären ja noch nicht mal 9600 Baud.
> Du darfst die Bytes nicht einzeln auf die Reise schicken sondern in
> vielfachen von 64*62 = 3968 Bytes bei korrekt eingestellter
> Transferbuffergröße im D2XX Treiber-Mode.

Haha... Du bist mir ne echte Heldin :P
Das bringt's Dir beim Bitbanging bzw. bei der Flusskontrolle natuerlich 
voll.

Mit meiner letzten Methode hab ich den FT232 sogar schon bei 1MBaud 
zuverlaessig zum Laufen gebracht. Wer ueberbietet mich?

P.S. Den D2XX-Treiber verwende ich nicht.

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.