歩き遍路 平成19年春(J1) 記録の準備

Visual C#で
   FT-2232HのSyncFIFOでOUT転送


 Visual C#を使ってのSyncFIFOでOUT転送しました。

 FTDI社のFT2232Hは、高速転送が出来るとあったので早速調べたら、カタログに秒当たり25Mbyte以上と有ります。FT2232Hから出力の60MHzのクロックに同期してデータをやりとりする 同期FIFO方式です。早速実験をしました。
 Visual C#のコードは、
以前記録した「Visual C#でFT-245をBitBangモードで制御」をベースに、FTDI社発行の「Application Note AN_130 FT2232H Used In An FT245 Style Synchronous FIFO Mode」の内容を加味しました。
 「Application Note AN_130 FT2232H Used In An FT245 Style Synchronous FIFO Mode」は、FTDI社のHPからは探すことが出来ずにGoogle で検索して入手しました。

●FT2232H 同期FIFOの実験の構成

 実験の構成と構成写真を下記します。

 実験の構成は、ホストのパソコンにFT2232H用ドライバ D2XX とVisual C#で作成したプログラムを搭載します。
 FT2232Hは、FPGAボードの上に実装しました。回路図は、データシートをコピーしてコチョコチョと作ったのでここに記録するのが恥ずかしいので記録しません。FT2232Hのデータと制御の15本程をFPGAにそのまま接続しました。



 実験の構成写真です。 写真の上側の箱は、ロジックスコープです。




●FT2232H 同期FIFOの受信制御

 パソコンから受信したデータをFT2232H から同期FIFOで取り出します。
 FT2232H 同期FIFOは60MHzのクロックに同期して取り出すのでFPGAのシーケンサを使います。
 次に、制御用のシーケンサのバブルチャートと取り出し波形をキャッチしたロジックスコープの波形を示します。

 取り出し用FPGAのシーケンサは、FT2232H の受信FIFOにデータが有りを示す RxF# を監視して、Lowになれば CE# と RD# をLowにしてデータを読み出します。




 次のロジックスコープの波形は、キャッチした取り出し波形を示します。
 0_InClk60はFT2232Hからのクロックで、このクロックに同期してデータを取り出します。
 6_FtRxF が「1」になることを検出して、4_FtRd と5_FtCe を共に「1」にして、FIFOのデータを24_PidLcd_Dataに読み出し、レジスタ16_HifSeqCntrに格納します。
 パソコンからのデータは、30h 31h 32h 33h 34h 35h 3ah 36h 37h 38h の10バイトを送っているので、そのまま受信しています。途中に 3ah とデータを揺らいでいます。今は流行りですね!
 




●FT-2232HをSyncFIFOモードにするには

 FT-2232HをSyncFIFOモードにするには、パソコン側のソフトによる設定とFTDI社の書き込みソフト「FT_Prog」を使い「PortA」と「PortB」を「245 FIFO」に設定します。今回はUSBケーブルから取る電流を500mAまで増やしたのでその設定も変更しました。




ホームへ戻る