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の抜き差しで少し早くなりました、何だったのかな。
| 固定リンク
「i2c」カテゴリの記事
- 78kでI2C(2010.05.24)
- FT2232DでI2C(その2)(2010.05.20)
- FT2232DでI2C(2010.05.19)
「usb」カテゴリの記事
- stm32ループバック(HID)&BCB6アプリ(2011.10.02)
- BCB6でWinUSB(2010.07.13)
- stm32でさらにWinUSBも試す(2010.06.20)
- stm32の動作(2010.06.16)
- stm32でuusbdをためしてみたら(2010.06.12)
「FT2232D」カテゴリの記事
- FT2232DでI2C(その2)(2010.05.20)
- FT2232DでI2C(2010.05.19)
この記事へのコメントは終了しました。
コメント