コーデックへの初期化コマンドチェインの内容はこうなっています。コントロールワードに含まれるインデックスでポイントされる13個の8ビットレジスタにデータをセットしていきます。コード上はプログラムメモリ領域に埋め込まれるので24ビット幅データですがシリアル送信レジスタは16ビット幅なので下位8ビットはダミーで切り捨てられます。
このなかで重要なのはDSPとのインターフェースを決定するinterface configurationとmiscellaneous informationでこれはサンプルコードそのままにしておきました
data format registerはオーディオデータフォーマットとサンプリングレートを設定します。サンプルコードのままだとfs=8kHzですがCFS=6に設定してやるとステレオ16ビットリニアPCM、fs=48kHzとCDを上回りDATに匹敵する高音質にすることができます
これでループバックプログラムの準備が整ったので、いよいよ実行。入力信号としてラジオの音声を入力し、出力をモニタスピーカにつないでみます
聴いてる感じでは音質には全く遜色なし。アナログで直結してるのと変わりません。電源系統分離の効果があったのか心配だったノイズも気になりませんでした。
ch1:入力信号、ch2:出力信号
ところでラジオを聴きながらCPU回路の実験をしていると、ボードが起動したとたんラジオの音声がスッと消えることがあります。いままで作成したCPUボードが原振16MHzというのが割と多く、且つ、つけていたラジオがTOKYOFM(80.0MHz)だと16MHz矩形波の奇数次高調波(5次高調波)が16×5=80でちょうど放送波と合致するのですね。それ以外の組合せでは全く問題ないのですが、基板むき出しでそうとう妨害波をまき散らしているようです