Raspberry Pi zero2 WでPWM Audio! 高音質を目指して

おひさしぶりです

 最近、音楽を聴くために小型USB DACを使用してスマホで聞くことが多くなってきましたが、個人的にこれがちょっとだけ不満です。スマホを充電しながら聞くことができないからですね。たとえば寝ながらイヤホンで音楽を聴きたいとき、スマホの充電を犠牲に朝を迎えなければいけないのです。これはよろしくない、ということで音楽鑑賞用のステーションを手に入れようとなりました。

 しかし、最近の小型PCは安いですね~ 3万出せばそこそこのスペックのPCが手に入ります。

例) Bmax N5095搭載PC ¥29980 https://amzn.asia/d/05zies62

ただ、これを買ってDACを買って終わり...じゃ芸がない。ということでみんな大好き、Raspberry Piを使ってミュージックステーションを作ってやろうとなりました。

 あ、このプロジェクトは時間がかなりかかる予定のため、ゆっくり更新していくシリーズ形式にしようと思います。リアルで時間がない。この記事は実機を試作段階まで完成させた状態で書いているため、今後基板実装やら改良やらでちょくちょく今後の記事との齟齬が出ることがあります。ご注意を。

制作開始!

 使用するPiはRaspberry Pi zero2 Wです。Piシリーズの廉価版であるzeroの後継版ですね。512MBのメモリという制限付きで5000円で購入できるため、今回のような負荷の軽いアプリケーションでは最適です。

で、このプロジェクトではI2Sを使用しません。PCを切り捨ててPiを使うってなったのだから、せっかくなら芸に振り切って、GPIOからのPWM出力を採用します。音質悪そ~って思ったそこのあなた、これはお遊びです。

 

 音楽再生に使うOSはmoOde Audio。Volumioの方が有名で使いやすいとは思いますが、機能的に(Hardware PWMを使用する関係で)moOdeを選択。Volumioでもできるかもしれませんが、moOdeはPWM mode選択によりΔΣ変調を使用したPWMを出力できるため、普通のPWMより高音質です。

注意!

Piから出るPWMをイヤホンに直結すると壊れ(る可能性があり)ます!

絶対にアッテネータを使用してください!

大音量で鼓膜とイヤホンが壊れ(る可能性があり)ます!!!

 

 次は試作段階でのソフトウェア系の設定です。moOdeの設定はかな~り詳細に設定できます。Config.txtでの設定、ネットワーク関連の設定、MPDの設定などなど...

moOdeのインストールはいろんなサイトで紹介されているのでスキップして、とりあえずconfigの設定から行きましょう。あ、モニターレスで設定する場合はSSHできるようにちゃんとWiFi設定してSSH許可してくださいね(1敗)。

 

config.txt

micro SDカードに直接書き込む設定ですね。Win PCにmicro SD to USBなどして認識させ、その中のconfig.txtを開くことで編集できます。もしくは、SSHなどで接続して直接書き換えることもできます。

ここでは設定した、設定するべきものを羅列します。

dtparam=audio=on
dtoverlay=audremap,pins_18_19

これを記述することで、(たぶん)初期設定であるPWM Audioの出力をGPIOのpin12(GPIO18), pin35(GPIO19)に設定できます。Pi4のようなデフォルトでイヤホンジャックがついているならこの設定はいらない?のかもしれませんが、のちの高音質化のためにもこの設定は必須です。

audio_pwm_mode=2

PWM modeを変更する設定です。helpを見るとデフォルトでのmodeは2になっているようですが、勝手に変更されたりしないようこの設定で固定します。

ちなみに、modeについては0が通常のPWM、1がちょっと音質の上がったPWM(詳細不明)、2はΔΣ変調を用いてノイズシェーピングをかけたPWMのようです。

PWMと言いながら本質的にΔΣ方式の1bit DACに近づいている気がしますが、気のせいです。

arm_freq=1000
arm_freq_min=1000
core_freq=400
core_freq_min=400

これはPiのコアクロック周辺の設定です。arm_freqはメインコアの周波数を設定でき、core_freqはGPU周辺のコアの周波数を設定できるようです。それぞれ_minと付いているのはその名の通り下限を設定できるようです。

PiのPWMはcore_freqをもとに分周したクロックを参照して出力しているようで、デフォルト設定での「負荷によってクロック周波数を変化させる」、よくある挙動はオーディオにとって巨大なジッタになります。ここでクロックを固定するとジッタを軽減できるわけです。

disable_audio_dither=1

ディザーをOFFにする設定です。ΔΣ変調PWMを生成するため、ディザーは必要ない...はずです。ノイズシェーピングしてSNを稼ぐのに、ノイズフロアを上げる必要はないですからね。しかも12bit精度のためノイズフロアを上げるのはさすがに抵抗があります。

