WindCraft(風工房)はソフトウェア・ハードウェアの受託開発を行っています。

USBデバイス製作例

これは依頼元からの要望で使用したUSBデバイスの製作例です。
プロトタイプの作成ですので、市販のものを使用していますが、 市販品でもこれらのChipを使用した製品は数多く存在しています。
これらはドライバ開発も不要ですし、とても開発しやすい環境を備えたChipです。
RS232Cが少なくなった昨今では、このようなUSBでインターフェイスすることが多くなりました。
当方ではどちらかと言えばプロトタイプで使用していますが、アプリケーションが大きな比重になっています。(あるいは「センサ」「駆動」というUSBの先にあるものです。)

USBデバイス(低速)


これはUSB−IOの名前で呼ばれたCypressのHIDデバイスの例です。
このボードはPICも搭載してADコンバータが使用できます。
HIDデバイスですのでドライバは不要です。
これらを動かすソフトウェアまでを開発しました。

USB−IOはChip供給元のCypressさんでは既に生産終息していますので量産には不向きです。
ただし、ツールや工作としては便利に使えて重宝します。
価格も安価です。
Km2netさんなどから提供されています。

USBデバイス(中速)


Cypressさんはその後もEZ−USBなどの製品があり、これも使いやすかったのですが、やはり生産終息してしまいました。

現在はPICやAVRベースのものが供給されています。開発ツールの関係などから当方はAVRベースのものを使用しています。
AT90USB162かAT90USB1278を使っています。
写真のようにISPでも書けますが、なくてもブート経由でUSBから書き込むことも可能です。

HIDかCDC(シリアル)に見せますので、ドライバは不要です。(CDCではinfファイルは必要です。)

AT90USB1278はADコンバータを内蔵しています。
価格もこなれていて、USB−IOより少し高い程度ですので低速向きには最適です。
ストロベリーLinuxさん
マイクロファンさん
から提供されています。


もう1つのアプローチですが、FTDI社のFT232RXを使用します。
これはRS232Cコンバータですが同社から使いやすいライブラリもあって重宝します。ドライバも同社から提供されます。
これだけでは、あまり面白くないので、AVRを接続しています。
Mega8系(Mega88や168など)を使用する場合が多いです。
これらはADコンバータがありますので、測定をリアルタイムで送信することが可能です。

実はこのFT232RXにはBitBangというモードがあり、4bitのGPIOも使えます。4bitまでなら、USB−IOもどきもできます。

FTDI社のFT232RXを使ったモジュールは
秋月電子通商さん
ストロベリーLinuxさん
などから提供されています。
またMega8系のボードは
ストロベリーLinuxさん
から提供されています。

この構成は比較的バランスがよく「Arduino」というボードも基本は同じです。これは簡単に開発できる「開発ツール」「ライブラリ」が無償で提供されています。
Arduinoは
ストロベリーLinuxさん
マイクロファンさん
から提供されています。

AVRはAVR−GCCがあって重宝します。
ただ、シリアルですから115200bpsでも10KByte/SとUSBから見れば低速です。

さらに高速転送が必要な場合は同じくFTDI社のFT235RLが使用できます。(これはパラレル転送で1MByte/Sです。)
FTDI社のFT235RLを使ったモジュールは
秋月電子通商さん
から提供されています。
このあたりでようやく中速という感じです。

USBデバイス(高速)


それからさらに高速にしたい場合はやはりCypressさんのEZ−USBFX2になると思います。
ドライバーはCypressさんの開発Kitに含まれています。
EZ−USBFX2は
ストロベリーLinuxさん
オプティマイズさん
から提供されています。
40MByte/Sは無理にしても、オプティマイスさんの「カメレオン FX2」ではFPGAと組み合わせて20MByte/S以上は出ています。