ハードウエアはとくに問題ないようなので、こうなったらやっぱり試聴したくなりますね。ヘッドホンを接続してお気にいりのCDをならしてみましょう。このヘッドホンに用いたバッファーアンプのLME49600は大容量でありがなら、きわめて高帯域なのでヘッドホンにはもったいないデバイスですが、それを使用した甲斐もあって鋭い音を聞かせてくれます。いや?コンデンサに高品質なものをつかったからかな?まあ、どちらでもいいでしょう。ヘッドホンを接続して試聴です。本格的にソフトを組みましょう!ハードウエアは問題ないようなので、あとは安心してソフトを組んでいきましょう。今回のSimpleEntryDACではPICに大容量のPIC16F1938を用いるので、結構なソフトが組めます。この基板ではLCDのバックライトもソフト制御しているので、操作後はLEDを消灯することもできるようにしましょう。LEDの明るさって目につきますからね。2016.10.1こまかいチューニングが残っているとこがありますが、骨格はできあがりました。PICにはPIC16F1938を使いましたが、ROMの使用率は69%です。PC16F1938はPIC16F886の倍のROM容量があるので、PIC16F886換算では138%ですから完全にオーバです。それだけ機能を盛り込んだことになるのか、それとも単にソフトの書き方が不味いのか(笑)。こんな感じでSRC4137と接続しながらソフトの製作を進めています。ソフトの機能はこんな感じです。ROMの容量も大きいので、入れてみたかった機能の一つであるテキストエディト機能もいれました。これはオープニングのタイトル表示と、入力信号表示のタイトルを任意に変更できるようにしました。いつ製作したとか、何をつないでいるかなどの情報を表示すると備忘録になるでしょう。出力ゲインが表示されます。右下のASは出力リレーの状態です。A:ANALOG出力リレー動作中S:ヘッドホン出力リレー動作中。ヘッドホン出力のリレー制御です。ONにすればヘッドホンが使えます。電子ボリュームの切り替えです。VRを使う場合とSW(ボタン)を使うかを切り替えられます。controlled)2#でSWを選択した場合のボリューム設定です。設定ボタンは長押し(連続入力)対応です。DACのフィルターの設定を行います。遮断特性のなだらかさ(SLOW,SHARP)を選択します。DACのフィルターの設定を行います。時間遅れを(Short、Normal)を選択します。DACのフィルターの設定を行います。遮断特性の超なだらかな特性のON/OFFを選択します。DACの音調を選択します。DSD入力時のカットオフフィルタを選択します。BypassDSD入力時の電子ボリュームの使用有無を選択します。Pathでは電子ボリューム機能は有効です。DSDのDATAが連続してゼロの場合に出力MUTEをかけるかどうかを選択します。Pageで入力をPORT-0を選択した場合の入力フォーマットを選択します。16/24Bit)、あるいはDSD入力のどれかを選択します。Pageで入力をPORT-1を選択した場合の入力フォーマットを選択します。16/24Bit)、あるいはDSD入力のどれかを選択します。DACの出力信号の位相を設定します。Invertedを選択する出力信号位相が反転します。電源立ち上げからMUTEリレー解除までの時間を指定します。内部設定処理に必要な時間を除いているので、おおむね表示+1秒が立ち上がり時間になります。0secを選択すると、出力にポップノイズがでます。バックライトの表示制御です。常に点灯、常に消灯、ボタン操作が終わってから5,10,30秒後に消灯を選択できます。消費電力の大きなディジタルラインの電源電圧を監視しています。絶対電圧とともに、起動時の電圧に対する現在の出力電圧レベルを%で示しています。この値が90%を下回った場合には、即座にシャットダウンをかけます。オープニングタイトルおよび入力選択表示のテキストエディターを起動します。ソフトのバージョン情報です。2016.10.5念のためPCM/DSD入力端子を両方ともつないで動作確認です。片側はコネクタではなく基板用のコネクタをつかってばら線でつないでいます。PCM/DSD入力の最終確認です。光をつかうことはほとんどないので、光出力を出すものを探すのが大変でした(笑)。結局はかなり昔につかった光送信モジュールをつかってFFASRCのディジタル出力を光に変換しました。久しぶりに光をつかってみました。光送信モジュールはだいぶ昔に作ったものを引っ張りだしました。2016.10.5ソフトはほぼ完成してあとはチューニングです。なにをチューニングしているかというと、操作中のノイズをできるだけ減らすような工夫です。いうのも信号を切り替えるときに若干ポップノイズが出ます。これはDAC素子の仕様からも避けられないのですが、同軸やOPTICALなどのSPDIF入力間の切り替えではとくに気になるほどではありません。気になるポップノイズはSPDIFと未入力状態のPCM/DSDとの切り替えのタイミングです。いうのもSPDIF入力は未入力であった場合はDIX9211が未入力を検知してDACへの信号出力に水晶発振によるクロック信号を供給してくれます。それに対してPCM/DSD入力の場合は、未入力であった場合にはDACへの出力にはクロック信号がでていきません。DAC(AK4490)はクロック信号を受けていれば、アナログ出力はVcc/2の電位で一定になるのですが、クロック信号がDACに供給されないと何が起こるかといえば、DAC(AK4490)はリセット状態になりアナログ出力がフロート状態になります。すれば、OPA差動合成出力のレベルがSPDIFを受けている状態とは大きくずれてしまって、おおきなポップノイズを発生させてしまいます。このときのポップノイズを避ける必要があるのですが、その手立てとしてPCM/DSD入力が選択されたときに、クロックの有無を判定して、もし未入力であれば入力選択を拒否して、SPDIF入力に強制的に切り替えするようなロジックを組み込もうとしています。PORT自体の入力をうけつけるかどうかのメニュー設定も追加することにしました。これができれば完成です。完成!さらに色々と考えてメニューが2つ増えました。製作マニュアルもできました。SimpleEntryDac4490.pdf今宵は音楽を聴きまくりましょう!さて、PICにとりついていた開発環境をとりはずし、新品のPICにプログラムを書き込んで仕上げです。PICは右を向いているので、シールの読みが反対になっています。開発環境を取り外してすっきりしました。(つづく・・かな?)。