マイコン工作実験日記

Microcontroller を用いての工作、実験記録

ディスクリプタの読み込み

2009-05-26 00:39:29 | USB
LPC2388のUSBホスト機能を使って、USBスピーカのディスクリプタの読み込みと簡単な解析を試してみました。



NXPの提供するUSB LiteのサンプルはMass Storage Device用にできていますが、Enumerationの手順は同じですから、基本ロジックはそのまま拝借。Config Descriptorを読み込んだところで、その解析だけAudio Device用に書き換えてみたようなものです。もうひとつの変更点は、割り込み待ちの処理。USB Liteは割り込みは使っているものの、RTOSは必要としないように作られています。そのため、ディスクリプタの読み込みに使われるControl転送が終了するのを、フラグ変数のポーリングによって待つようになっていました。これでは他のタスクが動かないので、TOPPERS/JSPのSemaphore機能を使って待ち合わせるように変更してあります。

Configurationの設定まで動きましたので、すでにデバイス自体は有効になっているのですが、実際にスピーカを鳴らすには
  1. 必要であれば、ミュートのオフ、再生ボリュームの設定
  2. エンドポイントを持たないインタフェース(IF #1, alt 0)から、実際にPCMを出力できるエンドポイントを持つインタフェース(IF #1, alt 1)への切り替え。
  3. 再生するPCMデータの送出開始
という手順がまだ必要です。