p1020972

PCM-501ESの驚愕音質とSPDIF化改造

Pocket

PCM-501ESのSPDIF化ですがかなり大変でした。内容を簡単に報告しますと、デジタルレシーバICの選定に失敗したので予想よりも遥かに大変な作業でした。この時代のDACを駆動するためには現代の64fsと互換性のない32fsのタイミングでデータを送る必要があって、それに対応していないことが難しかった理由です。

32fsrj

結局CPUで信号を作り直しになりました。このあたりのチューニングに費やした苦労が大半です。72MhzのCortex M3ですが84Mhzにオーバークロックして本当にギリギリです。そのあたりの改造の詳細は最下部に記載します。

SPDIF化の改造で特に見たかったデータはノンオーバーサンプリング=NOS+アナログフィルター=AFでどこまでの波形を出せているかです。デジタルフィルター=DFにはないAFの優位性には2つの仮説があったのですがそれは波形を見て音を聞いてみなければ評価ができません。

NOS-DACとは思えないきれいな波形

20ksine

結果としてはNOS+AFでもきれいな補完が出来ていることがわかりました。20kHzのサイン波も正しい形状と振幅で再現されています。1kHzのサイン波と比較して20kHzで0.3dBしか減衰していません。NOS-DACで調べると必ず出てくるカクカクの波形とは全くの別物です!

waveform-png-68bd33cac004229fa83d04e8c890fd23

なぜ補完が必要なのかについてはこちらのページが参考になります。デジタルデータを正しく表現するにはデジタルまたはアナログのローパスフィルターが必要というお話です。

D-Aコンバータの高域特性を改善する
http://ednjapan.com/edn/articles/0607/01/news010_2.html

PCM-501ESではAFが搭載されていることを知っていましたが、DAC自体はNOSでしたからAF性能の限界でデジタル処理に比べ不完全な補完かと思っていたのですが、上記の通り本機は予想以上に素晴らしい理想に近い補完特性が得られています。

PCM-501ESは一応NOS-DACというカテゴリにはなりますが出力される波形は現代のデジタルフィルター+オーバーサンプルのDACと変わりません。NOS-DACという先入観では決して語れないDACということになります!

ただしこれはPCM-501ESの場合であって他の機種のフィルター性能ではこのようになっている保証はありません。NOS-DAC+アナログ簡易フィルターではこのようなきれいな結果には決してならないので注意が必要です。簡単な自作機でよくある低次フィルターを外付けしただけのNOS-DACと本機の設計思想は全くの別物です。

PCM-501ESの音質比較

p1030010

結論から言えばPCM-501ESは現代DACチップを使った製品よりも優れた実力を秘めたオーパーツ的製品です。下記に表として詳しく比較内容をまとめました。比較のために入力端子を相互入れ替えしたり設置条件を変えたりしましたし、休憩をはさみながらいろいろな曲を何度も聞き直しています。なのでそれなりに妥当な評価になっていると思います。

自作AK4497とGungnir以外については定番の高級機ではないでしょうか。PCM-501ES改は電源とオペアンプを変えた改良品です。標準の音は無印相当です。

pcm501es_compare

デジタル入力でPCM-501ESの本来の音を聞くとフィルターの甘いNOS-DACの雑味の多い音とは全く違う非常になめらかな音質です。こう書くと普通の良い音という風にも読み取れてしまいますがそうではありません。この高域の美しさは非常識なレベルです。ピントの合った繊細かつ詳細な高域という印象です。滲みがなく力強く緻密です。似たような音がする製品は現代のものでは殆ど無いように思います。

上記の表で高域の要素を2つに分けましたがこの2つは明確に別の要因です。この2つを両立しているのは唯一PCM-501ESのみという異常事態です。この部分は明らかに現代機が失った優位性で間違いないと思います。NOS+AFのDACと出会ったことで聴覚に新しい感覚が増えました。

まず高音の付帯音は高音にまとわりつく成分で、でている音そのものの質とは別です。これは本来出てはならないような、生では存在しない成分です。具体的に言えばシンバルがシャーンではなくジュワーとなるイメージです。