pwm_sample_bits=12

PWMの精度を変更する設定です。デフォルトで11bitありSNは68dB程度ありますが、ちょっと物足りない。12bitにすることでSNを74dBまで稼げるためこの設定を採用していますが...

この設定、音源のサンプリングレートを48kHzだと仮定して、12bit精度のPWMを生成するためには、2*48000*2^12 = 393,216,000 ≃ 393MHzのクロックを要求されます。core_freq 400MHzをそのまま使っているとするなら大丈夫ですが、しっかり動作しているか不安なラインです。プラシーボでの効果を期待する設定です(笑)

 

 設定するべきものはこんな感じになります。これらを# General settingsの下に記述していくだけなのでかんたんですね。

 

オーディオ出力設定

moOdeからPWMを出力するための設定たちです。

1. 出力設定

初っ端から難関です。ホーム画面右上の[m]からConfigure、Audioと開くと設定画面が出ます。上記のdtparamとdtoverlayをconfigへ記述していて、なおかつ再起動されているなら、OUTPUT Device一覧に [Pi Headphone jack] という項目が見つかると思います。これを選択して完了ですが、なぜか出てこないときがあります。そういうときは再起動やconfigへの記述ミスなどを確認し、だめならchatGPTにぶん投げましょう。

Named I2Sやor DT Overlayの設定は無視で大丈夫です。適当にNoneにしても問題ないです。

次にちょっと下の方にALSA Optionsというものを探し、そこのOutput modeをDirectにしましょう。オーディオのコンバート回数が減るため高音質化が期待できますが、まぁ知覚できないと思われるためプラシーボ効果に期待しましょう。

2. MPD設定

moOdeに同梱されている音楽再生モジュールであるMusic Player Daemon、公式略でMPDの設定ができます。[m]→Configure→MPDから遷移でき、ここではSoX ResamplingやらReplay Gainやらその他音楽再生に関わる設定ができます。

個人的にはリサンプリングはOffでいいです。一応ΔΣPWMは時間軸方向への分解能が高いため事前にアップサンプリングしたときの高音質化は見込めますが、これも知覚できないためいりません。なんなら、ただでさえカツカツなCPU負荷とメモリ使用量を増やしてしまうため非推奨です。

逆に、Replay Gainは超推奨します。人間の耳は1dB音が大きくなっただけで高音質化した、1dB小さくなっただけで悪化したと錯覚してしまうほど軟弱なセンサのため、リプレイゲインによる音量の均一化は有用です。PC側での作業が増えますが、まぁ...

 して、もっと重要なのがReplay Gainの一個下、Resource allocationです。オーディオバッファの設定ですが、これをちゃんと設定しないとプツプツとノイズが乗ります。一度長めの時間音楽を流してみて、ノイズが乗らない程度にバッファを増やすことをお勧めします。SoXをONにするならこの調整は必須です。

3. System設定

[m]→Configure→Systemから遷移できる設定で、ここではシステムの設定ができます。小泉構文みたい(笑)

Startup optionsのPerformance、その中のWorker ResponseとCPU Governorが重要な設定です。Worker Responceはlocal UIやWeb UIのレスポンス向上の設定で、私はDefaultにしていますがBoostedにしてもよさそう。CPU使用量は増えると思われるので、その辺の調整は必要だと思います。

CPU GovernorはPerformance一択です。先に設定したarm_freqやcore_freqを、負荷によって変動させなくするという設定です。configで設定しているため不要かもしれませんが一応。

4. Camilla DSP

moOde内蔵DSPの設定で、 [m]→Configure→Camilla DSPから遷移できます。私はDSPを使用しないタイプの人間なのでほとんど知見がありません。DSPがないと生活できないよって方はchatGPTに丸投げしてみてください。

 

 お疲れさまでした。これでいったんソフト関連の設定は終了です。

 

アナログ回路

残念でした。これからもっと長いお話です。

 

高音質なPWM再生にはいろいろ考えなければいけないことがありますが、基本的によく言われる高音質化の要素は、

・低ノイズ

・低ひずみ率

・過渡応答のきれいさ

・周波数特性のフラットさ

などなどあると思います。個人的な指標の話をするとDACは基本的に音質の違いはなく.... などと書くと荒れそうなので下の方で...

 話を戻して、PWMは原理的に直線性がよく、ひずみ率は低いことが多いです。ただしそれは理想的な話であり、現実はキャリアノイズ周波数とその逓倍周波数のスペクトル、デューティー比の変化による変調ノイズ、SoCからのノイズ、WiFiモジュールからのノイズ、コンセントやACアダプタ、DCDCからのノイズ、PWM波形のリンギング... ノイズに関してを軽く挙げるだけでここまで文章量がかさみます。これらと他にもいっぱいあるノイズ源やひずみ源のせいで、ひずみ率やそれにノイズを含むTHD+Nは市販品よりかな~り悪くなります。つまり設計による変動が大きいってことです。

 

 ということで、試作として組んだ回路のブロック図がこちら。

