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

Visual C++で FT-232HのMPSSEにある
        SPI機能でMCP23S08を制御


 USB 2.0 Hi-Speed (480Mb/s) to UART/FIFO IC の FT-232Hが持つMPSSEにあるSPIを使って、I/OエクスパンダMCP23S08を制御しました。

●Visual C++でカウントした値を、FT-232H MPSSEのSPI機能を使ってMCP23S08に表示

 FT-232H では、ハードウエアを付加することなくSPI機能を使うことができます。SPI機能を使うには、MPSSE機能とMPSSE制御コマンドを利用します。

 ここでは、Visual C++のプログラムでカウントした値を、FT-232H MPSSEのSPI機能を使ってMCP23S08に送り表示しました。
 Visual C++のプログラムは、FTDI社のアプリケーションノート AN108 を参考に作りました。
 ハードウエア構成は次の写真に示します。FT-232Hは、モジュールになった UM232H をユニバーサル基盤に実装した物です。MCP23S08は、以前に実験で使った、MCP23S08とLEDとスイッチを基盤に実装したものを使います。

 MCP23S08に接続したLEDにカウント値が正常に表示できました。





●FT-232H MPSSEのSPIが発生する、MCP23S08制御信号


 MCP23S08を制御する信号の波形を次に示します。
 FT-232H MPSSEのSPIが発生する信号は、2MHzのクロックに同期しています。






 上:SPIのクロック、2MHzです。
 下:SPIのチップセレクトです。

 
 チップセレクト作成に時間が掛っています。
 もっとうまい方法があると思います。
 今は、これで良しとします。
 詳細は、プログラムを見てください。








 上:SPIのクロック、2MHzで24パルス出ています。
 下:FT-232H出力のSPIデータです。
   左の8ビットは、MCP23S08制御信号です。
   中央の8ビットは、MCP23S08のレジスタをしていします。
   右の8ビットは、表示データです。
 
 波形にノイズが載っています。
 制御のワイヤが長いのがノイズをひらっている原因です。
 今は、これで良しとします。

 詳細は、プログラムを見てください。




●Visual C++のプログラム


 ダイアログベースでプログラムしました。
 「Mcp23S08R/W」ボタンを押すとカウンタを開始して、カウント毎にその値を FT-232H に出力します。






 「Mcp23S08R/W」ボタンを押すと次のプログラムが呼び出されます。
 MPSSE制御コマンドを参考して、見てください。






ホームへ戻る