高域の解像度は付帯音とは全く別の要素、描写ディテールの部分で、この性能が低いと階調の粗い画像のようにちょっとデジタルっぽい荒い質感の音になります。ピントが曖昧で滲む印象があり見えるものが見えにくい感覚です。これは見える機材と比較しないとまずわかりません。現代の一般的なデジタルフィルターを搭載したDACチップはこの高域解像度性能はどれも同じだと思います。

自作AK4497も高域のクオリティについては自信があったのですが、正直高域のトータルの質はPCM-501ESのほうが良いです。AK4497では高域に行くにしたがって滲みがあり比較してしまうと描写の曖昧さを感じます。実際にPCM-501ESを使うとアナログ録音&アナログ編集とデジタルの差がわかりやすいですがAK4497で聞くとそんなに明確じゃなくなります。現代の録音と現代のDACは音の劣化が共通で同質なので違いが見えないのです。(正直見えないほうが幸せかもしれません)

これはdCSのdeliusも同様です。アップサンプラーのない単体では高域については上記比較機の中では最も滲んでいます。むしろ滲んだり霞んだ高域に僅かなサラサラが乗っていてそれが色気や雰囲気となっています。それが合う曲もあることを知っていますが、そういう音色面は安い製品でも出せる機種がありますし、それを言い出すとただの好みに終始してキリがないのでここでは評価しません。あくまで音的な基本性能だけを評価しています。もちろん劣悪な質感だとは決して思いませんし普通に聞けば上品な音なのですが純粋な描写性能については落ちると思います。

Gungnirは奥行きと透明感の評価は注釈付きですが○にしています。その理由は背景の透明感だけはAK4497を凌ぐ極めて優秀なレベルにあるからです。しかし余韻はかなり短いのでこの評価としました。その他の要素についても課題が多いです。この中では明らかにクラスの劣る性能です。

唯一高域情報量でアナログを上回ったのはDAVEのみです。そのかわり高域の質感には問題があります。最大の長所であるWTAフィルタ(超ロングタップフィルタ)があるのに高域の付帯音が多く成績が伸び悩む理由は回路のアナログ部の性能が不足している為と思われます。デジタル段のフィルター処理まではかなり理想に近いことをやっているのでPCM-501ESを超える高解像度の高域ですが、アナログ部が不完全で高域ノイズを垂れ流しています。このせいで高域の質感が台無しです。そのためトータルではAK4497以下の高音です。恐らくこのあたりをアナログでちゃんとフィルタリングすれば相当改善すると思います。しかし残念ながら現状では160万円定価の製品としては不完全としか言えません。

RCAout_DAVE_1Mhz
DAVE帯域外ノイズ

ということでPCM-501ESの高域描写力は現代的なほとんど全てのDACと比較しても全く引けを取らない素晴らしい音質ではないでしょうか。この音なら評価が高くて当然です。現代の100万円以上のDACをいくら持ってきてもこれ以下の製品のほうが多いでしょう。なにしろ普通のデジタルフィルタを使ったら出ない音だからです。高域だけでも独自の優位性があります。実際に音を聞いてみて本機が非常に高評価なのは正当評価だと思いました。

時代と価格を考えればとんでもない性能です。それは上記の比較機のラインナップを見れば明らかでしょう。

ここまでは高域のクオリティの話ばかりになりましたが他の要因についてもなかなか優秀です。AK4497比でPCM-501ESが優れているのは高域の質感のほかに全体的な音の安定感と駆動力です。測定してみるとPCM-501ESは出力の帯域内ノイズが多いので背景は曇って聞こえます。特に無改造の標準状態ではこの部分は現代ハイエンドと比較して大きく劣っている部分です。

このあたりは測定性能上のノイズが多いことが原因です。AK4497比でいえば数十倍の帯域内ノイズがあります。測定値を貼っておきます。全てにおいて現代機より優れているわけではないのでそこは注意が必要です。

100k_nosigPCM-501ES帯域内ノイズ

定位が悪いのはクロストーク性能です。ただ標準の電源回路は最低限なのでこれを自作のAK4497並にアップグレードしたらこれらの弱点も改善するはずと思って実際に後で電源を交換としたら予想通り改善しました。

