2017年4月26日水曜日

ΔΣ変調DACの仕組み

ΔΣ変調DACとは、簡単に言えば、
(1)まずは、入力されたデジタル信号(PCM)のノイズを除去し、
(2)次にこれを1ビット信号(PDM=DSD)に変換し、
(3)最後にLPFに通してアナログ信号に変換する。
入力信号がDSDであれば、(1)(2)をスルーして(3)のLPFのみ通してアナログ信号に変換する。

(*ここに記載した内容は、自分の備忘録であり、間違っているかもしれないのでご注意願います。)

(1)ノイズの除去
PCMのノイズ除去には、オーバーバーサンプリングと補完フィルターが使われる。

折り返し雑音
デジタル信号のサンプリング周波数の1/2の周波数をナイキスト周波数という。信号を標本化する際、ナイキスト周波数を超える周波成分は、折り返し(エイリアシング)という現象を起こし、サンプリング周波数の整数倍の周波数で、再生しても元の信号に戻らない折り返し雑音(エイリアス=偽信号)となって現れる。

折り返し雑音の除去
折り返し雑音を除去(アンチエイリアシング)するには、ローパスフィルター(LPF)を使ってナイキスト周波数を超える高周波成分(=折り返し雑音)を除去すればいいのだが、そのままだと元信号の周波数と折り返し雑音の周波数間の間隔が狭い為、傾斜がかなり急峻な高精度のLPFでないと使えないという問題が出てくる。

オーバーサンプリング
そこで、オーバーサンプリング手法を使って元信号のサンプリング周波数を十分に高くしてやると、元信号のサンプリング周波数と折り返し雑音のサンプリング周波数との間隔が大きく広がり、傾斜の緩い簡易なLPFでも十分に折り返し雑音を除去できるようになる。

オーバーサンプリングとは、元信号(例えば44.1KHz、16bitの信号)に、目的の周波数に応じた値0の信号を追加(補完)することを言う。オーバーサンプリングの周波数が高いほど(倍率が高いほど)アンチエイリアシングの精度は増す。実際にはナイキスト周波数(サンプリング周波数の1/2)の160倍(3.528MHz)以上である。

補完フィルター
オーバーサンプリングされた信号には、補完データをサンプリングした際の量子化ノイズのエイリアシングが残っており、LPFでこれを除去する。この時使われるLPFを補完フィルター(Interpolation FIlter)またはアンチエイリアシングフィルターという。

(2)PDM変換
実際には1ビット(DSD)ではなくマルチビット(3~5bit)のPDM信号に変換される。

PDM(パルス密度変調)
PDMは、アナログ信号の振幅をパルスの粗密(出現率)で表すものでパルス密度変調と呼ばれている。PDMはパルス波=デジタル信号であるが、同時に、パルスの粗密でアナログ信号の振幅を表すアナログ成分も内包している。よってPDMにLPFをかけるだけでアナログ信号を取り出すことができるのである。

ΔΣ変調器
ノイズ除去後の信号は、いよいよΔΣ変調器に通されてPDMに変換される。ΔΣ変調器は、加算器、積分器、量子化器、量子化誤差の帰還回路からなり、積分した信号を量子化器で1ビットもしくはマルチビットのPDMに変換する。ここで、量子化誤差を加算器に帰還させると、補完フィルターで除去しきれなかった、広い帯域に一様に分布している量子化ノイズを、高周波帯域に集めることができる。これをノイズシェーピングという。

(3)アナログ変換
アナログ平滑フィルター(RCF)
ノイズシェーピングされたPDM信号を、LPF=アナログ平滑フィルター(RCA)に通せば、高周波帯域のノイズが除去され、アナログ電圧として出力される。

以上がΔΣ変調DACがデジタル信号をアナログ信号に変換する仕組みである。

2017年4月21日金曜日

ES9038PRO設定

やなさんのES9038DM DACの設定についての備忘録。(未確定)

Input Select(入力選択画面)
  SPDIF    :SPDIF入力(SPDIFコネクタ)(初期値)
  PCM    :PCM入力(INコネクタ)
  DSD    :DSD入力(INコネクタ)
  PCM/DSD Auto :PCMとDSDを自動判定(INコネクタ)

