« コミット数積算グラフプラグイン(その3) | トップページ | FT2232DでI2C(その2) »

2010年5月19日 (水)

FT2232DでI2C

I2Cの制御ができるUSBデバイスで、手ごろな値段のものが
秋月で売ってあるというので、ためしに買ってみました。
「FT2232D USB-シリアル2ch変換モジュール」というやつです。
I2CやJTAGのような機能を使う場合は、EEPROMも必要とのことで、
一緒に購入。でも、DIPだったので「AE-FT2232ボードにEEPROMを実装する
をまねてつなぎました、意外と大変。

FT2232DにはFTCI2C.dllというI2C制御用のdllが用意されています。
FTDIでダウンロードできます。また、EEPROMに設定を保存するツールや
PCのドライバなどもFTDIからダウンロードできます。

で、このdllを使えば簡単にI2Cが使えると思ってたら
なぜかとっかかりのI2C_GetNumDevices()で検出できません。
もちろんI2C_Open()もできません。
でも、USB to I2C IntefaceにあるDelphiサンプルについていたeeprom読み出しの
exeファイルではあっさり動きます。


で、FTCI2Cのソースをチェックしていたらわかりました。
FT2232DのEEPROMのUSB String Descriptersに
「USB <-> I2C and UART」と書いていたのですが、
ソースではdevice descripterを読み出して、「 A」があれば
それも含めてそれ以降が2文字であればI2Cが使えるデバイスという
判断になってました。私の場合、途中に「 a」があり大文字に変換されていたようで
これが原因でデバイスなしとなってました。
結局、「USB<->I2C/UART」のように変更したら
FTCI2Cで動かせるようになりました。

多分、descripterの一番後ろ2文字が「 A」だったらという判断に
したかったのでは。

で、I2Cを動作させてみましたが、思ったよりかなり遅くて驚きました。
うーん。まだなんかあるのかな。
※FT2232Dの抜き差しで少し早くなりました、何だったのかな。

|

« コミット数積算グラフプラグイン(その3) | トップページ | FT2232DでI2C(その2) »

i2c」カテゴリの記事

usb」カテゴリの記事

FT2232D」カテゴリの記事

コメント

この記事へのコメントは終了しました。

トラックバック


この記事へのトラックバック一覧です: FT2232DでI2C:

« コミット数積算グラフプラグイン(その3) | トップページ | FT2232DでI2C(その2) »