まとめますとPCM-501ESは非常に緻密な高域描写能力を持ち、音数の多いときでも非常に安定感と駆動力のある音質です。駆動力が高いので当然ながら低域の伸びとか力強さもあります。そのかわり背景は曇りますので絶対的な空間描写力を要求するようなジャンルは苦手です。

ちなみにこの音の安定感の理由は集積度の低い古い半導体プロセスだからと思います。先日このための比較用にわざわざdCSのディスクリートDACであるdeliusを買いましたが、dCSはノーマルPCM-501ESよりも更に音の安定感は上でした。音数が多くても描写がぶれません。ただしΔΣ系なので高域のにじみや曖昧さはあります。ということでdCSは比較用としてはとても面白い機種でした。

AK4497は小さいICチップなのでこの駆動力、安定感の部分は一番劣っています。それでもAK4495とAK4497は専用プロセスや材料にも気を使っておりDACチップの中では力強い音が出ています。多分現行のICではこれらはマシな方です。以前に現代の代表的なチップの比較は概ねすべてやりましたので基本的な駆動力が弱い傾向は同じだと思います。なにしろそこの部分についてはAK4495とAK4497が一番良かったですので…。ということで今後も物理的サイズが小さく電圧の低い現代的ICの駆動力には全く期待が出来ません

PCM-501ESのその他の測定結果

1ksinePCM-501ES 1k サイン

1ksqr
PCM-501ES 1k 矩形

5ksine
PCM-501ES 5k サイン

5ksqr
PCM-501ES 5k 矩形

5m_nosig
PCM-501ES 帯域外ノイズ

DAVEとAK4497の参考測定値

全機種の帯域内ノイズは音声帯域外ノイズを除去するために20kと200kのLPFを併用して測定しています。それでもあえて100kレンジで測定している理由は20kレンジにするとプリアンプより後段で乗った帯域外成分が折返しで帯域内に入り込んでしまうためです。

RCAout_DAVE_1Mhz
DAVE帯域外ノイズ

rcaout_dave
DAVE帯域内ノイズ

rcaout_ak4497_1mhz
AK4497帯域外ノイズ

rcaout_ak4497
AK4497帯域内ノイズ

PCM-501ES関係のQ&A

補足しておいたほうが良いと思われる項目をまとめておきます。

  • NOS-DACは技術的に正しいのですか?

フィルターの有無が重要です。フィルターレスのNOS-DACは波形も周波数応答も正しくありません。そしてNOS-DACとひとくくりにすることは不可能です。世の中にはNOS-DACと言ってもフィルターレス、簡易フィルター、本機のような本格的多次アナログフィルター搭載機がありますので、これらはすべて別物として考えなければなりません。

正しさだけで言えば次のとおりです。多次アナログフィルター>簡易フィルター>フィルタレス

フィルターがないと20kHzのサイン波を正しく再現できません。フィルターレスが正しくないのはこれが理由です。NOS-DACでもアナログできっちり補完することが可能です。このあたりは自分も誤解している点がありました。

  • 現代のデジタルフィルターは作られた音なのですか?

アナログフィルターもデジタルフィルターも波形の補完が目的でどちらも同じです。補完のことを作られた音と表現するならNOS+多次アナログフィルターも作られた音になります。デジタル処理だけが作られた音と考えるのは誤りです。

そして補完することで20kHzサイン波を再現できます。これは「存在したと思われる波形」に近づけるための処理です。本当の正解は録音に使われたADCの特性に依存するので一つの補完が100%正解という保証は無いのですが、何もしない(フィルターレス)よりは補完されたものが「正解に近い可能性が高い」です。

  • アナログフィルターとデジタルフィルターはどちらが優れていますか?

デジタルの場合は演算速度や精度に制約があり、アナログは部品精度や部品点数の問題があります。中途半端なデジタル演算ならアナログのほうが優位です。しかしDAVEはデジタルでも高度な演算を行えばアナログを超えられることを示しました。デジタルは低コスト省スペースなので広く使われているのが現実ですし、アナログも簡易フィルターでは駄目です。

結局どちらが優位なのかはどれだけ真面目に実装しているかであって、デジタルだから、アナログだから駄目だということではないでしょう。