Setting Select(設定選択画面)
  SPDIF :SPDIF設定
  PCM :PCM設定
  DSD :DSD設定

Status(ステータス画面)
 ①ES9038PROのステータスを16進表示
  a0:入力有、アンロック
  a9:入力有、ロック(正常時)
  aa:未入力、アンロック
 ②DPLLのサンプルレート数値を16進表示
  この値の変化が少ないほど安定して再生されている
  ※同期モードの時は、DPLLが使われないので値は更新されない
 ③DACのロックと入力有無の状態を表示
  UM:アンロック、入力無
  U :アンロック、入力有
  L :ロック、入力有(正常時)

PCM Input Format(PCMの入力フォーマット設定画面)
  16bit R-Just :16ビット後詰め
  24bit R-Just :24ビット後詰め
  32bit R-Just :32ビット後詰め
  16bit L-Just :16ビット前詰め
  24bit L-Just :24ビット前詰め
  32bit L-Just :32ビット前詰め
  16bit I2S :16ビットI2S
  24bit I2S :24ビットI2S
  32bit I2S :32ビットI2S(初期値)

De-emphasis Select(ディエンファシス周波数設定画面)
  32K :32KHz
  44.1K :44.1KHz
  48K :48KHz
  SPDIF Auto :自動判定(初期値)
  Deemph Bypass :ディエンファシスしない

FIR Filter(FIRフィルタ設定画面)
  Fast Roll-off :fast roll-off, linear phase
  Slow Roll-off :slow roll-off, linear phase
  Fast Minimum :fast roll-off, minmum phase(初期値)
  Slow Minimum :slow roll-off, minmum phase
  Apodizi Fast :apodizing, fast roll-off, linear phase
  Hybrid Fast :hybrid, fast roll-off, minmum phase
  Brickwall :brikwall
  OSF Bypass :OSF(オーバーサンプリング)しない

IIR Filter BandwidthIIR(フィルタの通過帯域設定画面)
  47.44K :47.44KHz(初期値)
  50K :50KHz
  60K :60KHz
  70K :70KHz

DoP Transcoder(PCMのDoPデータ変換の設定画面)
  Disable :DoPデータ変換は無効(初期値)
  Enable :DoPデータ変換は有効

DSD L/R Select(入力DSDの左右CH設定画面)
  DSD-L :LRCK/DSDLとSDATA/DSDRの組み合わせ(初期値)
  DSD-R :LRCK/DSDRとSDATA/DSDLの組み合わせ

Clock Gear(マスタークロックの調整画面)
  MCLK=XIN :マスタークロックと同じ
  MCLK=XIN/2 :マスタークロックの二分の一
  MCLK=XIN/4 :マスタークロックの四分の一
  MCLK=XIN/8 :マスタークロックの八分の一
  MCLK=Auto :サンプリング周波数を判断して自動的に調節(初期値)

Noize Dither(ノイズディザーの設定画面)
  Enable :ディザー有効(初期値)
  Disable :ディザー無効

THD Compensation(THD補正ロジックの設定画面)
  Enable :THD補正ロジック有効(初期値)
  Disable :THD補正ロジック無効

Jitter Eliminator(ジッター除去回路とDPLL回路の設定画面)
  Enable :ジッター除去回路とDPLL回路有効(初期値)
  Disable :ジッター除去回路とDPLL回路無効

PCM/SPDIF DPLL BW(PCM/SPDIFのDPLLのバンド幅設定画面)
  OFF :DPLLを使わない
  DPLL1~15 :数字が小さい程、バンド幅が小さくなります。(初期値はDPLL5)

DSD DPLL BW(DSDのDPLLのバンド幅設定画面)
  OFF :DPLLを使わない
  DPLL1~15 :数字が小さい程、バンド幅が小さくなります。(初期値はDPLL10)

Sync Mode(同期モードの設定画面)
  Normal Mode :非同期モード(DPLLを使ってロックします)(初期値)
  Sync mode :同期モード(DPLLを使わずMCLKに同期した外部クロックを使用)
 
