空を見上げて
トップページ » 電子工作 » USB » USBデバイスの製作(10)

USBデバイスの製作(10)

紆余曲折はあったものの以下の2つは完成し無事動作した。
USB-IOより若干高いが、機能も上だし生産中であるのが心強い。

1)汎用USB-IOもどき
入力7bit、出力7bit、シリアル1ch(2bit)

2)汎用USB-IOもどき+マスストレージ(SPI使用)
・入力7bit、出力7bit、シリアル1ch(2bit)
・マスストレージ(今は2MByte)

さて、アトメルのサンプルにはもう1つあって
series2-usb_software_library_template-2_0_0-doc.zip
という雛形がある。
(他にも別のサイトではオーディオのサンプルもあって興味深いのだが)

眺めてみるとこれはどうもBulk転送のサンプルのようである。
考えるとUSB162はどの程度の転送速度が限度なのかよくわからない。
USBの規格ではなくある程度のソフトを走らせた場合である。
バスは出ていないがシリアル・SPIはあるし、ポートとしてなら8+8+5=21bitある。
つまりはそういう幅で入出力できる素子であることには違いない。
EZ-USBでは主にBulk転送を使ったが、C8051がAVRと思えば似たようなことはできそうである。

そこでバルク転送の雛形にチャレンジする。
ところがサンプルではまりまくった。(TT)
周波数のパッチをあててビルドし、つなぐと「不明なデバイス」になりドライバすら要求してこない。
ディスクリプタを見直して何度もトライしたが症状は変わらない。

ずっと追っていくと
template\demo\template\usb_descriptors.h

// USB Device descriptor

#define EP_CONTROL_LENGTH 64
があるが、コントロールの長さが64ってのはおかしい。

#define EP_CONTROL_LENGTH 8
にしてやるとちゃんとドライバを要求してくるようになる。(^^v

さてそうなるドライバがいるのだが、アトメルが提供しているわけではない。
そこで汎用ドライバである柏野さんのUUSBDを導入する。
infを作ってインストールする。
ここでめでたくUUSDBデバイスになりUUSBD.DLLが使えるようになる。

by   at 09:00
トラックバック
このエントリーのトラックバックURL:

トラックバックはありません

コメント

コメントはありません

コメントを書く




保存しますか?


(書式を変更するような一部のHTMLタグを使うことができます)


Please enter the security code you see here