FTDIのFTD2XX_NET.DLL

NO IMAGE

最近、お仕事の方でFTDIのFT232RLをいじっています。

VB6であれば秋月のサンプルコードが使えるので、それをもじればいっちょ上がり!だったのですが、事情があってVisualC#2005でちまちまプログラミングしています。

VisualC#だとネットでもわずかだけれど情報があるので、やってできなくはないのだけれど、情報に一部間違いがあるようで、期待していた動作がうまくいかなかったりする(C++の方がよかったかと、ちょっぴり後悔…)。

色々調べてみると、ドットネット系開発言語用にFTD2XX_NET.DLLというDLLをFTDIから配布していることが分かったので、プログラミングしてみる。

Bit-Bangモードはうまく動作できないけれど、RTS/DTRといった出力をハイローさせることはなんとかできた。FTD2XX_NET.DLLは、USBをOPENする方法がFTD2XX.DLLと違うみたい。

FTD2XX.DLLならFT_OPENという命令形があるのに、FTD2XX_NET.DLLではそれにあたる物が存在しないみたいなのだ。サンプルコードの通り、長々と呪文を唱えれば、USBをOPENできるけれど、現在サクッとOPENできないものかと研究中。

それと、RTS/DTRの制御だけれど、説明ではSetRTS(SetDTR)にtrue/falseと入れればいいみたいなことが書いてあるけれど、そのままSetRTS(true)とか記入してもダメ。変数を決めてやって、例えば

bool x = true;

ftStatus = myFtdiDevice.SetRTS(x);

※ftStatus/myFtdiDeviceは、FTDIがC#用で配布している投げやり的なサンプルソースに合わせました。

…とこのようにしないとダメ。しかもtrueならアクティブと説明されているけれど、trueにした所論理はL、falseでHの負論理となっていた。論理に関しては、FTDIが配布しているツールMProgでICの内部EEPROMの設定を書き換えれば問題なし。

でも、FTD2XX_NET.DLLを配布している割には、資料がなさすぎ…。

うーん。お仕事の都合もあるので、早々とVisualC++に鞍替えしようかしら…。