Lock Speed(DPLLのロック速度の設定画面)
  16384(D) :FIRエッジ数16384(初期値)
  8192 :FIRエッジ数8192
  5461 :FIRエッジ数5461
  4096 :FIRエッジ数4096
  3276 :FIRエッジ数3276
  2730 :FIRエッジ数2730
  2340 :FIRエッジ数2340
  2048 :FIRエッジ数2048
  1820 :FIRエッジ数1820
  1638 :FIRエッジ数1638
  1489 :FIRエッジ数1489
  1365 :FIRエッジ数1365
  1260 :FIRエッジ数1260
  1170 :FIRエッジ数1170
  1092 :FIRエッジ数1092
  1024 :FIRエッジ数1024

Clock Select(マスタークロックの設定画面)
  100MHz Clock :基板上のクロック発振器から100MHzを出力(初期値)
  BCLK x n :BCLK(64fs固定)をn逓倍して90.3168MHz/98.304MHzを生成
  SCLK x 4 :SCLK(22.5792MHz/24.576MHz)を4逓倍し90.3168MHz/98.304MHzを生成
  SCLK x 2 :SCLK(45.1584MHz/49.152MHz)を2逓倍し90.3168MHz/98.304MHzを生成

JC Bandwidth(ジッタークリーナーの設定画面)
  Lowest :Lowest
  Low :Low
  Medium :Medium
  Medium-High :Medium-High
  High :High
  Bypass :ジッタークリーナーを使わない(初期値)

Volume Select(音量制御モードの設定画面)
  Encoder Volume :ロータリーエンコーダ及びリモコンで音量制御(初期値)
  Manual Volume1 :手動ボリュームで音量制御(直線変化)
  Manual Volume2 :手動ボリュームで音量制御(対数変化A)
  Manual Volume3 :手動ボリュームで音量制御(対数変化B)
  Fixed Volume :最大音量に固定

Output Select(出力チャネル数の設定画面)
  1-CH :1チャネル(L-OUT/R-OUTの1、2ピンのみ1/2出力)
  2-CH :2チャネル(L-OUT/R-OUTの1、2ピンのみ出力)
  4-CH :4チャネル(L-OUT/R-OUTの1、2、3,4ピンのみ出力)
  8-CH(All) :8チャネル全て(初期値)

Gain Callibration(ゲインキャリブレーションの設定画面)
  Always :常に自動調整(初期値)
  Only Once:起動時に1度だけ自動調整
  No Adjust :自動調整は行わない

Automute Set(自動ミュートの設定画面)
  No Mute :何もしない
  Mute :出力をミュートする(初期値)
  Out-GND :出力端子をグランドに落とす
  Mute+Out-GND :出力をミュートして、出力端子をグランドに落とす

Mute Auto(Mute Autoの設定画面)
  Mute Invalid :MUTE信号を無視して、Mute制御は行わない(初期値)
  Mute Nor :MUTE信号(HIGH=Mute/LOW=No Mute)でDAC内部をミュート制御
  Mute Neg :MUTE信号(HIGH=No Mute/LOW=Mute)でDAC内部をミュート制御

2017年4月20日木曜日

ES9038PRO 音出し成功(2)

赤外線とリモコンで詳細の設定をしようとするも、なぜかリモコンが効かない。AK4497基板では問題なく使えるので壊れてはいない。周辺の半田付けをやり直すもだめだ。

やむなく、SELスイッチとP1-P6を使って設定を行った。
ようやく安定し、ノイズのない素晴らしい音が出ている。

AK4497と比べてどうか!興味のあるところだが、こうしたバラックの仮設状態で音質の評価をするのは不公平なので差し控える。エージングもあるので評価はもう少し後にしたい。

追記
マイコンを新しいバージョンに交換してもらったら、無事にリモコンが効くようになった。よかった。


2017年4月18日火曜日

ES9038PRO 音出し成功

やなさんのESS9038PRO DM DACの音出しにようやく成功した。

今回は、かなりハードルが高かった。

