2011年2月8日火曜日

FT2232HをPythonで使う

ストロベリーリナックスからFT2232Hを載せたUSB高速シリアル変換基板が発売されております.
FT2232H(2ch)高速USBシリアル変換モジュールキット
これは単純に言えば,パソコンから自作マイコンやFPGAボードなどに480Mbpsでデーターを簡単に送れてしまえるスグレモノなのです.
パソコン側のソフトを開発するためのライブラリなどはFTDI様が配っておられます.
FTDI CHip D2XX Driver Download site
筆者はこの頃,年をとったせいか開発中にコンパイラを起動するのがストレスになり,
単にアウトプットだけが問題なときやテストメインの時は,Pythonでお手軽に処理するのが最近の趣向なのです.
そこで上記のボードもPythonから使えるようにFTDI様のDLL用にctypesラッパーモジュールを書きました.
これを書いているほうが断然キーボードを叩く量が多い気が途中でしましたが,一度作れば480Mbpsの通信を
Pythonで制御できるので嬉しい気分となります.
ftd2xx-py.zip
スクリプトの中身は整理もなんにもしてなくて,コメントもありませんがご容赦下さい.

使い方は,例えばこんな感じです.32メガバイトを送信する例となっています.
from ftd2xx import *
handle = c_ulong()
ret=FT_Open(0, byref(handle))
ret=FT_SetBitMode(handle, c_ubyte(0xff), c_ubyte(0x0))
print "FT_SetBitmode=", ret
ret=FT_SetBaudRate(handle, 6000000)
print "FT_SetBaudRate=", ret
data = range(1024)*1024*32
ret=easy_write(handle, data)