2011年2月5日土曜日

V-USBを検証してました。

やり尽くされた感じのV-USBの検証MCUは、168pを使った。
なんと言うか、V-USBって微妙に、配線が違う、それを修正するのに、何処に統合しようかとコンパイルを繰り返してた。
今のところPD2/PD3に集約してる。
先人が苦労して、Tiny2313に詰め込んだようなのを、もう一度、mega8系に変更しようとか・・結構統一すんのは大変みたいだ。
とりあえず・・
AVR-CDC
USBasploader
Doper
位はなんとなく統一出来た。

一応、USBasploaderが動いてる環境に、そのまんまAVR-CDC入れたら認識はしてる。
やっぱりINT1を最低使えるようにしないと不便に思えるから、MetaboardのPD2/PD4にするかな・・

まだUSBasploader上の、AVR-CDCを試して無いが・・・ちゃんと使えてるっぽい他のAE-ATmega基板のmega8u2を外して結線して見たところ一応、通信出来てるみたいな気がする。(まだ完全じゃないけど、大丈夫そう)

と言う事は、metaboardに対する、Arduino用の、AVR-CDCライブラリ作ればなんとかなると思うな・・マルチタスクさせなくても、ライブラリが有ればいい。
V-USBは、色々オプションが有りすぎて、結構大変なんだけど、初心者が使えるように思いっきり簡略化した、ライブラリ有ると便利かも知れない。

なんとなく、単純に、metaboard coreを作ればいいのでは無いかと思う。中身はほとんどArduinoのままでいいが、vusblib.hかなんか足して、USB系のピンアサインとか、Arduino IDE側で出来ないようにして
 VUSBSerial.begin(9800);
こんな感じで、検索置換で、置き換えられる位単純化すると、移植が簡単になるかも知れない。
HIDで使う時なんかも、イニシャルとか面倒だから、
VUSBkeyboard.begin();
VUSBkeyboard.key( KEYCOARD )
これくらいのコーディングで動くのを希望するな・・

3 件のコメント:

  1. V-USBのピン配置の件.

    D+側は最も強力な割り込みが必要なのでint0と(も)つないで下さい。int0のピンはCPUに依存します。168の場合はPD2ですね。また、D-側は自由です。usbconfig.hの以下のマクロで設定を変更します。

    USB_CFG_IOPORTNAME
    USB_CFG_DMINUS_BIT
    USB_CFG_DPLUS_BIT

    詳しくはusbconfig.hのひな形にコメントあります。

    もあ
    http://web.mac.com/kuwatay/

    返信削除
  2. もあさんへ
    ありがとう、一応、usbconfig.hは読みました。
    USBasploaderの上で、AVR-cdcが動いたのを見ると、functionを書いて、keyword.txt書けば、Arduino IDEでコンパイル出来そうに思ってます。あとは、coreにhardware、そのボードの、usbconfig.hに相当する部分を持たすかすれば、例えばmetaboardで、USBserial.printが出来そうに思う・・と、私書けそうも無いので、madoelec氏に、メール送りました。
    全部で5KBは有りそうですから、mega8とかではキツそうですが、328pとかなら余裕有ると思います。
     avr-cdcとdoperが、12MHzでしかどうしても動かない気がするのは、私の技術のせいじゃなく、CDCの仕様かもと思ってます。
     ただArduino IDE上で、いきなりコンパイルして、CDCとHID-Keyboard/ MIDI位出来ると、metaboardの方が、mega8u2より便利になっちゃうかも知れません。Win7が辛いのは、mac使いだから関係無い!・・って言っちゃまずいか。

    返信削除
  3. もあさんって・・morecat lab,のもあさんだったんですね。
    度素人の、こんな駄文と妄想を、読んでいただいてありがとうございます。
    いつも参考にさせていただいてます。

    別件で、ちょっとお願いした方に「comopyさんは、理想と・・・妄想書いてくれればいいから」と・・メールいただきました。
    世迷い言言ってるのかも知れません。

    返信削除