MMcodec01で使用しているTLV320AIC23Bの初期化コードが用意できたので、さっそくHFPとA2DPでの接続試験をやってみました。
まずはWT32の設定をヘッドセットデバイス相当のものに変更しておきます。

そしてWT32のシリアルポートで、ATコマンドを叩いてやることで発信/通話ができます。

A2DPの動作確認にはiPadのiTuneで音楽を再生することで確認。こちらも問題なく動作したのですが、ちょっと不便なのはサンプリング周波数の切り替え。WT32とMMcodec01はI2Sでつないでいますが、MMcodec01側をマスターとしています。WT32側では
サンプリング周波数を変更するために、マイコン側では次↓のようにコマンドを叩いて、CODECの設定を変更しています。

WT32側をマスター、MMcodec01側をスレーブにすれば面倒な切替え無しですむかとも思ったでのですが、どういうわけかちゃんと音声の送受ができません。何やら声は聞こえるのですがノイズに埋もれた感じです。フレーム同期がちゃんと取れていないように思われます。原因は判明していないのですが、WT32をスレーブにすれば何の問題も無いので、この設定で実験を続けることにします。
まずはWT32の設定をヘッドセットデバイス相当のものに変更しておきます。

そしてWT32のシリアルポートで、ATコマンドを叩いてやることで発信/通話ができます。

A2DPの動作確認にはiPadのiTuneで音楽を再生することで確認。こちらも問題なく動作したのですが、ちょっと不便なのはサンプリング周波数の切り替え。WT32とMMcodec01はI2Sでつないでいますが、MMcodec01側をマスターとしています。WT32側では
SET CONTROL AUDIOコマンドによりスレーブ側動作としています。
SET CONTROL CODECコマンドではサンプリング周波数を44.1KHzに設定していますが、この周波数はA2DPにおけるサンプリング周波数となります。HFPでの通話時には8KHzが固定的に使用されるようです。そのため、MMcodec01側の動作もA2DP使用時には44.1KHz, HFP使用時には8KHzに設定しなおしてクロックを供給してやらねばならないことがわかりました。
サンプリング周波数を変更するために、マイコン側では次↓のようにコマンドを叩いて、CODECの設定を変更しています。

WT32側をマスター、MMcodec01側をスレーブにすれば面倒な切替え無しですむかとも思ったでのですが、どういうわけかちゃんと音声の送受ができません。何やら声は聞こえるのですがノイズに埋もれた感じです。フレーム同期がちゃんと取れていないように思われます。原因は判明していないのですが、WT32をスレーブにすれば何の問題も無いので、この設定で実験を続けることにします。