エチュードの頃

思いつきを書きとめておくために。

ADB to USB converter on Da Vinci(3/3)

2012-10-05 | PC・小物


とりあえず完成写真を。
マイクロカセットのケースに入れてみたら、キー入力時にLEDがチカチカするのが見えて、どことなく昔のYMOテクノバッジを連想させる雰囲気に。
キーボードがデカいおかげで、これ見よがしに余白部分に置いてみてもあまり邪魔に感じません。



さて。
hexファイルの書き込みをどうするか。
でした。

恐らくUSB直結(内蔵ブートローダ)書き込みに頼らず、AVRライタでの書き込みなら何も問題はなかったのではないかと思います。
しかしここではマイコンいじりではなく、ただ単にADB→USB変換器が欲しかっただけなので…
が、そのわずかな面倒を避けたばかりにそれ以上に苦労する羽目になったと。


avrdudeというコマンドで何とかいけそう、と知ったのは
マイコン風雲録: guidude: Arduinoに任意のHEXファイルを書き込む。 AVRライタ不要
という記事から。

本文に
「AVRライタ不要でArduinoに任意のHEXファイルを書き込める」
とあり、avrdude.exeの実行例が出ています。

自分の環境に適合させるため、引数の使い方をあちこちで調べまくり

avrdude.exe -c avrispmkII -P COM5 -p m32u4 -b 115200 -u -e -U flash:w:"adb_usb.hex":a

と実行してみましたが、そんなに甘い筈もなくエラーメッセージが。
各パラメータをいろいろ変えて試してもダメ。
そうかひょっとして、と実行前にボード上のリセットスイッチを押してみてもやはりダメ。


格闘に費やすことさらに数日。が、状況は変わらず。
ブルーな気分でネットの情報を漁っていると、設定でArduino IDEでの書き込み状況を逐一表示できることが判りました。

ファイル~環境設定メニューで
「より詳細な情報を表示する:□コンパイル □書き込み」
の両方にチェックを入れ、サンプルのblinkをアップロード(コンパイル→書き込み)する際の内部作業を表示させてみます。

すると一連の状況表示の中に次の行を発見。

D:\arduino-1.0.1-windows\arduino-1.0.1\hardware\tools\avr\bin\avrdude -CD:\arduino-1.0.1-windows\arduino-1.0.1\hardware\tools\avr\etc\avrdude.conf -v -v -v -v -patmega32u4 -cavr109 -P\\.\COM5 -b57600 -D -Uflash:w:C:\Users\(ユーザ名)\AppData\Local\Temp\build(任意の数字列).tmp\Blink.cpp.hex:i

なるほど。
-Cオプションでコンフィグファイルを指定していたのはともかく、「-v」を4回も付加する事情がよく解りませんが、とにかくこの書式をそのまま使えばうまく行きそう。


リセットスイッチを押し、おもむろに先のコマンド(最後の-Uオプションのhexファイル指定のみ修正)を実行。

(実はこのリセットとコマンド実行のタイミング合わせが意外と難しく、最初は偶然うまくいきましたが後で追試するとなかなか再現できませんでした。早過ぎても遅過ぎてもCOMポートが認識できずエラーになってしまいます)


おお…
何やらバーッ、バーッと大量の文字列が次々と表示され、最後に

avrdude done. Thank you.

とメッセージが出て完了。



早速ADBキーボードにつないでみる。

よしきた。
動くではないですか。
そもそもちゃんとしたソースなのだから動くのが当たり前、と客観視できないこの感動感。

そして何かキーを押すたびにボード上のLEDが瞬き、ソースの修正も正しかったことも分かりました。


ここでようやく上の写真になるわけですが、実はその前にもうひとつ問題が。
Da VinciとADBポートを短い線でつないでテストしていた時は大丈夫だったのに、S端子のケーブル(全長50cmくらい)でつなぐと無反応になってしまいます。
デバッグ用LEDも光らない。


ソフトの解説ページには
「大抵の場合データラインにプルアップ抵抗が必要です」
とありますが、純正のコイル状ケーブルを使うつもりがなかったので安心し切っていました。
しかし必要とあらば、早速手持ちのジャンク基板から10kΩ抵抗を取り外して。
+5Vとデータ(F0ポート)の間にかませると無事に動き出しました。



ところでS端子のケーブルですが、手元にあった物はADBとPowerON(S端子でのY・C GND)が内部でつながっていたので、念のためPowerONピンを除去しておきました。



見辛い写真ですが、コネクタ内の右下のピンですね。



その後、この文章を打つのに使ってみた感想。
ネット上で評価する意見がよく見られるだけあって、軽いタッチながら適度なストローク量がありなかなか快適です。
(自分で持っていたのに何故今さらの評価かというと、当時は置き場所に困らないコンパクトなApple Keyboard II(M0487)ばかり使っていたせいです)
接続先がMacでなくWinなので機能キーの挙動が一部異なったりしているわけですが、そのへんの調整はまた後のお楽しみということで。
当面はタイピングの心地良さに存分に浸ることに致します。



なお今回の製作にあたっては、本文で触れた以外にもたくさんのサイトに知恵を授けて頂いたのですが、例によってその時々で情報を探すのに必死過ぎてどこを訪ねたのかほとんど分からなくなってしまいました。
無償で情報を提供して下さっている有名無名の皆様に感謝致します。
そして何よりも、この変換プログラムを作られた方に最大限の敬意を表します。



(追記)
改良版がリリースされたので入れ替えてみました。→こちら

コメント    この記事についてブログを書く
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« ADB to USB converter on Da ... | トップ | ダイシン百貨店に行ってみた »
最新の画像もっと見る

コメントを投稿

ブログ作成者から承認されるまでコメントは反映されません。