まず部品点数が多い。ICは方向を絶対に間違えずに、ランドのピンに上下左右ほんの数ミクロの違いもないよう完璧に配置して(ここが一番肝心、少しのずれも許さず完璧に合うまで何度でも繰り返す)、フラックスをたっぷり塗って半田付けしていく。

チップ抵抗、チップセラコンは、各値、容量のものがあちこちに分散していて、ランドの場所を探すのにかなり時間を要した。どれだけ探しても見当たらない場所もあり、何度も見直しようやくこんなところに!と言うことも度々あった。

数の少ない値・容量のものから順番に付けていき、いよいよ58個の0.1μ、28個の1μに取り掛かる。時間をかけて基板上の場所を探しひたすら半田付けをし、目がちょろちょろになりながらもなんとか最後の1個になったところで、衝撃的の事実が発覚!

なんと手元に0.1μが1個残り、基板上に0.1μのランドはもうない。代わりに1μのランドが1つ空いている。ああー、付け間違いだ!チップには文字も数字も書いてないので探しようがないと青ざめる。

それでも0.1μと1μのチップの色の僅かな違いを頼りに1個1個ルーペで確かめていく。ノートに番号を書き、確認済みを消していく。4分の3程進んだところでようやく付け間違えの1個を発見した。疲れた。これだけで1晩費やした。

部品を全て半田付けし終わり、最後の仕上げで、左右の差動アナログ出力4chの+、ーをそれぞれ1出力に纏めて、ライントランス1010に繋ぐ。結局+、-それぞれ8chの出力をすべて合成したので、出力電流は120mAにもなる。通常のオペアンプは使えないが、1010なら全く問題ないだろう。

このDACは電圧出力と電流出力の両方に対応しているとのことだが、どうやって切り替えるのかと思ったら、接続先のインピーダンスがローだと電流出力、ハイだと電圧出力となるらしい。9038は1CH当りの出力インピーダンスが202Ωで8CHすべてまとめると25Ωとかなり低くなる、1010のDCRは80Ωくらいだし、その先には真空管アンプがあり入力インピーダンスは100KΩだから、接続先の方がハイで電圧出力になるのだろう。

DDCと電源を繋ぎ、いざ、音出し!

・・・・ 全く音が出ない。

LCDが「I2C ERROR 1-W-2」及び「I2C ERROR R-R-2」を交互に繰り返し表示している。
マイコンとES9038PROとPCAL9539AとのI2C通信がうまくいっていないようだ。これがうまくいかないとMCLKがDACに入らず音がでないとのこと。この二つのICの半田付けをやり直す。

それでもエラーが消えない。音も出ない。オシロでI2S信号を追うと、9038の入力までは来ていることが確認できたので、やはりI2C通信関係だ。

制作マニュアルにある出力電圧のチェックをしてみると、右CHの2つのポイントで3.3Vが2.5Vとなっている。電圧が低くICが動作していないのかもしれない。そこで、関連のある電源ICの半田付けをやり直す。ついでに、全ての部品の半田付け状況を確認し半田の薄いところや怪しいところをやり直す。

これでどうだと電源を入れると、おお(感涙)音が出た!

相当慎重に半田付けしたのに、それでも問題個所があったということだ。内心、ICを壊したかもしれないと思っていたのでほっとした。まだまだ未熟と慢心を戒める。

しかし、音は出ていると言っても、左は綺麗な音だが右はザーというノイズまみれだ。
なんで右が?再度、半田付けの状況を確認するも問題個所は見当たらない。

そこで、右CHのあちこちを指で触ってみる。すると9038裏面GNDランドを指で強く推した時ノイズが消える。ピンセットを当ててもワニ口を当ててもノイズは消える。そのままワニ口を半田付けしようかと思ったが、ここが原因とは思えないので、再度他のGND回り調べる。

デジタル部と右アナログ部のベタGNDを繋ぐ一点架け橋のFB11に関係があるかもしれないと、取り付けてあったファインメットビーズを外し普通のフェライトビーズに代えてみると、

ビンゴ! なんとノイズが消えた!

しかし残念ながらモコモコという籠った音になり聴くに堪えない。