電源入力やら音楽入力やらを省いた、単純なブロックとしてはこんな感じです。M78シリーズの5V1A DCDCを使用してACアダプタ―からの電圧を5Vに降圧、それを直接Piにかけるほか、NR1640という日清紡から販売されている超高性能LDO ICに流し、高精度な3.3Vを生成します。その電圧は74シリーズの高出力バッファへ入力してPWMを成形、その出力を4次サレンキー型アクティブローパスフィルタへと入力し、そのオペアンプを出力バッファとしても機能させている、といった感じです。

 このブロックで気を付けたいのは3点、DCDCのノイズ、論理バッファのノイズと出力インピーダンス、アクティブフィルタのオペアンプ選定です。

 

1. DCDCの選定

 このプロジェクトをするにあたってDCDCを2つ用意しました。Minmax社製 M78AR05-1 と、Rohm社製 BP5293-50 です。どちらも5V1A出力のものですが、同じ条件で100mA流してノイズを測定したところ、どうにもBP5293-50のノイズが大きすぎる。M78AR05-1が優秀過ぎる可能性もありますが、今回のプロジェクトではM78AR05-1を採用します。もし秋月電子で部品を調達する方は参考にしてください。

2. 論理バッファの選定

 TC74HC541APは古いICですが、±35mAまで流せる優秀な論理バッファです。これ以外にもいろいろ論理バッファはありますが、入手性、価格、DIPであることなどを考慮して試作品にはこれを使いました。ただし、バッファICを使用する上で2つ注意しなければならないのが、出力インピーダンスと電源のインピーダンスです。

 出力インピーダンスが低くとも50Ω程度あります。先にあるLPFのオーディオ帯域の入力インピーダンスが低いとノイズをよく拾ってしまいます。ついでに出力の直線性を失ったりひずみ率が高くなったりします。ご注意を。

 もう一つは電源のインピーダンスです。内部でFETを高速でスイッチングする都合、大きめのノイズを撒きます。NR1640のロードレギュレーションはかなり高水準のためそこまで心配する必要はありませんが、電源ラインのインピーダンスとデカップリングは注意したほうがいいです。PWM波形がそのままオーディオ波形になるため、ここでノイズが発生するとそれがそっくり出力に出ます。

3. アクティブフィルタ用オペアンプの選定

アクティブフィルタ用オペアンプにはISL28290を選定しました。これは

・SR 50V/us

・GBW 170MHz

・en 1nV/√Hz
・Io 135mA
・Vos 240uVtyp
・tset 45ns @1Vpp Cl1.2pF

とまぁ~高いスペックを持つRenesas製CMOSオペアンプです。まぁ製造終了しちゃったんですけどね。

ここで重要なのがGBWとセトリングタイムですかね。サレンキーはその性質上GBWが性能に直結します。GBW以上の高周波がフィルタを貫通してゲインが上がる(0dBを超えることはない)ため、発振気味にならない程度でなるべく高いGBWが欲しいわけです。3.3Vinでそれが実現できる唯一といっていいほどのオペアンプだったんですが、EoSで新しいものを探さなきゃいけない現状です。

一応、3PEAKという中国メーカーのTPH2502というオペアンプがSR200V/us、GBW120MHz、en6.5nV/√HzとISL28290には及ばないものの張り合える程度のスペックがあります。

 ちなみに面白い小ネタ?ですが、ISL28290のデータシートのAbsolute Maximum Ratingsの一番上、Supply Voltage の単位がmAになってます。おもしろいね。

 

 最後は簡単。ブレッドボードに組んで終わりです。

めっちゃ長いブレッドボードにすべてのコンポーネントを配置して配線するだけです。部品選定の100倍楽です。

 ここで注意することはいくつかあります。

1. DCDCはなるべくPiの近くに、 LDOは74HCのなるべく近くに。

 Piは基本3.3Vで動作するため基板にVin to 3.3VのDCDCが乗っています。ここからのノイズが結構大きいため、なるべくLDO側にそのノイズが飛ばないようDCDCを最短距離を目指します。

 また74HCは先に言った通りノイズに敏感なため、なるべくLDOの近くに配置してインピーダンスを下げます。また積セラコンを配置してノイズをセラコン側に吸収してもらいましょう。また、今回使用したNR1640 LDOはかなりCのESRに敏感なようで、1uFのセラコン1つでは全く足りません。なるべくコンデンサを複数並列に接続してESR・ESLを下げ、発振を抑制します。ついでにラインのインピーダンスが下がるため一石二鳥です。

