USB-IO は、元々、モルフィー企画が販売していた、USB 経由でデジタル入出力(8 bit + 4 bit)を行うためのデバイスです。
(でも、既にモルフィー企画は潰れていて、今では Km2Net や テクノキット が、互換品を出しているみたいです。)
でも、この USB-IO、動作が遅く、データの書き込みが 12bit x 150回 / sec ぐらいしかできないのです。
なので、キャラクタ LCD を駆動してスクロールさせようとすると、全然速度が足らないのですよね。
そこで、この USB-IO-Mini (勝手に命名^^;) を作ってみました。
安価(220 円ぐらい)な AVR ATtiny45 を使って、高速(4bit x 1000回 / sec ぐらい)なアクセスを実現できます。
でも、使えるポートは 4 bit だけです。^^;
でも、ID を振って複数使えるようにしたので、3つ使えば USB-IO と同じ 12 bit 使えます。もちろんそれ以上も使えます。
(最近の USB-IO は、ID が2種類あって、2つまでは使える???)
また、ADC も選択できるようにしたので、USB-An も兼ねれます。でも使えるポートは3つだけです。(USB-An は4つ)
でも、意外と 4 bit or A/Dx3 でも十分だったりしますよね。
(データレート的には 64bit x 1000回 / sec = 8KByte / sec ぐらいですが、今回は 64 bit 単位の通信の中で 4 bit しかデータとして使えてないです。
アナログ入力3本に設定した場合は 64bit 全部使います。)
基本的には、hid-data を ATtiny45 の内蔵 RC オシレータで動作させる方法の通りです。
データサイズを 128 → 8 Byte に変更して、入出力設定できるようにコマンドを追加したぐらいです。
詳細は、また、後で。
↓のソースを見てもらうのが早いですね。
回路は、サンプルのままです。
<V-USB>/circuits/tiny45-rc.png の通りで動きます。
D1, D2 | 1N4148 50本で100円 |
R1, R2 | 68Ω 1本16円、2本で32円 |
AVR-USB を使わせてもらって、HID Device として実装しているので、Windows 標準ドライバだけで扱えます。
詳細は、また、後で。
↓のソースを見てもらうのが早いですね。
テストアプリは、
こんな感じのダイアログアプリです。
左側はデジタル 4 bit 入出力に設定した場合、右側はアナログ 3 本、デジタル 1 bit 入出力に設定した場合の例です。
Android 端末でも問題なく制御できました。(Xperia Z (4.1.2) と Galaxy Nexus (4.2.2) で確認しました)
詳細は、ソースを見て下さい。
これ(TestSaltUsbIoMini.apk)を、[Raw] ボタンでダウンロードしてインストールすれば使えます。
ソースを全て付けましたので、参考にしてください。
Name | Version | Download | Size | Date |
USB-IO-Mini firmware | Ver.1.00 | USB-IO-Mini_100.zip | 1,013,198 Byte | '09/1/21 |