2021年4月14日水曜日

SANYO LC7881 DAC その5 (PIC32MX編)

前回のPIC32MX基板にマイクロチップ社のデモプログラムを
入れて試した。基板にPICKITを刺そうと思ったら、ICとUSB
コネクタに干渉した。仕方がないのでコネクタを斜めに曲げた。

マイクロチップ社のデモプログラムはデモボード用なので、
PIC32MX+AK4645Aの組み合わせで動く様になってある。
AK4645AとはI2Cで接続され、AK4645AがBCKとLRCKを
発生させる仕様である。AK4645A無しでI2S信号出す様に
プログラムを修正する必要がある。

プログラム修正する場合、修正しすぎると元のプログラム
からかけ離れて問題が発生した時に戻れなくなる事だ。
だから、最初は最小限の修正でI2Sを出せる様にする事だ。
実際にプログラムを修正し始めて3日で鳴る所まで来た。
追加修正行が数行程度と、行を無効するコメントくらいで
済んだ。

ちゃんとWindows 10で認識した。

I2SのPCM5102Aと、メインシステムのI2S→PCM変換
回路でPCM1704が鳴ったのでちゃんと32bit I2Sで出力
されているだろう。

動作するにはしたのだが、何点か問題がある事も判った。

I2Sは出る様になったのだが、Windows 10で操作すると
ミュートとボリュームが使えない。ミュートしても音が
出るし、メインボリュームで音が小さくならない。この
処理はAK4645Aで行っていたのかもしれない。Windows
側でボリュームが下がればWAV信号を小さくすると思って
いたが、場合によってはPIC32MX内部でデータ計算をする
必要があるかもしれない。

次にLC7881を使う予定であるが、96fsか192fsができれば
良かったのだが、MCKからBCKを作る時に内部で分周する
場合は2の倍数しか使えないことが判った。つまり6分周に
なり384fsになるので、48kHz以上の再生は厳しい。

鳴らすだけなら問題ないとも考えられるので、とりあえず
次に進む予定だ。

プログラム修正は面倒だが、ここまでは動作して当たり前
の話だ。ここからが難関のCPLDを使ってビットシフトを
VHDLで書く事だ。

とりあえずCPLDでVHDLを書き込んで動作確認できる様に
LC7881基板とLPF基板を作った。

0 件のコメント:

コメントを投稿