マイコン工作実験日記

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

Bluegiga - A2DPでMP3再生

2010-06-02 00:25:29 | Weblog
ペアリングまではできたので、いよいよA2DPでMP3プレーヤで再生した音声をヘッドフォンに飛ばして聞いてみます。

ディフォルトでは音声パスはアナログの入出力に廻るようになっているので、これをI2Sに向けます。I2Sは master/slaveのどちらにもなれるのですが、MP3プレーヤではボード上のCODECがマスターになっているので、WT32はスレーブに設定。そして、ステレオのモードに設定しておきます。

A2DPにはオーディオを送出するsource側と受け手となるsink側がありますが、MP3プレーヤはもちろんsource側です。A2DPのプロファイルを許可して、いったんリセットをかけます。どうやら、プロファイル設定を変更したら、いったんリセットをかけないと有効にならないようです。



リセット後、callコマンドでヘッドフォンに接続をかけてやります。"A2DP STREAMING START"のイベント表示とともに、耳元から音楽が流れ始めました。LISTコマンドで接続状況の確認、CLOSEコマンドでリンクの切断がおこなえます。

ここまで、MP3プレーヤ側のソフトウェアには一切手を加えていません。LPC2388がI2SでCODECに送出した音声データをWT32でも受けて、WT32が設定に基づいてA2DPで飛ばしてくれています。SETコマンドで設定した内容は、電源を切っても覚えていてくれますが、このままではヘッドフォンへの接続のためにCALLコマンドの入力が必要です。

この課題に対する対処としては、AUTOCALLというWT32側から自動的に継続して接続を試みてくれるという機能も用意されているのですが、MP3プレーヤ側から接続を起動しなくても、ヘッドフォン側から接続をかければいいことに気が付きました。DR-BT140QPでは、ジョグダイアルのボタンを押すことでA2DPの接続を開始することができます。この時、WT32側では↓のようにRINGイベントが表示されます。



やはり、ひも無しは快適ですね。このようにWT32は一度設定させしてしまえば、マイコン側から何も制御しなくてもA2DPを飛ばすことができることが確認できました。今回はI2Sを使っていますが、A/DやD/Aも内蔵しているのでアナログでの入出力も可能です。