2. ACアダプタからのノイズ抑制

 ACアダプタは回路で使われてるDCDCの100倍くらい(盛った)ノイズが大きいです。まだボード側からの伝播ノイズも大きめです。ACアダプタのコードにはフェライトコアを装着し、DCジャックのそばには1uF程度のフィルムコンデンサを載せることをおすすめします。

3. 74HCからフィルタへは最短距離で

 これは当たり前かもしれませんが、74HCとフィルタ入力のラインはノイズが乗りやすいです。このラインをなるべく短くすることがノイズを減らすうえで重要です。

4. Piへのジャンパ線はツイストで

 PiのGPIOは2列のためブレッドボードにそのまま差し込めません。そのため電源線やらPWM出力はジャンパ線での接続となりますが、電流が流れるジャンパ線(はほぼ1つしかないけど)はGNDのジャンパ線とツイストさせましょう。GPIOに5V入力は2つあるため、インピーダンスを下げるためにどちらにもジャンパ線を繋げることを忘れずに。また、GNDは8pin出てるので、それらすべてにジャンパ線を接続、またはツイストペアの意味を最大化するためにGNDを2本に絞るなど、各個人で工夫してください。

 

測定

 せっかくここまで詰めたので、測定もしましょう。測定にはArturia Minifuse 2のFront XLR入力のLow Impiedanceを使用します。XLR - 3.5mm Lch Balanceケーブルを自作して、ホットにLch、コールドにGND、グランドにシールドを接続し、仮想的なバランス入力を形成します。

ということで結果をドン。

Perfect.

 THDは0.08%(-62dB)と11bit精度を出せています。しかしTHD+Nは0.22%。とんでもなくノイズが大きいですね。ちなみに再度測定してわかったのですが、これグラウンドループによるノイズが思いっきり出ているようです。たしかにPCに接続したMinifuseと、PCと同じ延長コードから電源を取っているPiでループが形成されるのは理解しますが、XLRでバランス接続してGNDを切り離した意味isどこ?

モバイルバッテリーならTHD+N0.08%まで落ちるため、完全にグラウンドループが原因です。もうちょっと精度よく検証するなら、ADCを絶縁させるしかなさそうです。

 ここからは画像なしですが、検証した特性を羅列します。

・SNR(モバイルバッテリー駆動) 66dB

・2nd Harmonic 0.054%

・3rd Harmonic 0.045%

・IMDpower 16kHz/17kHz(モバイルバッテリー駆動) 0.04%

 

全体的にPWMとは思えない特性です。ノイズに関しては電池駆動や絶縁電源による駆動を検証できていないため未知数ですが...

 音については、まぁ他のDACと比較してどっちがいい!とかわかってしまったらそれは特性がよくないというのがわかるだけでして...

一応気づいたポイントとしては、音のアタックが鋭い気がします。次は矩形波出力してリンギングやらスルーレートやらを測ってみたい。

 

知見共有

このプロジェクトを進めるうえで気になったポイントをいくつか。

・ジッタが大きい

 400MHz(core_freq)を分周してPWM用のクロックを生成しているようなので、44.1kHz/48kHz系の逓倍周波数を作るのに小数分周を使っているはずです。そのためとてつもなくジッタが大きいです。これはPWMに限った話ではなくI2S用のBCKを生成するのにも関係しているようで、さまざまなブログやツイート(現ポスト)で確認できます。私のほうでも、PWMのキャリア周波数が798kHzから800kHzまでパラパラと変化するのが見えてるため、小数分周をするうえでスペクトラム拡散しているのはほぼ確実です。クロックの外部入力も公式で対応していないため注意が必要です。性能についても天井が下がってしまいます。

・コア温度

 コア温度が結構上昇します。といっても45℃程度のため小さいヒートシンク1つで事足りるとは思いますが、zero2のSoCの上にはRAMが載っています。はんだクラックが発生しないよう、温度管理をしっかりすることをお勧めします。

・音量

 こんな下の方に書くな!という話ではあるのですが、PiからのPWMをそのまま出力すると音量がバカです。とんでもなく大きいです。フルスケール0.8Vrmsくらいあるんでしょうか。16Ω負荷だと40mWくらいになります。そのままイヤホンに接続したら壊れます。音量を下げればいいじゃんという話ですが、ソフトボリュームを使用するとビット落ちやSN悪化が発生するため、なるべく可変抵抗やアッテネーターによるハードウェアボリュームを実装しましょう。ちなみにアッテネータには最低でも-20dB、おすすめは-40dBです。私は-40dBのアッテネータを使っています。それでも感度123dB/Vrmsのイヤホン(Moondrop Kato)で、ソフトボリューム80%でちょうどいい音量です。

本当に耳にダメージが入ると修復不可ですから、注意してください。イヤホンならお金を出せばまた手に入りますけど。

・音質

