Forum: Mikrocontroller und Digitale Elektronik FTDI - Java - Windows: Treiberproblem


von MSE (Gast)


Lesenswert?

Ich versuche gerade, einen Treiber für FT245 unter Windows2000 zu
installieren. Dies ist der jüngste Treiber aus folgender Quelle:
https://jd2xx.dev.java.net/
(Auf diese Seite wird auf der FTDI-Homepage hingewiesen, man soll damit
eine Schnittstelle zu java realisieren können.)

Nach dem Anstöpseln des Gerätes funktioniert alles wie erwartet:
Windows öffnet die bekannten 'Gerät gefunden, suche Treiber'-Dialoge.
Ich gebe den Pfad des Treibers ein, Windows findet ihn, installiert ihn
und startet (nach Nachfrage) den Rechner neu.

Dann allerdings zeigt der Gerätemanager einen gelben Kreis mit
schwarzem '!' darin an, unter 'Eigenschaften' lese ich folgende
Fehlermeldung:

"Das Gerät funktioniert nicht ordnungsgemäß, da Windows die für das
Gerät erforderlichen Treiber nicht laden kann. (Code 31)"

Auf einem anderen (nagelneuen) Rechner mit WinXP ist mir ziemlich genau
das selbe passiert.


Hat jemand von Euch Erfahrungen mit diesem Treiber und es geschafft,
ihn zum Laufen zu bringen?
Oder weiß jemand sonst irgend einen Rat?


Gruß, Michael

von Sven Bohner (Gast)


Lesenswert?

schau dir mal die dem rechner übermittelte VendorID und ProductID an...

findest du ebenfalls in der system steuerung...

wenn der chip sich mit lauter nullen "000.." meldet...
...dann hast du lediglich die datenleitungen des usb-kabel
vertauscht...
(DATA+ und DATA-)...

bin mir sicher, nach dem drehen ist es ok...

(da kann dem rechner nix passieren...)

von MSE (Gast)


Lesenswert?

Hallo Sven,

Erst mal vielen Dank für Deine Antwort und ich muß Dich und alle
anderen sogleich um Verzeihung bitten. Im Eifer des Gefechtes habe ich
zwar mein letztes Vorgehen beschrieben aber ich vergaß zu erwähnen,
dass ich vorher bereits einen FTDI-Treiber zum Laufen gebracht hatte
und damit alles lief.

Jetzt wollte ich mein Gerät unter Java ansprechen und habe dazu den
alten Treiber deinstalliert und den erwähnten neuen versucht zu
installieren, wobei dann besagtes Pech über mich hereinbrach.

Ich bitte noch einmal ausdrücklich alle, die evtl. meine Frage gelesen
haben, um Verzeihung. Ich hätte dazuschreiben müssen, dass es bereits
mit dem ftdi-Treiber lief!

Meine Hardware ist in Ordnung, sie läuft sowohl mit selbstgeschriebener
C++-Software als auch mit dem C++-Beispielprogramm von FTDI (Beispiel
für Borland-Builder).

Gruß, Michael

von DerMax (Gast)


Lesenswert?

Mhmm im Zweifelsfall ein paar eigene DLLs in C schreiben und übers Java
Native Interface einbinden.

von MSE (Gast)


Lesenswert?

Hallo DerMax,

Ich habe noch nie eine DLL selber geschrieben und traue es mir auch
derzeit nicht zu. Ich würde es aber gerne lernen. Hast Du links oder
ähnliches, die mich dabei anleiten könnten?

Gruß, Michael

von Matthias (Gast)


Lesenswert?

Hi

eine DLL ist nichts weiter als eine Bibliothek von Funktionen. Wenn du
wirklich eine DLL für das JNI schreiben willst schau dich mal hier um:
http://java.sun.com/docs/books/tutorial/native1.1/
Um das JNI nutzen zu können sollte man aber im Umgang mit C sehr sicher
sein da die Abbildung der Java-Objekte in C nicht beliebig simpel ist.
Die Übergabe von ein paar int-Werten von Java an die DLL und zurück ist
aber nicht weiter schwierig.

Matthias

von MSE (Gast)


Lesenswert?

Hallo Matthias.

Eine gute Frage, ob ich das zumindest in diesem wirklich will (eine DLL
selber schreiben).
Ich bin Deinem Link gefolgt und habe mir die ganzen Tutorien mal
gezogen. Sieht interessant aus, vielen Dank!

Trotzdem würde mich nach wie vor interessieren, ob sich hier irgenwer
auch schon einmal an diesem Treiben versucht hat:

https://jd2xx.dev.java.net/


Gruß, Michael

von Matthias (Gast)


Lesenswert?

Hi

das ist doch garkein Treiber den die da anbieten. Das ist nur ein
JNI-Wrapper für die original d2xx DLL von FTDI. Wenn du also den d2xx
FTDI-Treiber installierst solltest du mit dem Ding arbeiten können.

Matthias

von MSE (Gast)


Lesenswert?

Hi Matthias,
Es sind aber doch alle Files in dem Verzeichnis vorhanden, die sonst
auch zum Treiber gehören oder? Nach dem Entpacken erhalte ich ein
Unterverzeichnis 'ftdi' in dem sich u.a. folgende Files befinden:

ftd2xx.dll
ftd2xx.sys
ftd2xx.ini
ftdiun.ini
ftdiunin.exe

Diesen Haufen Files habe ich Windows als Treiber angeboten. War das
falsch?

Bzw. meinst Du, ich müsste von der Wrapper-Klasse aus auch auf den
älteren Treiber zugreifen können?

Gruß, Michael

von Matthias (Gast)


Lesenswert?

Hi

ich würde den aktuellen Treiber von der FTDI-Homepage nehmen.
Hast du einen evtl. vorhanden (D2XX bzw. VCP) Treiber vorher
deinstalliert?

Matthias

von MSE (Gast)


Lesenswert?

Ja ich hatte ihn vorher deinstalliert. Ich habe zuvor mit einem
D2XX-Treiber gearbeitet und hatte auch erfolgreich über
Borland-C++-Programme mit meinem Gerät kommuniziert.
(Das Gerät ist auch nicht kaput, da ich inzwischen den alten Treiber
wieder laufen habe. Ausserdem habe ich mehrere Geräte und es müsste
schon mit dem Teufel zugehen, wenn diese alle auf einmal kaputtgegangen
wären.)

Lieber Matthias, ich danke Dir ganz herzlich dafür, dass Du Dich mit
meinem Problem auseinandersetzt und würde mich freuen, weiterhin mit
Dir darüber zu diskutieren.
Nur ist dies für heute mein letztes Posting, da ich mich jetzt beeilen
muß, um meinen letztmöglichen (Dorf!-)Bus nachhause zu bekommen (wo ich
leider offline bin).

Gruß, Michael

von MSE (Gast)


Lesenswert?

Hallo Matthias und alle anderen, die sich hiermit befasst haben!

Gerade hab' ich's zum Laufen gebracht. Grund für das
Nichtfunktionieren war, dass ich aber auch wirklich JEDEN Fehler
gemacht habe, den man nur machen kann.
Zuletzt habe ich noch die JD2XX.dll in mein java-Source-Verzeichnis
kopiert und dann ging es endlich. (Ich hatte Tomaten auf den Augen,
hatte stattdessen die FTD2XX.dll dorthinein kopiert und mich gewundert
warum es nicht ging.

Jetzt werde ich herangehen und mal sehen, was ich unter Java damit
zustande bringe.

Gruß und nochmals Danke für Eure Hilfe,
Michael

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.