PC上のアプリケーションが、1 KBのチャンクで埋め込みデバイスにファイル(2 MB)を送信します。FTDIドライバ(Windows)大きい(1KB)チャンクの問題 - (バージョン2.12.16.0)
私はFTDIのWindowsドライバを使用していますが、私のコードはクロスプラットフォームなので、古典的なFT_Write()API関数を使用します。
注:これらの問題は、1KBのチャンクサイズを使用すると表示されます。小さなチャンク(私は64バイトを試しました)はうまく動作します。
この問題は、関数が、数百パケットごとに "0バイト送信"を返し、スタックするという問題です。私はTXとRxの両方をパージして、ResetDevice()コールがチップを回復した後に、回避策を見つけました。それでも数百パケットごとに発生しましたが、少なくともファイル全体(2 MB)を送信できます。
しかし、私はUSBアイソレータ(http://www.bb-elec.com/Products/USB-Connectivity/USB-Isolators/Compact-USB-Port-Guardian.aspx)を使用しているときに の作業が失敗しました。
私の仕事は優雅な解決策ではないと私は信じています。
注:私はので、私は以下のFTDIのアプリケーションノートで見つかった提案の大きなチャンクを使用します。
FTDIのデバイスにデータを書き込むときは、できるだけ限り多くのデータが アプリケーションにバッファリングして記述する必要があります write関数呼び出し( Win32 APIを使用するVCPアプリケーションの場合はWriteFile、D2XXクラシックインターフェイスを使用する場合はFT_Write、D2XX FT_W32インターフェイスを使用する場合は FT_WriteFileのいずれか)でデバイスに接続します。この の結果は、データがUSB パケットごとに64バイトでデバイスに書き込まれることです。
どのようなアイデアがこれらの問題の適切な修正ですか?それはFTDIの初期化に関連していますか?私のドライバのバージョンは2.12.16.0(3/9/2016)です。
ありがとうございました! – Hary