現代的ΔΣ型DACの課題

現代のDACチップでは古いDACと比較して

  • マルチビット > ΔΣ方式
  • NOS > OS
  • +-5V > 5Vまたは3.3V単一電源(低電圧化、低消費電流化)
  • 高度な演算回路なし > DF用の演算回路が一体化
  • 低クロック、ローレゾ > 高クロック化、ハイレゾ対応

このように変化しました。

OS+DF内蔵によって多次AFを必要としていた出力LPF回路部の低次化が実現されました。これは部品点数や設計難易度が下がりつつ特性を確保する手段です。

一見すると良いことに見えますが現実は良いことばかりではないということです。DFが高性能化してAFよりはるかに理想に近い高精度、高特性になっている筈なのに、です。自分はこれこそが実際の音質悪化の原因と考えます。

現代のDACはDF演算回路が内蔵しています。このデジタル演算回路が発生するノイズはICのピンから出力されます。実際にデジタル電源ピンを観測すればかなり大きなノイズが出ていることが確認できます。悪い基板設計だと安いオシロでも測定できる大きなレベルです。このノイズはDAC素子が期待する信号ノイズレベルよりはるかに大きいレベルです。構成だけを見ると時代とともにDF内蔵になってDACチップのノイズが増えているのに後段のノイズ抑圧性能は下がったのです。

もちろんリファレンス回路通りであればそれらは観測レベル以下、または帯域外に分布してるのですが、オーディオでは観測レベル以下の挙動、音声帯域外のノイズレベル、どちらも重要です。最後の音の差はそこの違いで決まります。現代のハイエンドDACチップはこの「スペック範囲外の要素を考慮に入れていない」ことが音質的問題を抱え続けている原因と考えています。

スプリアスのようなわかりやすいノイズなら観測できますが、広帯域のホワイトノイズだとノイズフロア以下に埋もれます。しかしノイズフロアの質による音質というものは存在すると考えています。とくに耳ではそれが顕著です。ノイズフロア以下の挙動で音に違いが出る典型例としては電源ケーブルやファインメット等のちょっとしたノイズ対策で音が変わることを思い出してください。測定値でみてもほぼ変わってなくても音はかわります

現代的DACの不完全性は測定特性では見えない領域に内包されており、それが「音質的に劣る領域」を作り出していると考えています。逆に古い積分形DACではスペック上は大きな問題点がありながら現代では失われた構成が独自の音質的優位性を生み出しています。この時代の手法の優位性を無視して、測定特性だけ見て「技術的に進歩」したのが現代DACです。そろそろ考え方を変えないといけないと思います。

先日ロームからも新型DACチップが出ましたが、まさに現代ハイエンドDACチップの問題点をすべて網羅したナンセンスな設計でした。おそらく測定至上主義が蔓延する限り、今後も大手半導体メーカーからこの問題に本気で取り組んだ製品が出ることは無いのだと思います。

積分形DACとディスクリートΔΣDACの駆動力を比較する

AK4497と比較したときにPCM-501ESには「音数が増えたときの描き分け」という重要な優位性がありました。この部分では明らかに自作AK4497を凌駕する性能です。果たしてこれは積分形DACの優位性によるものでしょうか?

これに対する仮設としてDACチップの物理的サイズ、そこからくる周辺パターンの配線太さ、そして許容電流量などの電気的余裕がその原因と考えています。小さいICに低い電圧を流しても真に力強い音は得られないということです。

駆動力が積分形DACの独自の優位性ではない反論にふさわしいのはdCSのDACが挙げられるでしょう。dCSは5bit2.8MhzというΔΣ系アーキテクチャですがDACそのものはICではなくディスクリート構成です。この駆動力の検証のためだけに実際にdCSのdeliusを入手して比較しました。

p1020028

本機はマルチビット系ではないですが、「音数が増えたときの描き分け」については非常に強力な能力がありました。この部分ではノーマルPCM-501ESと比較しても劣っていないどころかさらに優位です。

