USBデバイス

これは依頼元からの要望で使用したUSBデバイスの製作例です。プロトタイプの作成ですので、市販のものを使用していますが、 市販品でもこれらのChipを使用した製品は数多く存在しています。これらはドライバ開発も不要ですし、とても開発しやすい環境を備えたChipです。 RS232Cが少なくなった昨今では、このようなUSBでインターフェイスすることが多くなりました。 当方ではどちらかと言えばプロトタイプで使用していますが、アプリケーションが大きな比重になっています。(あるいは「センサ」「駆動」というUSBの先にあるものです。)
これはUSB-IOの名前で呼ばれたCypressのHIDデバイスの例です。このボードはPICも搭載してADコンバータが使用できます。HIDデバイスですのでドライバは不要です。 これらを動かすソフトウェアまでを開発しました。 USB-IOはChip供給元のCypressさんでは既に生産終息していますので量産には不向きです。 ただし、ツールや工作としては便利に使えて重宝します。 価格も安価です。 ・Km2netさんなどから提供されています。
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を使ったモジュールは ・秋月電子通商さん から提供されています。 このあたりでようやく中速という感じです。
それからさらに高速にしたい場合はやはりCypressさんのEZ-USBFX2になると思います。ドライバーはCypressさんの開発Kitに含まれています。EZ-USBFX2は ・ストロベリーLinuxさん・オプティマイズさん から提供されています。 40MByte/Sは無理にしても、オプティマイスさんの「カメレオン FX2」ではFPGAと組み合わせて20MByte/S以上は出ています。
   
Wind-Craft(風工房) 各種ハードウェア及びソフトウェアの受託開発 member@windcraft.net
お買い物なら