Hallo! Ich habe ein Gerät hier vor mir liegen, dass ich mit einer eigenen Software ansteuern möchte. Das Gerät hat intern einen FT245BM Chip und vom Hersteller sind alle Demoprogramme mit dem VCP Driver geschrieben. Ich würde das Gerät aber gerne über die DLL für den FTDIO Chip ansteuern. Das funktioniert insoweit auch schon gut, als ich das Gerät öffnen kann und auch Daten schreiben kann. Gelesen werden allerdings keine - hier stürzt das Programm (ohne Timeout) ab. Ich vermute nun, dass die Daten zwar am FTDI Chip ankommen, aber der Controller im Gerät diese nicht lesen kann (weil das ganze ja auf den VCP Driver ausgerichtet war). Ich kenn mich mit den Chips leider nicht aus - kann mir jemand evtl. Tipps geben, mit welchen Befehlen ich über die DLL dem Gerät die serielle Schnittstelle vorspielen kann? Ich verwende bisher nur FT_Open, FT_Close, FT_Write und FT_Read. Vielen Dank! Liebe Grüße Steffen
Hi AFAIK ist es für den µC nicht erkennbar ob die Daten dem FT245BM über den VCP oder den DLL-Treiber gesendet wurden. Ich vermute eher eine fehlerhafte Ansteuerung der DLL von deinem Programm. Wie stürzt es den ab? Segmentation Fault? Matthias
Hey - danke für deine Antwort: int handle=0; int bytesWritten=0; char* buffer = stackalloc char[5]; char* in_buffer = stackalloc char[9]; buffer[0] = (char)0x7E; buffer[1] = (char)10; buffer[2] = (char)0; buffer[3] = (char)0; buffer[4] = (char)0xE7; int c = FDTI.FT_Open(0,&handle); c = FDTI.FT_SetBaudRate(handle, 9600); c = FDTI.FT_Write(handle,buffer,5,&bytesWritten); c = FDTI.FT_Read(handle,in_buffer,9,&bytesRead); FDTI.FT_Close(handle); Das Programm liefert für c = 0 - also FT_OK. Erst beim Read kommt das Problem. Er hängt einfach nur. Es passiert gar nichts. Programmiert ist es in C#. Eigentlich sollte das Device 9 Bytes zurückliefern. Ich habe es auch schon mit 1 probiert - das Device antwortet nicht. Über den VCP Treiber hat es mit diesen gesendeten Daten geantwortet ... Viele Grüße Steffen
Hi In C# hab ich noch nicht mit native-DLLs gearbeitet. Ich bin da bisher immer in der .net Welt geblieben. IIRC muss man alles was irgendwie an der VM vorbei operieren soll in einen unsafe-Block packen. Matthias
Hey, ja - da hast du Recht. Aber die Funktioen gehen ja eigentlich. Ich wunder mich nur, warum ich von dem Device keine Antwort erhalte. Sende ich die selben Daten über den VCP, so erhalte ich die Antwort... Die Funktionen geben alle ein FT_OK zurück, also gehe ich davon aus, dass sie auch erfolgreich ausgeführt wurden. Leider antwortet das Device aber nicht. Also gehe ich davon aus, dass der Controller im Device nicht merkt, dass die Daten da sind und daher auch keine zurückschickt. Viele Grüße Steffen
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.