Forum: Mikrocontroller und Digitale Elektronik FTDI: Treiber mit eigene Baudraten


von Jochen (Gast)


Lesenswert?

Hallo zusammen,

hab ein kleines Problem mit dem erstellen eines eigenen Treibers für den 
FTDI FT232R.
Meine Baugruppe verwendet nicht Standardbaudraten, wie 100kBaud, 
500kBaud, 1MBaud.
Mit dem Tool FT_INF habe ich eine Installationsdatei erstellt, die die 
unterstützen Baudraten beinhaltet.
In der *bus.inf steht folgende Baudraten-Konfiguration drin
1
[FtdiPort.NT.HW.AddReg]
2
...
3
HKR,,"ConfigData",1,17,00,3F,3F,C4,09,00,00,E2,04,00,00,71,02,00,00,38,01,00,00,D0,00,00,00,9C,00,00,00,34,00,00,00,1E,00,00,00,1A,00,00,00,18,00,00,00,0C,00,00,00,06,00,00,00,03,00,00,00,00,00,00,00,4E,00,00,00
4
...
Nachdem ich erfolgreich den eigenen Treiber installiert habe, wo ich 
voller Hoffnung, doch wurde rege enttäuscht. in hterm, wie auch in den 
COM-Port Einstellungen direkt werden meine eigenen Baudraten nicht 
unterstützt, sondern nur die Standardbaudraten bis zu 921600 Baud.

Hat schon mal jemand einen eigenen Treiber für den FTDI erstellt und 
kann mir sagen, was ich falsch gemacht habe?

Danke!

Gruß
Jochen

von Ingo (Gast)


Lesenswert?

In Termite kannst du die gewünschte Baudrate "eingeben", wenns irgendwie 
hilft.

Ingo

von John (Gast)


Lesenswert?

Hi, wenn es noch jemanden interessieren sollte:

es gibt ein Tool von vscom, welches unter anderem auch die Baudrates 
beliebig verstellen kann.

http://www.vscom.de/download/multiio/Windows7/tools/USBCom_Configurator.exe

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Jochen schrieb:
> Meine Baugruppe verwendet nicht Standardbaudraten, wie 100kBaud,
> 500kBaud, 1MBaud.

Das ist kein Problem, wofür Du einen speziell angepassten Treiber 
brauchen würdest. Vorausgesetzt, daß die Hardware des FTDI die 
entsprechende Baudrate erzeugen kann, kann die auch mit dem 
Standardtreiber verwendet werden.

Das Programm, das den Baustein anspricht, muss nur die gewünschte 
Baudrate mitteilen; die von Windows vorgesehene Auflistung von 
möglichen Baudraten hat nichts mit den tatsächlich nutzbaren Baudraten 
zu tun.

> in hterm, wie auch in den
> COM-Port Einstellungen direkt werden meine eigenen Baudraten nicht
> unterstützt, sondern nur die Standardbaudraten bis zu 921600 Baud.

hTerm hat für die Baudrate ein Eingabefeld, da musst Du den gewünschten 
Wert reinschreiben. Die Auswahlliste enthält nur Vorschläge.

von John (Gast)


Lesenswert?

Rufus Τ. Firefly schrieb:
> hTerm hat für die Baudrate ein Eingabefeld, da musst Du den gewünschten
> Wert reinschreiben. Die Auswahlliste enthält nur Vorschläge.

Richtig, aber es ist möglich in configdata unter z.B. der Baudrate 
300Bit 3MBit einzustellen so, dass wenn jetzt die Baudrate 300Bit 
gewählt wird, tatsächlich 3Mbit generiert wird.

Alle Standardbaudrates bzw. Divisoren zum Berechnen sind in der 
configdata in Registry hinterlegt und können nach Wunsch durch 
nicht-Standard Baudrates ersetzt werden.

Daher auch dieser Eintrag mit Standarddivisoren beim Installieren des 
Treibers.

> Jochen schrieb:
1
 [FtdiPort.NT.HW.AddReg]
2
...
3
HKR,,"ConfigData",1,17,00,3F,3F,C4,09,00,00,E2,04,00,00,71,02,00,00,38,01,00,00,D0,00,00,00,9C,00,00,00,34,00,00,00,1E,00,00,00,1A,00,00,00,18,00,00,00,0C,00,00,00,06,00,00,00,03,00,00,00,00,00,00,00,4E,00,00,00
4
 ...

Hier ist die detaillierte Beschreibung zu finden:
http://www.ftdichip.com/Support/Documents/AppNotes/AN_120_Aliasing_VCP_Baud_Rates.pdf

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

John schrieb:
> Richtig, aber es ist möglich in configdata unter z.B. der Baudrate
> 300Bit 3MBit einzustellen so, dass wenn jetzt die Baudrate 300Bit
> gewählt wird, tatsächlich 3Mbit generiert wird.

Schön und gut, aber ist das wirklich sinnvoll? Das ist doch nur ein 
Hack, um störrischer Software auf die Sprünge zu helfen, und fatal, 
sobald man das außer Acht lässt ...

von John (Gast)


Lesenswert?

Es muss natürlich jeder für sich entscheiden! Das ist klar!

Ich habe nur auf das Tool verwiesen, mit welchem sich bei FTDI ohne 
große Rechnerei die nächstmögliche Baud zur gewünschten Baud hinterlegen 
lässt.

Rufus Τ. Firefly schrieb:
> Vorausgesetzt, daß die Hardware des FTDI die
> entsprechende Baudrate erzeugen kann, kann die auch mit dem
> Standardtreiber verwendet werden.
Das ist eben das Problem, dass nicht jede Baud geht... auch FTDI hat so 
seine Grenzen!

Die eigentliche Software kann dann ohne weiteres die Standardbaudrate 
verwenden.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

John schrieb:
> Das ist eben das Problem, dass nicht jede Baud geht... auch FTDI hat so
> seine Grenzen!

Dann braucht man halt 'ne UART mit separatem Baudratengenerator. Auf 
Grundlage von V-USB sollte sich das umsetzen lassen.

von Uwe (Gast)


Lesenswert?

Die FTDI können auch "fractional Divisor", also mit Nachkomma im Teiler.
Einfach mal googln : FTDI fractional divisor.

von John (Gast)


Lesenswert?

Uwe schrieb:
> Die FTDI können auch "fractional Divisor", also mit Nachkomma im Teiler.
> Einfach mal googln : FTDI fractional divisor.

Jep! Die gewünschten Bauds von
> 100kBaud, 500kBaud und 1MBaud
können mit FTDI problemlos erzeugt werden!

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.