上の方でちょっとだけ書きましたが、個人的な考えとしてはDACそれぞれに音質の違いは基本的になく、設計段階での電源の精度、出力インピーダンス、過渡応答、IMDとマルチトーン...この辺の値が悪いと音質が悪くなると考えています。というか、音質は引き算でして、最高音質は原音です。そこからひずみやノイズが加算されて音質は引き算されるという状態と考えると、例えばAよりBのほうが音質がいい!というのはBの回路が優れているわけではなくAが劣っているとなるわけです。で、今回のPWMオーディオは音自体はかなり好きな部類ではあるのですが、市販32bit USB DACと比べてしまうとさすがに市販品のほうが音がいいとなってしまいまして、つまりPWMオーディオは劣っているわけです。残念!

 

次への展望(備忘録)

今後の展望ですが、まず基板化です。ブレッドボードでは特性の限界が近すぎて、測定どころじゃないというのが本音です。

また、特性評価の項目を増やしたい。今のところひずみ率とフロアノイズ特性くらいしか測定していません。ということで次回測定の備忘録として、

・THD+N

・IMDpower

・SNR

・SINAD

・フルスケール(Vrms)

・直線性(dB)

・インパルス応答

・マルチトーン(60~240Hz 12tone, 100~10kHz 48/64tone)

・矩形波応答(1kHz, 10kHz, Reflected square)

このあたりを測定しましょう。忘れなければ。

 

ということで、ここまでお付き合いありがとうございます。次回の予定は未定です。ま~1年後くらい?(笑)

PT8211 R2R-DAC ICの測定してみた

PT8211の測定をしてみました

概要

PT8211はPrinceton Technology Corp.から発売されている、CMOS 16bit R2R DACです。特徴として、安価であること、純粋なR2Rであること、電圧出力(オペアンプ内蔵)であること、384kHzサンプリングまで対応していることです。

秋月電子 @100円  

16bit2chDAコンバーター PT8211: 半導体 秋月電子通商-電子部品・ネット通販

データシートを見てもそこまで高性能を目的に作られたICではないようですが、個人的にすごく気になるので測定します。
測定にはDACアンプをブレッドボードで構成して、その特性を見るという簡易的なものです。

 

測定環境

PC(Audio IF側)  :  自作PC

記録ソフト  :  REW V5.40 Beta

Audio IF  :  Arturia Minifuse 2

PC(DAC側)  :  ノートPC

信号出力ソフト  :  REW V5.40 Beta

DAC入力  :  Exlusive, 16bit 48kHz

 

 

測定結果

指定がなければ、-6dBFS, 100Ω負荷で統一しています。

 

1kHz THD+N   0.091%  ENOB10.6dB

10Ω 1kHz -12dB THD+N   0.1%

10Ω 1kHz THD+N   0.11%

16kHz+17kHz -12dB Dualtone   IMDpower 0.16%  TD+N 0.26%

-12dB Multitone   TD+N 0.14%

-12dB Whitenoise

Klingelnberg 10.5+19+20kHz -12dB Tripletone   TD+N 0.21%

 

THD+Nはそこそこで0.091%(-61dB程度)をマーク。データシートにはTHD(Nなし)が0.1%typと書いてあるので、データシートでの測定よりは良好の模様。オーディオDACとしては...

10Ω負荷をとってもひずみがほとんど増加しなかったため、AMP側での劣化は少ないと思われます。純粋にDAC側の性能ですね。

Dualtoneでは差分周波数の1kHzがかなり大きく出ています。前のPWMのを見た後だとちょっと大きすぎますが、-72dBFSなのでほぼ問題ない範囲ではあります。

Multitoneでは多少のサイドバンドが見られますが、問題ない範囲です。低域でくっついて見えるのは窓関数(cos-sum)のせいです。へんなピークも見られません。

Tripletoneでも差分周波数が出ちゃってますね。こっちは差分に小数が出るので、その倍音が入力周波数と被らずはっきりと写ってます。ただ、その差分も同じく-70dBFS以下なので問題になることはほぼないです。

Whitenoiseによる周波数特性では、RCフィルタで20kHzが-2dB, カップリングCで10Hzが-3dBされていることが確認できます。フラットに20~20000Hzが伸びているため、変なひずみは発生しないでしょう。

全体的にフルスケールひずみは0.3%以下で、知覚できる範囲には入っていません。が、範囲にだいぶ近いため音楽によってはわかるかもしれません。

 

気になった点として、PT8211の出力Rがかなり大きいです 内蔵オペアンプが貧弱なのか、RCフィルタの入力を触ると電源周波数(50Hz)が爆増します。東日本住みがバレる。

DAC出力直近にフィルタとオペアンプを配置するなどの工夫が必要そうです。