「音数が増えたときの描き分け」の音の差はちょうどパワーアンプの駆動力と似ています。現代的なDACは弱々しく駆動力が無いような音になっているということです。極端に言えばサイドチェーンコンプのような、音が出るたびに別の音がマスクされたりユラユラ揺らぶられるイメージです。こちらのAK4497はIC周りの設計はこれ以上ない状態です。電源回路性能はローノイズかつ高PSRRで直近配置、最適化されたコンデンサの品種選定と配置、4層基板でGND層と電源を多重確保していますがそれでもこの程度です。それはICそのものの低電圧化、微小プロセス化、低電力化、高集積化これらが関係していると考えています。

だからパターンや素子の電気的スペックに余裕のあるディスクリートDACならば駆動力が高い音がするという仮説を立てて、実際にそのような製品を入手して比較しました。この仮説は概ね正しそうです。もちろんそれ以外の電気的特性も重要です。最後の差がそこになるというお話です。適当な設計ではどのようなアーキテクチャの素子を使ったところで弱々しい音しか出ないでしょう。

このことからわかるのは究極を目指すならば現代のDACチップは駆動力の観点では駄目だということです。小さいサイズのチップに大電流を流しても真に力強い音にはならないということです。

現代型マルチビットDACの課題

積分形DACはなくなりましたので現在残っているマルチビットといえば抵抗ラダーのR2Rです。最近各所でも見かけます。これをいくつか試したところではMSB-DACを除くR2R-DACはΔΣ型より高音の描写は荒いです。今回の積分形DACのような高解像度の音は全く出ていません。高域の付帯音は少ないですが解像度は高くありません。トータルで高域質感はR2Rではまだ大きな課題があると感じました。(この記事ではPCM1704については比較していないため例外とします。)

Schiit Audio Gungnir Multibitレビュー

ちなみにその音質傾向はSoekris DAM、Schiit Audio Gungnir Multibitで確認しています。どちらもDF+オーバーサンプリング+マルチビットという構成です。現代的マルチビットDACとしては標準的な構成ですがこれらの機種では音質面では大きな弱点を抱えていると強く感じます。なのでマルチビットだから良いというような無条件信仰には技術的に大きな根拠がないと感じました。結局マルチビットもきちんと音質対策をしなければ良い音にはならないのは同じです。

正直R2Rだけで言えばΔΣのような帯域外ノイズを出さないこと、ノイズ源が抵抗依存、これくらいしか優位性がありません。R2Rの優秀例で言えばMSBは特殊な対策が施されている可能性が高く、一般R2Rより微小領域が高精度に仕上がっている(StereoPhile測定特性を参考)ためΔΣ系と比較してもなめらかな音でした。PCM1704については搭載機を厳密な条件で比較したことが一度もないので真価は不明ですが、これもレーザートリミングで高精度に仕上がっています。

ΔΣの場合は帯域外ノイズの対策、帯域内ノイズはクロック性能とDSD化の精度次第です。こちらも技術的に改善が可能です。概ねΔΣなら高級クロックやDSPによる演算能力向上、そして帯域外ノイズ対策、これらが重要となります。こちらは微小領域リニアリティの問題はありません。

最大の問題はR2Rでは24bitまで精度を上げるには手間とコストがかかるような方法しかありません。現実を見てもMSBモジュールは非常な高価、PCM1704は生産終了です。そして普通に作ったR2Rディスクリートでは確実に抵抗精度問題があります。その上DFと組み合わせた場合に発生するデジタル解像度問題も考えると、多くの課題を抱えている方式です。

以上のように良いか悪いかには複数の複合条件があって、単純に方式だけ見てR2Rは良いΔΣは悪いということでは無いと思います。

ΔΣのほうがどちらかといえば対策の難易度は低いでしょう。MSBみたいな執念がないならば一般的なDACがR2RからΔΣに移行した事自体は間違っていないと思います。ΔΣ型の問題はクロック性能と帯域外ノイズの対策が中心です。あとは最近のチップがオールインワンであることによるノイズ問題、プロセスの微細化による駆動力低下、このあたりが中心となるでしょうか。

PCM-501ES SPDIF化改造まとめ

最後に改造方法をここにまとめておきます。古いDACなので現代機とは大きく設計が異なる部分があり、最近のDACしかいじったことがない自分にはかなり苦労の連続でした。

