Forum: Mikrocontroller und Digitale Elektronik Prolific vs. FTDI


von Thomas Winkel (Gast)


Lesenswert?

Hallo Zusammen,

Ich habe mir für mein Notebook ein USB-RS232 Adapter gekauft. Dieser
enthält genau wie alle anderen, die ich bis jetzt ausprobiert habe
einen Prolific Chip. Bei fast allen Anwendungen funktioniert das auch
wunderbar, nur halt nicht bei der für die ich das Teil eigentlich
gekauft habe (mit einer reellen seriellen Schnittstelle funktionierts).
Weiß jemand woran das liegen könnte? Ist das ein generelles "Virtueller
COM Port" Problem, oder kann ich da mit einem FTDI Chip mehr Glück
haben?

Gruß,
Thomas

von Rufus T. Firefly (Gast)


Lesenswert?

Das ist abhängig davon, wie die entsprechende Anwendung mit der
Schnittstelle umgeht und was für eine Art Protokoll verwendet wird.

FTDI hat wohl nicht umsonst den Ruf, bessere und sauberere Treiber zu
liefern als ausgerechnet Prolific, aber ohne Deine spezifische
Anwendung zu kennen, ist eine Aussage, ob's mit FTDI besser
funktioniert, nicht möglich.

Was ist das für eine Anwendung? Ist das ein Windows-Programm oder sogar
noch ein DOS-Programm?

von Thomas Winkel (Gast)


Lesenswert?

Hallo,
ich arbeite mit Matlab 7 und dem Phytec phyCORE-MPC565 Entwicklungskit,
ist also eine WIN32 Anwendung, hätte nicht gedacht, dass das wichtig
ist. Mit Protokollfragen kenn ich mich leider gar nicht aus, ich will
damit einfach nur meine Programme übertragen. Gibt es denn vertige FTDI
Adapter oder muss ich mir sowas selber basteln?
Dem zuständigen Mathworks Entwickler ist das Problem übrigens bekannt,
nur weiss er leider auch keine Lösung. Meine Hoffnung ist halt, dass
FTDI es besser macht.
Danke,
Thomas

von Peter Dannegger (Gast)


Lesenswert?

Das Problem ist USB selber, das arbeitet im Polling-Mode und hat dadurch
immer eine große Latenzzeit.

Wenn die RS-232 Anwendung ein zu kleines Timeout hat, kann sie denken,
die Verbindung ist gestört.
Bzw. wenn die Anwendung immer nur einzelne Bytes sendet, bricht die
Transferrate dramatisch ein.

Eventuell kann es helfen, die Latenzzeit mittels entsprechender Tools
geringer einzustellen.


Peter

von Thomas W. (Gast)


Lesenswert?

so, nach fast einem Jahr habe ich es nun endlich mal geschafft mir den
FTDI-Adapter zu basteln. Die Treiber bieten auch eine Option die
Latenzzeit herabzusetzen, und mit 4ms statt der standartmäßigen 16ms
klappt es dann auch (danke Peter).
Jetzt würde mich noch interessieren, ob ich mir damit irgendwelche
Nachteile einfange und ob jemand einen sauberen Weg kennt diese
Latenzzeit auch für andere Adapter (Prolific) herabzusetzen, die diese
Option nicht in den Treibereinstellungen haben. Peter sprach ja von
"entsprechenden Tools".
Verstehe ich das richtig, dass USB zwar deutlich schneller als RS232
ist, aber dafür auch langsamer (Latenz) reagiert?

Gruß, Thomas

von Robert (Gast)


Lesenswert?

Hallo Thomas,

mit diesem Thema 'Latenzzeit' muss ich mich gerade rumärgern. Die
Aktuellen Treiber akzeptieren zwar Einstellungen runter bis zu 1 mS,
aber nachdem ich ein kleines Testprogramm geschrieben habe, ist klar es
tut nicht. Man schafft immer nur maximal 64 Zeichen pro Sekunde im
'Einzelzeichen Echo' Betrieb. Mit den älternen Treibern (Build 2154)
waren das mal 100 Zeichen.

Im Moment korrespondiere ich mit dem FTDI Support, da ich für einen
Kunden eine Anwendung umzusetzen habe, die durch diese Eigenschaft bis
zur Unbrauchbarkeit ausgebremst wird. Leider kommt da bisher noch nix
Brauchbares bei raus.

Die Frage, um die es eigentlich geht ist folgende:
Warum nicht ein empfangenes Byte einfach dann über USB weiter zu
senden, wenn der nächste USB timeslot ansteht. Dann dürfte es
eigentlich für den echo Betrieb maximal 2mS dauern bis ein einzelnes
Byte ankommt.

Es gibt nunmal einige Anwendungen die diesen Modus fahren, Bootloader
für Controller, Telefonanlagen etc. Mit dieser 'genialen Eigenschaft,
die sicher auch nichst mit Windows zu tun hat, schafft man dann in
diesem Scenario unabhängig von der Baudrate 64 Zeichen/sek. Das
entspräche 640 Baud.

Tja falls keiner eine Idee hat, wie das Verhalten geändert werden kann,
wird das neu entwickelte Interface wohl nie eingesetzt werden. Denn was
bisher über einen COM Port 15Sec dauerte, kommt jetzt auf 10Min.

Robert

von Wolfram (Gast)


Lesenswert?

Warum komme ich nur wenn ich das durchrechne mit deinen 64 Zeichen pro
Sekunde genau auf die 16ms Latenzzeit?
Vielleicht solltest du dein Protokoll mal überdenken. Wenn du in
Blöcken senden würdest statt jedes Byte einzeln steigt die Datenrate.

von Robert (Gast)


Lesenswert?

Wolfram,

das Protokoll ist eine Kundenvorgabe. Das Ganze zu ändern ist der Kunde
leider nicht bereit.

Robert

von Wolfram (Gast)


Lesenswert?

Kontrolliere nochmal genau ob da nicht doch 16ms eingestellt sind.
Ansonsten gibt es noch die CP21xx Chips die können noch geringere
Latenzzeiten.

>das Protokoll ist eine Kundenvorgabe. Das Ganze zu ändern ist der
Kunde
>leider nicht bereit.
In anbetracht dessen das serielle Schnittstellen verschwinden und nur
noch USB-Seriell Adapter da sind, kann man sagen, wenn jemand sich
unbedingt aus dem Markt herauskatapultieren will, viel Spass dabei...

von Robert (Gast)


Lesenswert?

Das ist schon geschehen, die Latenzzeit zu vergrößern geht ja klaglos,
aber wer braucht das schon??

Vermutlich murks im FTDI WHQL Treiber. Wir errinnern uns, RS232 ist
eine zeichenorientierte Schnittstelle...

mal sehen, vielleicht finde ich ja noch eine Lösung diese FTDI Krücke
in Schwung zu bringen...

von Robert (Gast)


Lesenswert?

Noch ein Nachtrag:

in der Registry wird der eingestellte Wert übernommen, aber nach wie
vor vom Treiber ignoriert. - leider.


PS: hat jemand schon mal probiert, wie sich die D2xx Treiber hier
verhalten?

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.