W-SIMとつないだTLV320AIC3253を動作させるべく、しばらくPurePath Studioと戯れていましたが、なんとか期待する動作をさせることができました。
PurePath Studioの設定内容について記事として書き残しておきたいところですが、PurePath Studioのソフトならびにその説明書入手のためにはユーザ登録が必要であり、その具体的な内容については公開してはいけないようです。そこで、ここでは変更が必要であった箇所と、作成したprocess flowの概要についてのみ記しておくことにします。
まずは、FrameworkのSystemSettingsCodeプロパティの変更内容について。
Process flowのダウンストリーム側の流れは、
アップストリーム側は、
オーディオ・インタフェースで使用する信号の形式にかかわらず、PurePath Studio上ではI2Sというコンポーネントでデジタル・オーディオ・インタフェースを表現しています。
PurePath Studioを使ってみてわかったことのひとつに、TLV320AIC3253と3254の違いがあります。3253は3254からアナログ入力の端子を減らすことによりピン数を少なくしているだけかと思っていたのですが、miniDSPのあたりにも違いがあるようです。PurePath Studioで3254を使ってフローを作成する際には使える部品が、3253を選択すると使えなくなってしまいます。どちらのデバイスもサポートできる命令数の上限は同一だと理解していたのですが、miniDSPの命令の詳細についてはデータシートやAP Noteを読んでも一切説明されていないので全くわかりません。ユーザとしてはPurePath Studioを介してしかminiDSPを扱うことができません。そのため、PurePath Studioで見る両者の違いがデバイスの提供する機能/容量に起因するものなのか、それとも単にPurePath Studioの対応が不完全なのか判断する材料にも不足しています。ともかく、3254を使っていれば機能的な制約を受けずに済むようですので、折をみてCODECをTLV320AIC3254に変更することも考えてみた方が良さそうです。
PurePath Studioについては、がんばって作ってあるとは思うのですが、やはり説明資料不足という印象です。マニュアルがあるにはありますが、個々の機能部品(component)の説明が欠けているために、実際にはhelp機能に頼るしかありません。このあたりは、今後のバージョンアップによって改良されていくことを期待したいものです。
PurePath Stuidoではデバイスの設定ならびにminiDSPへダウンロードする一連のデータをI2C経由で落とす一連のデータとして生成することがでます。C言語のヘッダファイルの形式で生成することもできるので、アプリからはこれをインクルードして、使用することができます。生成されるデータはそれなりの量になるようで、今回の例では、およそ4500回のI2Cレジスタへの書き込みが必要となりました。
PurePath Studioの設定内容について記事として書き残しておきたいところですが、PurePath Studioのソフトならびにその説明書入手のためにはユーザ登録が必要であり、その具体的な内容については公開してはいけないようです。そこで、ここでは変更が必要であった箇所と、作成したprocess flowの概要についてのみ記しておくことにします。
まずは、FrameworkのSystemSettingsCodeプロパティの変更内容について。
- W-SIMからの音声信号はLong frame形式のPCM信号なので、AIC3253側のオーディオインタフェースをDSP形式16ビット長に設定変更。W-SIMからのPCM信号は8ビットしかありませんが、不要部分はminiDSPの処理で無視してもらいます。
- 内蔵LDOを使用するように設定
- 12MHzのMCKで動作するようにPLL設定を変更。
- Digital Micを使用するようにピンのコンフィグならびにADCへのルーティング
Process flowのダウンストリーム側の流れは、
- I2Sモノラル(Left)からの入力をu-Lawデコーダにつなぐ。
- デコード結果をsplitterにより2チャンネルのオーディオ信号に変換。
- それをinterpolaterにつなぐことでヘッドフォンから出力。
アップストリーム側は、
- Decimatorから得られるデジタルマイクからの信号を、mixerによりモノラル化。
- Biquadフィルタを使ったハイパスフィルタにより80Hz以下の信号成分を減衰。
- u-Lawエンコーダを通した結果をI2Sモノラル(Left)へ出力。
オーディオ・インタフェースで使用する信号の形式にかかわらず、PurePath Studio上ではI2Sというコンポーネントでデジタル・オーディオ・インタフェースを表現しています。
PurePath Studioを使ってみてわかったことのひとつに、TLV320AIC3253と3254の違いがあります。3253は3254からアナログ入力の端子を減らすことによりピン数を少なくしているだけかと思っていたのですが、miniDSPのあたりにも違いがあるようです。PurePath Studioで3254を使ってフローを作成する際には使える部品が、3253を選択すると使えなくなってしまいます。どちらのデバイスもサポートできる命令数の上限は同一だと理解していたのですが、miniDSPの命令の詳細についてはデータシートやAP Noteを読んでも一切説明されていないので全くわかりません。ユーザとしてはPurePath Studioを介してしかminiDSPを扱うことができません。そのため、PurePath Studioで見る両者の違いがデバイスの提供する機能/容量に起因するものなのか、それとも単にPurePath Studioの対応が不完全なのか判断する材料にも不足しています。ともかく、3254を使っていれば機能的な制約を受けずに済むようですので、折をみてCODECをTLV320AIC3254に変更することも考えてみた方が良さそうです。
PurePath Studioについては、がんばって作ってあるとは思うのですが、やはり説明資料不足という印象です。マニュアルがあるにはありますが、個々の機能部品(component)の説明が欠けているために、実際にはhelp機能に頼るしかありません。このあたりは、今後のバージョンアップによって改良されていくことを期待したいものです。
PurePath Stuidoではデバイスの設定ならびにminiDSPへダウンロードする一連のデータをI2C経由で落とす一連のデータとして生成することがでます。C言語のヘッダファイルの形式で生成することもできるので、アプリからはこれをインクルードして、使用することができます。生成されるデータはそれなりの量になるようで、今回の例では、およそ4500回のI2Cレジスタへの書き込みが必要となりました。