この改造によって出てくる音は「ヤフオクで1万円以内」の古い製品としては破格のレベルであり、その真価は数十倍以上の価値がある領域だと個人的には思います。何しろ現行のDAVEやdCSの旧型よりも総合力は上です!価格じゃなくて音で決めるなら超オススメです。もちろんSONYなのでブランド力も問題なし(多分)です。

ということで価格も音質も本当に素晴らしいですが残念ながらPCM-501ESはビデオデッキ専用なのでDACとして使えるようにするためにはSPDIF化の改造が必須です。ネットで調べても今入手できるパーツを使った技術的情報は皆無です(古いICを使った事例はありますが…)。

ということでここでは現在失われてしまったSPDIF化のための方法を提供したいと思います。簡単じゃないですが参考になればと思います!

一台でも捨てられるPCM-501ESを減らしたいので、この技術で商売したい方は勝手にやってください。今なら捨て値でPCM-501ESは買えます。ここに書いてあることをパクってお金儲けしてもらって全然構いません。私は面倒なのでやる気はありません。

pcm501es7

とりあえずDIX9211(PCM9211とはピン互換)を使った構成ですが正直デジタルレシーバの選択は失敗でした。今どきのレシーバはすべて64fsです。CX20017では16bit右詰めの32fsという現在では使われないフォーマットが必要です。これは簡単なロジック回路で変換できそうな内容じゃないです。できるのかもしれないですが発想できませんでした。

32fsrj

デジタルレシーバではWM8805のデータシートで32fsの記述がありますが本当に対応できるのかは未確認です。もし対応できるならこれを使うのがベストでしょう。しかし手元にはICがないので出来るかはやってみないとわかりません。

wm8805

現行だとLC89058W-Eが対応してそうですがICは80個まとめ買い以外で入手不能です。

lc89058

レシーバ以外ではDITならAKMの5V品、SRCはADとTIに対応しているものがありました。データは変わってしまいますが現行のレシーバからこれらのSRCでフォーマット変換するのが一番簡単かもしれません。

src4192

中で使うクロックですがPCM-501ESの回路図を見るとMCLKが44.1k × 256 = 11.289600MHzではなく、44.1k × 240 = 10.584000MHzなのでそのためだけにCS2000を載せましたが実はDAC側にこのような変則的なMCLKは不要でした。ADC側で使っているだけです。ネットで調べるとこの信号を生成している作成例がありますがDAC駆動用には不要です。

pcm501es1

CX20017に必要なのはLRCK、2×LRCK、BCK、DATA、これだけです。下の青色のところ=基板写真の部分にこの4つの信号を送り込めば音は出ます。もともとついているCN652コネクタは外れるようになっているので乗っ取るのは簡単です。

このIC650で切り替えているもう一方の信号はADC側の信号です。フロントのREC-Muteを押すとADC信号がDACに入るようになっています。通常時はビデオ側の信号がDACに入っています。そこを乗っ取っています。

pcm501es6

pcm501es6

どこから信号を送り込めばいいかはわかりました。問題は32fsのBCKとDATAの生成です。DIX9211には一応32fsのBCKと2xLRCKを作る機能があるのですが位相がリセットのたびに変化するので実質使い物になりません。これがDIX9211が使えない最大の理由です。

これらのクロックは最終的に74-393のカウンタICで生成しています。BCK基準でLRCKなどを作っているためロック外れ時などは必ずタイミングがずれてしまいます。なのでその場合は毎回CPUからタイミングを合わせてリセットを掛けなければなりません。

ということで必要な処理をまとめました。LPC1547で賄わなければならない仕様は以下のとおりです。

  • 64fs > 32fsに変更。BCKの速度を半分に、DATAは作り直し。
  • カウンタICで2.8MhzのBCKを分周し、1.4MHz、88k、44kの同期信号を生成
  • LPC1547で2.8MhzBCKに同期してDATA読み取り、32fs周期でDATAで出力
  • DIX9211のLRCKに同期するようにカウンタICのタイミングをリセット
  • ロック外れ、レート変更時にはDIX9211のCLKSTフラグを読み取り再同期が必要
  • LPC1547のクロックを72Mhzから84Mhzにオーバークロック