だが、ここに何か問題があることは間違いない。そこで、フェライトビーズも止めて半田ブリッジで直接繋いで見ると、なんとノイズが消えて綺麗な音が出てきたではないか。まさか、こんなところがノイズの原因だったとは!

何故この場所なのか?何故フェライトやファインメットビーズではダメなのかはよくわからないが、とにかく問題は解決した。

この間やなさんには何度も助けていただきました。ありがとうございました。

音出しに成功したので、やっと詳細な設定や音質の確認などに進める。


2017年4月9日日曜日

フォークソングとはんだ付け

この土日は桜が満開だというのに生憎の雨で、どこにも出かけず家で昔の懐かしいフォークソングを聴きながら、上記19枚の基板を半田付けした。

フォークソングは、昭和初期の戦後、高度経済成長時代を支えた演歌とは一線を画した新しい若者達の音楽で、シンガーソングライターといった天才的な若者たちがフォークギター片手にストレートに若者の愛や恋を歌った。どれもこれも、自分の青春時代の音楽であり懐かしい。歌詞の内容が意外にストレートだということに気づいたりして、時に涙を流しながら、はんだ付け三昧の2日間であった。

これでAsoyajiDAC3台分。上の緑がTPS7A4700電源基板、左の緑がLT3042電源基板、赤の上段がAK4497DM基板、下段がPCM9211 DAI基板。

2017年4月2日日曜日

チョークコイル(ノイズフィルター)

ノイズフィルターとして使われるチョークコイルだが、その仕組みを調べてみた。

2つの電流モード
まず、電流の流れかたには、ノーマルモードとコモンモードの2通りの流れ方がある。
ノーマルモード電流は、回路電流の流れ方(往路の信号線、帰路のGND線)であり、ノーマルモードノイズは、この回路電流に重畳して流れるノイズ電流である。
コモンモード電流は、回路電流とは関係なく、浮遊ノイズなどが、上下同じ方向に入り込んでくるノイズである。

ノーマルモード電流
(チョーク)コイルは、交流電流対して、周波数が高くなるほどインピーダンス(誘導リアクタンス)が大きくなり=抵抗力が働き、流れにくくなる。
要するに、直流(低周波電流)は流し、高周波は流しにくい性質を持っている。
音声信号は低周波であり、ノイズはほぼ高周波なので、コイルを使えば、音声信号は通し、ノイズだけをカットするフィルターを作ることができる。

ノーマルモード用チョークコイルは、1線巻きのチョークコイルであり、上記のとおり、低周波は通し、高周波をカットする。電源回路に使えば、商用電源は50Hzや60Hzの低周波であり、高周波のノイズ成分のみをカットしてくれる。

差動信号線の場合に限りディファレンシャルモードという。

コモンモード電流
コモンモード用チョークコイルは、2線巻きのチョークコイルで、コモンモードノイズに対しては、2線のリアクタンスが強め合う方向となり、ノイズは通さない。しかし、回路電流であるノーマルモード電流はそのまま通してくれる。



ノイズフィルター
除去したいノイズのモードの合わせて、チョークコイルのタイプを選択することになる。
ノーマルモードチョークコイルとコモンモードチョークコイルを両方組み合わせれば強力なノイズカットフィルターを作ることができる。


コイルの抵抗力であるインダクタンスは、①巻き線が作るコイルの断面積が大きいほど強く、②巻き線数が多いほど強く、③コアの透磁率が高いほど強い。要するにフィルターのノイズ除去能力はチョークコイルのインダクタンスの大きさに比例する。

さみず音響のファインメットコアのチョークコイルは、①②③とも通常のコイルを凌駕している。ファインメットの透磁率は非常に高くノイズフィルターには非常に適している。

日立金属の説明書より

特に、これほど大きなファインメットコアを使ったチョークコイルは、さみず音響でしか手に入らず、その効果は絶大で、電源ラインにも余裕で使える。一度試してみて欲しい。

さみず音響
https://samizuacoustics.com/%E3%83%95%E3%82%A1%E3%82%A4%E3%83%B3%E3%83%A1%E3%83%83%E3%83%88%E3%83%AF%E3%83%BC%E3%83%AB%E3%83%89/