FT232H(もしくはFT2232H)はSYNC 245 FIFOモードというのがあり、BitBangモードの数十倍程度の転送レートがあることが知られています。
SYNC245FIFOモードで動かすためには、EEPROMの書き換えが必要で、その辺は、こことか、ここに書いてあるので省略します。
SYNC245FIFOモードはFT232H側からクロックを出して、それに同期するようにデータを乗せてあげるとPCにデータを取り込むことができるのですが、PC側のデータ取り込みが間に合わない場合にはTXE#ステータスをHighにすることで、入力制限をかけます(PCに取り込む場合。コマンドはFT_READですが、ステータスはTXE#です)。
下表の赤で囲んだ部分を使えば、信号の受け渡しができます(データ8ビット、クロック1ビット、ステータス入力出力が各1ビット)。
また、公式ページによれば、
こんな感じにFT232Hから外部回路(ここではFPGA)に一方的に制御をかければOKとなっています。
で、FPGAを0-255までのFree Runにしてみたところ、データロスが発生しました。
Free Runでなく、0-255まで各データを4回ずつにすると、先頭部分が欠けるという現象も出ました。
その2に続きます。