Gast
#128014
Hi Ich habe ein Problem mit dem Senden von Daten von dem USB Controller FT245BM zum Rechner. Während das Empfangen der Daten vom Rechner wunderbar funzt, klappt das Senden überhaupt nicht. Als Software habe ich dieses D2XX Demo Programm von FTDI im Delphi Code. Das Programm an sich ist total beschissen, aber die Functionen und Proceduren sind ganz nützlich. Wenn ich nun Daten senden will, schreibe ich die ja in den Transmit-FIFO. Die Software holt dann diese daraus, allerdings nur in Paketen, deren Größe man im Quelltext der Software festlegen kann. Nun hab ich festgestellt, das die zu sendene Datenmenge immer ein Vielfaches dieser Packetgröße sein muss, da die Software nur volle Packete empfängt; d.h keine leeren oder halbvolle oder.. usw. . Beim Senden von Daten vom Rechner zum FT245BM, was ebenfalls mittels Datenpaketen geschieht, ist das nicht so. Da kann das letzte Datenpacket eine Variable größe haben, womit die zu sendene Datenmenge ebenfalls variabel ist. Da nun die Software nur volle Packete empfangen will, erkennt sie auch keine leeren. D.h.ist der FIFO nach dem Auslesen leer, und es stehen keine Daten mehr zur Verfügung, erkennt das die Software nicht, und wartet auf neue Daten. Somit hängt nun das Programm, weil es auf etwas wartet was nun mal nicht kommt. Nur ein Trennen der USB Verbindung macht dem Program klar, das keine mehr kommen, und die empfangenen Daten werden gespeichert. Also: Wie kann ich Daten variabler Größe verschicken und wie kann die Software erkennen, das keine Daten mehr im Transmit FIFO liegen? Danke!