2012年1月9日月曜日

USB Host Shield Library 2.0


※USB Host Shield Library は現在、新旧ともに、Arduino 1.0 IDE に対応していないため、旧バージョン (Arduino 0023) で行なっています。(※1/11 追記) Library 2.0 が Arduino 1.0 IDE に対応しました。

当サイトでは Sparkfun の USB Host Shield とArduino Uno (R2) を使って、ADK (Android Open Accessory) を構成しています。
手順はこちらで書いた通り、side2.jp さんのサイトに準じています。


今回は、USB Host Shield Library を 2.0 に変更してみました。

USB Host Shield はCircuits@Home のOleg 氏によるプロダクト。
日本で購入が容易な Sparkfun のものは、その互換製品です。
(おそらく、旧バージョンのUSB Host Shield と互換)

Circuits@Home の USB Host Shield は2.0 と言うバージョンになっており、Library も2.0 が最新バージョンです。
このバージョンは ADK のLibrary も統合されています。
しかし、Sparkfun のシールドでは、このバージョンのライブラリでは動作しません。

回路図を追ってみると、、、

どうやら、リセットが変更になっているのが問題らしい。
・旧USB Host Shield と、Sparkfun のシールドでは、D7 pin (Sparkfun の旧バージョンはD8)を使って、Max3421e チップをリセットしている。
・USB Host Shield 2.0では、Arduino 本体のリセット信号を使って、Max3421e チップをリセットしている。

これをハード的に修正(D7 から74HC4050 に伸びるパターンをカットして、RST に接続)。
この修正Sparkfun シールドで、新旧USB Host Shield ライブラリが動作することを確認しました。(写真はSparkfun の旧バージョンなので、以前にD8 <> D7 の入れ替えをやっていました。修正はD7 の方だけでOK です。)

新ライブラリ旧ライブラリは名称が被っているため、共存する事はできない。(旧バージョンはlibraries フォルダから出して、保管しておくことを推奨)
・新ライブラリはADK のライブラリを統合しており、ADK を使うための表記方法が異なる。
(旧ライブラリ用に書かれたADK 対応プログラムのソースは新ライブラリでは動作しない。)

と、新たなトラブルの種を増やしてしまった感がありますが、最新版のライブラリはUSB ハブに対応したり、様々な改良点があります。
私は Oleg 氏のサイトで公開されているサンプルコードを試したいがために、このライブラリを導入しました。
それらも今後、紹介して行きたいと思います。

0 件のコメント:

コメントを投稿