8. USBホストのサンプルを動かしてみる

先の「7. USBホストプログラムの作成(その1)」では、その後USBメモリをアクセスするプログラムを記述してみたものの、 なぜか「アタッチ処理」で止まってしまい、USBメモリをうまく認識してくれません。
その後いろいろと試してはみたものの、これまでは進歩無し。

そこで一端保留し、harmony に付属のサンプルプログラムを動かしてみることにしました。



USBメモリ関連のサンプルとしては、MSD_BASIC(ドキュメント help_harmony_v1_02_00.pdf の P.13 [USB Host Applications]->[msd_basic] ) というのがあるのですが、自分が購入した PIC32 USB Starter Kit III はサポート外(?)的な記述が・・(^^;)

そこを強引に PIC32 USB Starter Kit II 用としてプロジェクトを開き、CPU型番を変更。
(幸い、LEDのポートは、Kit II と Kit III で同じ)
さらに、コンパイルでエラーが出た GONFIG 設定の記述をコメントにしてデバッグモードで書き込み。
APP.C をトレースしてみると、ちゃんとアタッチ処理も正常にできている!
ならばと、リリースモードで再コンパイルして書き込み/実行しみてると、無事にUSBメモリにテキストファイルが生成されました。

なんだ、PIC32 USB Starter Kit III でも動くじゃないか・・・

とりあえず回路的にはUSBメモリにアクセスできたので、安心して(?)自分のプログラムの問題点を調べられます。
とはいっても、プログラムの大半を Harmony ライブラリィにまかせているので、Harmony 設定方法のミスのような気がしますが、 残念なことに、動いたサンプル MSD_BASIC は、Harmony のCONFIG設定を使用していないようで、設定を確認することができません。
これが確認できたら助かるのですが・・・



※補足事項:

・一部認識しないUSBメモリがありました。8GB以下のUSBメモリはOKでしたが、何かのイベントでもらったメーカー不詳の 58GB(?)メモリでは、アタッチ処理がうまくいかず、止まってしまいます。(FATの問題?)
※ 2015.02.07 追記:アクセスできないUSBメモリは、FAT16/32ではなく、NTFSでした。

・ドキュメント help_harmony_v1_02_00.pdf は、記載内容が古いらしく、あまりあてにならないようです。(^^;)
ライブラリィを使う条件として、あのファイルがいるこのファイルがいる等の記述がありますが、 どこにも存在しないフィルが必須と書かれていたり(ネットで調べると、そんなファイルはとうに使われなくなったというFAQがあったり) かなりいいかげん・・・
デバッグに当たっては、ドキュメントのミスも配慮する必要がありそうです。



※写真の黄色い蓑虫クリップは、JP1をショートするためのもの。JP1をショートしないと、USBメモリに電源が供給されない。
※使用している電源は、USBコネクタ型のACアダプタ。電源容量が足りないと誤動作するかもしれないので注意。