また、データシートには電源にRCフィルタを配置するというかなり強引な回路設計がなされていました。さすがにロードレギュレーションを犠牲にノイズを減らすのは気が引けます。適当なLDOでレギュレーションするのがいいと思います。今回のはSenseピンで4k wireまがいなことができるLT1763-3.3を選択。一応PT8211は6Vまで動作しますが、気楽に使える電源が5Vしかなく、しかたなく3.3V動作。たぶん、上限6Vで動作させたほうがTHD+N性能は格段に上がると思います。

 

まとめ

オーディオDACとしては低性能ですが、個人的なR2Rへの興味が満たされたため満足です。このICで高性能を目指すなら32個くらいパラ接続してENOBを盛るのがいいのかな?でもそうなったら合成Rの選別が大変そう。

LDOを考える。

備忘録みたいなものです。( `・∀・´)ノヨロシク

 

LDOとは : 低ドロップアウト電圧のこと。LDOレギュレーターとかのLDOのこと。

 

ディスクリートレギュレーターを考えていたときに思いついたものたちを考察します。

具体的に、PSRRの向上を目指します。目標は低域100dB、中高域60dB。

 

レギュレーターの基本形。素子3つでできますが、出力電流によって出力電圧が大きく変動してしまいます。

 

BJTを2つ使ったレギュレーター。この時点でPSRRは20dBは確保できます。

 

この形から詰めていきます。まず、出力電流が変化すると影響を受けるのが、上のTrのベース電流。ベース電流を抵抗で作っているため、PSRRが低下します。10kΩを定電流

にしてみましょう。

 



今更ですが、この記事でのLTSPICEの設定をば。

.ac dec 1k 10m 100G

出力電圧設定 3.2 ~ 3.4V

電源電圧 5V

トランジスタ NPN 2N3904 PNP 2N3906

出力抵抗 1kΩ

グラフはマイナスがついていますが、絶対値を取った値、つまりプラスにした値がPSRRになります。設定で1/nすればいいだけではある。

色の薄い方は位相です。見にくい。

 

低域で約90dB確保できました。が、高域はダメダメです。

 

出力に22uFのコンデンサをつけてみました。全域で85dBのPSRRを確保できました。しかし、目標には到達せず。基本形を見直します。

 

PNP出力形です。PNP出力かつオペアンプ不使用ではこの形が最小だと思われます。
発振のため出力に10uFのコンデンサを装備。低域PSRRは驚異の120dB。ただし、変なピークが発生。オペアンプと同じ要領で補償が必須のもよう。

 

つぎ、I1の定電流をどうするか問題です。最初のほうで抵抗から定電流源にしたらPSRRが大幅に向上したことからわかる通り、定電流回路のPSRRが最終出力のPSRRの数値に大きな影響を及ぼします。電圧を安定させるために電圧を安定させる必要があるわけです。

定電流はなにがいいか吟味した結果、一番右がもっともPSRRが高かったです。さきほどのPNP出力形に組み込みます。

 

と、ここで気づきました。あれ?ここの電圧低くない?

電圧が表示されている箇所(601.599mVのとこ)は、先のPNP出力形の定電流の出力部分です。ここ、最終出力電圧をいくらいじっても、出力電流をいくらいじっても、電圧が1Vにも達しませんでした(そりゃそう)。つまり、定電流回路に供給する電源を、別のPSRRが高い電源に交換してやればいいわけです。電流消費は多くて10mAですから。

 

 

最終形態です。C1の数値を入れ忘れていますが、結果のところでは22uFが接続されています。C1が接続されている場所は、例のPSRRの高い、低消費電力かつ低出力の電源からの出力です。たぶん2.7Vくらいの出力です。その先にPNP出力形の定電流回路がつながっている感じです。例によって、PNP出力のレギュレーターの発振のためC2、C3で補償しています。R10、C4は中域のPSRR向上のためについています。これがあるとないとでは雲泥の差です。

PSRRは低域で120dB、1~10kHzあたりで85dB以上、1MHzより上の高周波領域では低域以上という結果になりました。

 

以上です。わかったこととして、NPN出力ではドロップアウトの問題でPSRRが伸びませんでした。帰還倍率もそこまで高くないため、しょうがないでしょう。PNP形は安定性に難がありますが、帰還倍率が高い証拠です。定電流回路に力を入れればPSRRが圧倒的に向上することもわかりました。また、いろいろ研究した結果R10とC4のようなスナバ回路が結構有用だということがわかりました。

EARNiNE EN120 短期使用レビュー

どうも、Ynicoio です。

EARNiNE EN120という1BAイヤホンを40時間程度使用しましたので、レビューします。

個人の感想が多少含まれているため、ご了承ください。

 

https://twitter.com/YnicoioI/status/1707047058199466438?s=20

品質

金属筐体でかつ金属のプラグボディはバリ一つなく、コストかかってそうです。色も落ち着いているため、とても気に入っています。

ケーブルは細い3芯編み+2芯編みのケーブルです。分岐のところではんだ付けされているようなので、インピーダンス的に不利かもです。

音質

音楽鑑賞の際には、以下のシステムを使用しています

  PC     : USB → Arturia Minifuse 2 → 6.35mm to 3.5mm Plug → EN120

スマホ   : USB → Tanchjim Space → 3.5mm Jack → EN120

 

Minifuse とTanchjim Spaceの音色傾向は似ていて、どちらも寒色系の音色です。

 

低域(~200Hz)

さすがに1BAに低域を求めるのはいかがなものかと思いますが、量感は圧倒的に足りません。ただ、音量が足りないわけではなくて、曲のリズムをとる最低限の音量はあります。また、音色はだいぶいい感じです。ある1DD+1BAイヤホンと比較しても、かなりきれいな輪郭が浮かんできます。いい武器になると思われます。

中域(200~800Hz)

男性ボーカルあたりの音域になります。私がそこまで男性ボーカル曲を聴かないため参考にならないかもしれませんが、grace / 藤井風 なんかは藤井風氏のキラキラした色っぽい声が見事に再現されていました。Electricaなど電子音楽曲には少し物足りないかもしれませんが、解像度はかなりのものです。定位は近めなので、クラシックは臨場感が足りずもったいない感じもします。ボーカル曲が強いイヤホンです。

中高域(800~5kHz)

BAドライバの真骨頂の帯域ですね。この音域はMoondrop社 Katoなど1DD機と比べても遜色ないどころか、さらに趣のある音に仕上がっています。歪感も少なく、女性ボーカルが映えます。定位が近いのもあり、耳元で歌っているように感じられ、ある種の臨場感を味わえます。低音に埋もれにくいこともあり、中域は値段以上の価値があります。

高域(5kHz~)

ここら辺は金物やフルート等高音楽器など、輝きや臨場感、空気感を作る音域です。スネアやハイハットは尖らず濁らず、ちょうどいい質感に仕上がっています。ただ、歪感がすこし大きく、うるさくなりやすいです。私はMoondrop社 Spring Tips を使用し高域の強調を抑えています。(私は聴覚過敏で高域がうるさく感じやすいため、気になるだけかもしれません。ご了承ください)

エージングについて

箱だしから40時間程度聞き込んだわけですが、エージングが必要な機種だと感じました。とくにDD機を好んで使用するリスナーは、絶対必要だと思います。ちなみにここでいうエージングとは、耳や脳への音慣らしのことです。ピンクノイズやホワイトノイズ垂れ流しでは効果を得られないと思います。

総評まとめ

かなりの良機種だと感じます。販売終了品のためかAmazonで2000円で買えますし、なにより高くなりやすい1BAを低価格でお試しできます。木を組んで燃やしてそうなメーカーなんかの1BAは手を出しにくい価格してますから、一度このイヤホンで1BAを試すのもありだと感じました。

音質も高価なものに比べても遜色なく、満足です。

 

新型オペアンプ回路のシミュレーション

どうも。Ynicoioです。

低歪オペアンプ回路を作成しました。

二段増幅です。一段目はPNトランジスタダイオード接続して負荷にしたものを、正負入力でつなげたものです。二段目はふつうのエミッタ接地ですね。ゲインは後段のバッファのゲインによって変化しますが、だいたい100dBは出ます。

 

この回路の何がすごいかって、LTSpice で歪率が-160dB以下なことです。

二次歪、三次歪、それ以降ともに-160dB以下です。

 

これには、一段目のダイオード接続が大きいと考えられます。入力トランジスタにつねに入力トランジスタのエミッタ電流と同じ電流をそれぞれ流せるように制御されるため、抵抗やエミッタ接地などの非線形負荷に比べ歪が小さくなります。

 

二段目はけっこう自由に設計できます。今回はゲインが不足しがちだったのでいつものエミッタ接地を使用しています。歪を減らすためにはウィルソンカレントミラーとかを使用するといいと思います。

 

後段はバッファです。この回路ではBJTペアのバッファですが、ここをJfetペアのバッファにしたりしてバイアス電流を流れないようにすれば、さらなるゲイン増加を見込めます。

 

この回路は何もしないと位相が回ります。位相補償またはゲイン設定が必要です。

2(または3)段ゲインオペアンプをシミュレーション

2(または3)段ゲインオペアンプをシミュレーション+解析します。

まずは回路を示します。

 

 

NPN入力、SEPPもどきバッファです。

Q1、Q2はI1とI2に電流を流し、約0.6V(Q1、Q2のVbe)ほど中点電圧の下がったバッファです。Q7、Q8はバッファされた電圧をカレントミラーで40dBほど増幅します。gmによって変動しますが、だいたいそのくらいです。

Q5、Q6はQ7、Q8に電流を供給しますが、ここは定電流でも構いません。ただし、ここが定電流だとOP42みたいな回路構成になり、ゲインがものすごく低下します。もしかしたら動かないかもしれません。

そこで、Q7Q8のゲインをさらに高めるため、Q3+Q5、Q4+Q6でカレントミラーを構成してQ1Q2のIcを流してやります。これだけでゲインも稼げるのでお得です。

Q1~Q8で一段または二段です。これは全体でみれば一段ですが、細かいところでみると上下で増幅しているので二段ともいえるからです。私はこれを平面増幅段と名付けました。

Ic(Q1)=Ic(Q3)=Ic(Q5)=(I1)/2

Ic(Q2)=Ic(Q4)=Ic(Q6)=(I2)/2

が成り立ち、Q1+2、Q3+5、Q4+6のHfeがそろったとき、非常に高い対称性が発揮されます。

 

Q9はただのエミッタ接地です。ダーリントンにしてゲインを稼ぐのもいいですが、ノイズの観点から一段です(平面増幅段がほぼノイズの塊)。また、ダーリントンにせずとも120dBほど直流ゲインを稼げるため、あまり関係ないというのもあります。

 

Q10~Q12はほぼOP42のバッファと同じです。ダイオードを2つ使うものとほぼ同じです。

 

シミュレーション結果です。

スルーレートは40V/us程度でしょうか。過渡応答がまあまあ汚い気もします。

ゲイン特性です。10mHzは110dBほどでした。使っているTrモデルがお粗末なのであまり信用なりませんが、GBWは660MHzまで伸びています。位相補償は1.5pFなので、安定性はばっちりです。

入力換算ノイズは2.6nV/sqrtHzです。ADA4075-2より少し小さいくらいです。

 

まとめ

現代のオペアンプはほぼシーソー型の初段を採用しています。そのうち半数はカレントミラーを負荷にして初段でゲインを稼ぎ、片側増幅で巨大なゲインを稼ぐという構成がですよね。精度を気にせず特性が出せるのが魅力ですが、平面増幅段なら4つデュアルトランジスタを使えば精度もおのずと出ます。そうすれば8石+定電流で済みます。速度も安定度も圧倒的ですから、結構いいものができたんじゃないかと思います。

ディスクリートオペアンプの回路シミュレーション

はじめまして、Ynicoioです。

オーディオ回路やアナログ回路を主に勉強しています。

 

初めてのブログはオペアンプディスクリート回路をシミュレーションしていきます。

 

早速ですが回路を載せます。

アナログデバイセズの高価格帯オペアンプによく採用されている一段ゲイン増幅回路を

自分なりに解釈・設計したものです。

電源に±15Vを使っていますが、シミュレーション上では±3Vから動作します。

 

初段に高hFeトランジスタを使い、初段のゲインを上げています。Q5+Q6+Q15でカレントミラー式電圧電流変換を行い、Q7+Q8で定電流を構成しカレントミラーによって100dB近くまで信号を増幅します。

終段にはダイヤモンドバッファとインバーテッドダーリンを使用しますが、ポイントは定電流回路です。この回路ではQ11とQ12が担当していますが、これらがないとバッファのゲインが低下し、オペアンプ全体の歪が悪化したりスルーレートが遅くなったりします。

 

位相補償にはC1+C3で構成しています。C1は周波数帯域を減らす、C3は位相を持ち上げる役割です。

濃い方がゲイン、薄い方が位相です。

0dBで13°稼げています。供給電圧が下がるとゲインも下がりさらに位相余裕は増えますし、C1を増やすことでも対応できます。GBWは10MHz以上なのでオーディオ用途にも十分です。

 

この回路の欠点は立ち下がりスルーレートが極端に遅いことです。立ち上がりが100V/usほど出るのに対し、立ち下がりは1~3V/usです。これにはゲイン段のカレントミラーのhFeが足りないことが挙げられます。2N3906を使用していますが、ここに周波数特性のよい高hFeのTrを使うことをお勧めします。

 

直流ゲインはぴったり100dB、競合はADA4898になるでしょうか。回路は違えど同じ一段ゲイン増幅回路ですからね。

 

これは1kHzサイン波の歪率です。2Vp-p、Rl=2kΩ、G=+1、Vs=±15Vです。

ローパスフィルタを入れていないので高域が大変なことになっていますが、1MHzまで全帯域で-160dB以下です。信号ゲインは-2dBほどなので、THDの計算式にならい計算すると、-169.59dB(0.00000035%)です。非常に低歪率ですね。市販のオペアンプはたいてい-140dBが限界ですから、シミュレーションがどれほど正確かわかりませんがそうとうな性能を持っていることがわかります。

ちなみに、初段に約3mA流しているので入力TrのIbは1.6uAと大きく、何かしらの対策が必要だと考えられます。