LPC1547で信号を再生成しようと試みるとわかりますが、C言語のソースからアセンブラレベルで最適化してもらえるコードの記述がかなり困難でした。本当はCPLDなどで実装すればこのような処理は簡単なのでしょうが、自分はFPGA系のスキルは皆無なので無理やりCPUで処理しました。

結局なんとか実現できたのですが、とても苦労したので今後のためにもここでそのための方法もまとめておきます。

まずコンパイラの最適化は-O2推奨です。-Osでサイズ優先にするとコードをいじったときに予期せぬ最適化がなされる場合があり、まったく予測できない速度低下を招くことがありました。

次に72Mhzではギリギリ間に合わないのでクロックアップしました。クロックの設定はmbedライブラリの場合は「system_LPC15xx.c」の次のdefineを変更します。

  • #define SCTPLLCTRL_Val        0x00000045 // Reset value: 0x000
  • #define SCTPLLCTRL_Val        0x00000046 // Reset value: 0x000

これで72Mhzから84Mhz駆動になります。動作させるための最後の鍵はこれでした。ただし48kHzは100%での再生が出来ていません。96Mhzまで上げたら動くかもしれませんがそこまで上げるのは安定動作に問題が出てきそうです。そこまでやるならCPU自体を別のものに変更すべきでしょう。

CPUからのポート制御はmbedのDigitalOutを使うほうがLPCネイティブコードより早いです。これはとても意外ですが、実際に測定して試したので間違いありません。なので出力の書き込みはmbedコードで行っています。これより>LPC_GPIO_PORT->SET[0] = 1 << P0_12、これ>DATA32.write(1)のほうが見やすいのに倍くらい早いです。mbedすごいです!

ポートからの入力読み込みはmbedよりLPCネイティブコードのほうが早いので読み込みだけは面倒なこの書き方で書いています。読み込みはどっちにしてもやや遅いです。 LPC_GPIO_PORT->PIN[0] & (1<<P0_18)

これで完成したコードは次のとおりです。追試は簡単ではないと思いますが参考になれば良いという程度の内容です。時間のかかる遅い処理を省くためには普段使わないような発想を求められたのでとても疲れました。書き方一つ、命令文が一つ増えるだけで間に合わなくなる為、相当ギリギリの最適化です。

ここまでで普通に音出しは出来ますがこれで改造は終わりではないです。次にエンファシス制御を解除します。PCM-501ESは標準でエンファシスがかかっていますので、無改造でSPDIFを入れても高域が落ちてしまいます。

dfuu9ijvmaa2eag

エンファシスがかかった状態↑ 高域が落ちています

1ksqr

エンファシスを切った状態↑ 見慣れた波形になります。

pcm501es4

エンファシスはアナログ回路でリレー制御です。リレーに至る制御配線を1本切断するだけでエンファシスを強制オフに出来ますが、ちゃんと制御をするならDIX9211のエンファシスフラグを読み取ってリレーをコントロールするべきです。

pcm501es5

p1020986

エンファシスのリレー制御線はここです。ここをCPUに繋ぎ直して制御すればディスプレイのエンファシス表示もちゃんと連動します。これで基本動作は概ねOKです。

SPDIF入力端子はGNDをケースに接続しない

最初、もともとついているRCAコネクタを流用しようと思ったのですが、GNDがシャシーと接続されているためノイズが回り込んでSPDIFが安定してロックしませんでした。せっかくパルストランスをつけているので絶縁接続に変更しました。こうすることで安定性はかなり向上しました。

p1020973

基板の電源確保場所

p1020964

ここから取ってます。電源の整流前の11Vです。これを自前基板でレギュレートしています。

その他改造の参考

クロックアップとGPIO最適化の参考

https://community.nxp.com/thread/422944

http://morokyuu.way-nifty.com/blog/2013/02/lpcxpressolpc11.html

SPDIF入力時にハイ落ちする。エンファシス回路が原因

http://pcmprocessor.web.fc2.com/pcm2cdr/chapter5.htm

音質対策の改造

次にもう一歩進んだ改造です。