NiosII による、FT245/FT2232D/FT2232Hなどのパラレル通信例

2009/10/27-

 FTDI社の、FT245/FT2232DそしてFT2232HなどのUSB-FIFO変換チップとFPGAの接続例として、NiosIIからアクセスする例をご紹介いたします。
ASYNC 245 FIFOと呼ばれる一番シンプルなアクセス方法です。
 メモリのようにリードライトすれば良いので、SOPC Builderの新規コンポーネントをつくります。今回は、SRAMを作るつもりで下のようなコンポーネントを作りました。
ここで、アドレスはダミーです。アドレスが無いとコンパイル時にエラーがでましたので、ダミーで生成しました。CSも不要ですが生成しています。データバスは8ビットとすると、Niosからのアクセスがキャラクタアクセスあっても4回のリード信号が生成されましたので、32ビットバスとし、最下位8ビットを使用しました。 

 NiosIIに限らず、一般のマイコンからも同様に通信できます。
組込マイコンを使わないときは、こちらのようにして接続します。

 これは現在デバッグ中のEDA-004に搭載のCycloneIIIとFT2232Hを通信させたものです。NiosIIは50MHzで動作させています。
Synchronous parallel FIFOモードではもっと高速になると期待できます。
以下、コンポーネントエディタの設定例です。
タイミングはアバウトですが余裕を持っています。(下のチェックなどは意味ありません。設定はアバウトですので参考までにとどめてください)
 下記が、FPGAが受信したものをそのまま送り返すプログラムです。
ここで、TXEとRXF信号は汎用のI/Oポートに割付しました。必要に応じて割り込みを使うことができると思います。
 4MByteほどのファイルを送信し、受信されたデータと比較することで正しく動作することを確認しました。ソフトウエアのポーリングで、仮想COMポートドライバをデフォルトで使っていて速度は速くありません。(上記の例で約2MByte/sでした)
 それでもUARTと違い、取りこぼしの不安はありませんから、簡単便利だと思います。
以上皆さまのご参考になれば幸いです。
メールでのご質問はこちらへどうぞ

TOPページへ