THAT5171_bf862_2

ローノイズなマイクプリアンプを自作

Pocket

ことの始まりはこちらのレコーディングによるオーディオ機器の比較記事です。オーディオでの現場でしかわからないよう微細な違いをレコーディングする試みです。この試み自体はなんとか成功していますが、まだまだ現場での変化の大きさと同じように見えるデータ化には程遠く、録音された音を聴き比べても違いが現場の一部しか取れていないのが実情です。

そこでレコーディング機材をアップグレードして再チャレンジをしてみたいと思い、まずはマイクプリを改良してみようというものです。

前回のレコーディング機材はTascamのUH-7000です。RMAAから判断すると10万以内の機材では良い方ではあるのですが、正直オーディオの音質差を録音するには力不足かもしれません。どのレコーディング結果を聞いても同じような癖が乗っているように聞こえています。実際にUH-7000からの出音にも録音とよく似た高音の癖が乗ってしまっているので、おそらくUH-7000のADやアナログ回路の音作りの癖が真の微細な描写のボトルネックになってしまっているような気がしています。

もうUH-7000レベルではADCだけではなくマイクプリ段も所詮おまけレベルですから、オーディオの音質差を録音に求められる品質はさすがに期待できません。ということで今度は本命として現在最高峰のADC性能を誇るうちの測定器Lynx Hilo(驚くべきことに搭載ADCのスペックを凌駕する内容です)を使ってみたいのですが、これは残念ながらマイクプリが内蔵されていないため今のままだとHilo単体ではオーディオのレコーディングはできない状態です。

ということでマイクプリを買おうと市販のマイクプリについていろいろと調べてみたのですが、ローノイズ、高特性路線のものは残念ながらほとんど無いようです。今時だと安いインターフェースも高いインターフェースも内蔵マイクプリがありますから、わざわざ外付けでマイクプリを買う人は本格的な音作りか高性能かどっちかだと思うのですが、昨今のニーズを考えると現在の主流はやはり音作り系のようですね。

比較的低価格帯(10万円いない)だと真空管が乗ってたり半導体でも特性が悪いものが多く、見た限りでは色付け系の機材ばかりで、こちらの今回の用途には不向きな製品ばかりの印象でした。フォーカスライトが唯一高特性タイプを低価格帯で作ってましたがもう一歩進んだスペックのものが欲しいです。

抜きん出ている性能で良さそうなものはEarthWorksのマイクプリでしたが、かといって今回の用途的に数十万円出して買うほどでもないので、もうそれなら自作スキルはあるのだから自作に行ったほうが良いのでは?という結論になりました。

海外含めてもディスクリートのローノイズマイクプリにチャレンジしているような作例は少なかったので、設計検討から実験の記録をここに記したいと思います。

設計方針

  • ほとんどの市販マイクプリよりローノイズ性能を目指す
  • XLRステレオバランス入出力
  • ファンタム電源内蔵
  • ファンタム電源はオンオフ切り替え可能
  • ゲインは固定ではなく~60dB程度に調整可能(できるだけラクに)

こんなところです。マイクプリで検索するとあまり突き抜けた性能の回路は見つからないので、マイク用の回路ではなくて測定用のプリアンプ回路を応用することでマイクプリ用途でも極限の超ローノイズ性能を狙えそうに思いました。いろいろ調べてみると超ローノイズな測定用プリアンプ回路の情報は次のようなサイトに情報がありました。

http://www.hoffmann-hochfrequenz.de/downloads/lono.pdf
こちらはADA4898を20パラにして強引なローノイズを実現している回路です。設計は簡単ですがかなりの力技なので基板面積も大きいし高級オペアンプを大量に消費するのでとてもコストが掛かりそうなのがマイナスです。一番の理由はロマンと美しさに欠ける点。わざわざこの設計で作ってみたいとは思わないです。堅実ではあるのですが。

http://www.synaesthesia.ca/LNschematics.html
こちらにもいろいろな回路が掲載されていますが、この中でもっとも無駄が少ないシンプルな実装はBF862を8パラにしたこちらの回路でしょうか。

HPS51-headamp-sch
これはディスクリート+オペアンプという構成なので部品点数が少ないのが良いところです。今回はXLRステレオで作らなければならないので部品点数は少ないほどよいです(4ch分必要)。それだけ設計に無駄がないということではないでしょうか。

この回路は差動ではないのでDCが盛大に出ますからDCサーボが必須です。でも実はディスクリートでの差動だとどうせ選別調整しないと大きいオフセットが出てしまいます。温度変化にも弱いですね。ということでこのようなゲインの大きいアンプを作るときはどうせディスクリートでは差動精度は確保できないですから最初から差動にせず割り切って素子をパラレル化+ローノイズ化のために回す設計のほうが合理的と思いました。

またこの回路全体のローノイズ性能はオペアンプの性能依存ではなくて初段で大半のローノイズ性能を実現することになりますから、使用するオペアンプへの性能要求が低く、比較的安いオペアンプでも高性能を実現できそうなのが良いところです。

ということで今回はこの回路方式を基礎にしてマイクプリアンプ用に改造してみたいと思います。

ちなみにBF862はハイゲイン&ローノイズのJFETで海外の測定例によると国内でよく見かける2sk170(LSK170Aが同等品)よりローノイズみたいです。高周波用なのに1/fノイズもかなり低い位置にあるのでこれを見るとかなり優秀な特性ですね。ただしどこかのコメント(失念)で書かれていた話しによるとローノイズではないものがあったりと個体差もあるらしいのでこのデータはあくまで参考程度となるのでしょうけれども、高いポテンシャルを秘めているのは間違いありません。

IFD2542_FO

ちなみに、究極性能を目指すならこんなJFETがあります。非常に高いスペックでデュアルなので惹かれますが、価格が高く単体で5000円以上するので購入はかなり躊躇してしまいます。本格的な差動の測定回路用でしょうか。今回はBF862パラが現実的ですね。

http://www.interfet.com/datasheet/IF3602/

ゲイン調整の方法を検討

次に検討するべきはゲイン操作です。極限のローノイズを狙うならリードリレーなどで予め用意した定数の抵抗に切り替える方法がベストになりそうです。ただ面倒だし物量も大きくなってしまうので、できればやりたくありません。

特にBF862の回路だとNFB抵抗に非常に低い抵抗を使っているためバッファアンプを挟まないとこのNFB抵抗を駆動できないのが最大の課題です。これ以上ゲインを下げようとするならゲインによってR7も最適化しないとバッファアンプがあってもすぐ定格オーバーになります。二種類の抵抗の選定と周辺パーツの定格も考えて選定しないといけません。あとリレー切り替えの瞬間にゲインが振り切ってもまずいのでゼロクロス検出するとか安全設計も考えないといけないような…。

うーん、正直面倒ですね。なのでリレー方式は将来の課題にします。

結局いろいろ検索して調査した結果、THAT5171というICを使うのがもっともシンプルな設計(楽な設計)にできそうな気がしました。THAT5171はマイクプリ用のICでSPIによる抵抗切り替え可変ゲイン、DCサーボも内蔵のいわゆる電子ボリュームのようなICです。普通の電子ボリュームと違うのはゲインを下げるのが主目的ではなく、ゲインを上げる事に特化している点です。

that5171_1580_sample_schematic

5171のデータシートに記載されているリファレンス回路はこんな感じです。48Vのファンタム電源も乗っているので完全にマイクプリ用の回路ですね。このTHAT5171は同社のアンプICであるTHAT1580を使って組み合わせることが前提の設計のようで、THAT1580+5171だけで可変ゲインのローノイズプリアンプとして完結できる設計のようです。

実はこの組み合わせだけでも十分なローノイズが狙えるようで、スペックを見るとこのような感じです。実はこれだけでも結構優秀で現在市販されているマイクプリの中ではかなり高性能なスペックだと思います。1580もゲイン60dB時に1nV/sqrHz相当なのでなかなかの実力です。調べてみると同じような形式のアンプICで同様の機能のものがアナログ・デバイセズからも出ていますが、データシートを見ると1580のほうが低ゲイン時の性能が高いので、素のスペック自体はTHAT1580がこの種類のICでは最高性能かもしれません。

that5171_1580_spec

ただ正直THAT5171を使う場合にはIC内蔵のNFB抵抗値が高いので、アンプではなくNFB抵抗由来のノイズ性能が最終ノイズの制約になってしまい結局極限のローノイズとは行かないでしょう。次の表が5171のNFB抵抗値ですがICだと定格が厳しいようであまりに低い定数は電流と発熱の関係により使えないようです。シミュレーションで見た限り2mAくらいが流せる限度のようで、きっちり定格を守れるような定数が選別されているように思います。

that5171_1580_nfb_r

本当は1kくらいのRaRb抵抗値も選びたいのですがこのような低い値は設定できません。ですのでこのNFB抵抗部分だけはディスクリート構成にしないと真の超ローノイズの世界には行けないだろうと思っています。記事タイトルで超ローノイズと書けなかったのはこの5171のNFB抵抗がボトルネックになることがわかっていたからで、この部分を解消するにはめんどくさいリレー切り替え式で抵抗しなければなりません。

まぁ細かいことは実際に実験してから考えるとして、とりあえずは5171+BF862パラレルで設計してみたいと思います。

回路の検討

BF862のオリジナルの回路から変更する必要があるのは次の点です。

  • XLRバランスに対応するため実質2ch分の回路が必要
  • 5171と連携するためにRgを取る場所を作る
  • 5171に合わせて全体の定数見直し

まず5171を使う時点でRgを入れる場所を作ります。次に5171の内蔵NFB抵抗が大きいのでバッファアンプが不要になります。DCサーボも5171に内蔵されているので5171のものを使うようにします。これらは物量を大幅に減らせるので良いですね。

次に5171内蔵のNFB抵抗がトータルノイズ量で支配的になると予想されるので初段は8パラではなく4パラにします。オリジナルの設計はBF862が電流を流さないとゲインが稼げないためこの初段に多大な電流を流しています。トランジスタも抵抗も発熱が大きく定格の大きい部品を使用しなければなりません。オリジナルはローノイズのために電流消費は完全無視のかなり振り切った設計になっていますが、こちらのものは上記の通り5171を使うことによってローノイズ性能はある程度頭打ちになるので、今回はオリジナルよりも電流量を減らしてギリギリ小型部品を使えるように設定しました。

that5171_bf862_schematic

ディスクリートよりTHAT1580のほうが圧倒的にローノイズでした!

これらを踏まえて出来上がった回路がこちらです。一応回路図は丸パクリ防止のため定数は全部削除してありますがある程度スキル有る方ならデータシートを見たりシミュレーションで検討すれば穴埋めは全然難しくはないでしょう。あとは注意点としてまだ実際の動作実験をしてないので回路シミュレーションでうまく行っていてもどこかに動作上の問題が有る可能性も残されています。参考に作成する場合は注意してください。

that1580_that5171

今回はソケット式にしてあります。2ch分作るのが面倒だったのもありますが、BF862ディスクリート型で動作が上手く行かなかった時のためにTHAT1580仕様のものも作りました。上の画像がその基板です。

microphone_preamp_base

ソケットをのせる大元のベース基板はこちらです。今回Innocent Keyオーディオ部のロゴを試しに入れてみましたが、Design Spark PCBがこういう画像追加機能に対応していないのでフォントにロゴを埋め込んで無理やり乗せたせいか、綺麗なガーバーデータで出力することが出来ませんでした。残念ながら細部がかなり潰れていますが今回はこれで諦めています。こういうところがフリーソフトの課題ですが贅沢は言えません。

以前キット化検討でLPC11Uシリーズを選んで痛い目にあったので制御マイコンは今回は動作実績のあるLPC824を選びました。ファンタム電源とデジタル電源の生成にはICを使った個別部品のスイッチング電源です。このように自前でスイッチング電源を構成する利点はコストが一番ですが、他にもより進んだノイズ対策を実験できる点も良いです。市販の既成品は結構残留ノイズが多いので結局自前で追加フィルタなどが必要になってしまいます。今回は初めての試みもあるのでうまく動くかわかりませんが、爆発しないでうまくいったらローノイズに仕上がっているはずなのでスイッチング電源のノイズレベルも測定して公開したいと思います。

ということで現在基板発注して到着待ちです。基板がとどいたら続報を書きます。

基板到着>実装>動作チェック 2016年8月21日追記

THAT5171_bf862_1

先週に基板到着していたのですがようやくまともに動作チェックが出来たので苦労した点や、データシートの仕様でちょっと気になる点などをまとめてみたいと思います。

THAT5171+THAT1580基板

まずICだけの基板から動作テストをしていましたが、最初に実装したときは、まともに動きませんでした。

THAT5171_1580_1

計測するとなぜかTHAT5171側のマイナス電源に異常に大きい電流が流れています。いつも初めて電源をいれるときは200Ωくらいの抵抗を電源に挟んで入れているのですが15Vが3V位になってしまっています。電源の抵抗を減らしても電圧は上がらないのでショートに近い状態になっていてICを破壊するまで電流が流れそうな気配です。データシートを見てもマイナス電源に40mA以上ながれることはなさそうなので何かおかしいと思います。

ここでリファレンス基板のパターンを見直しますが、Veeの処理でひとつだけ違うところが見つかります。それは赤矢印のところです。

THAT5171_1580_2

当方の基板ではサーマルパッド部とVeeを接続しているのですがリファレンスではここは接続しないようです。ですが5171のデータシートを見るとサーマルパッド部の説明にこのように書いてあります。

Connected internally to Vee. Solder to PCB (optionally connect to Vee) for optimal performance.

念のためリファレンスが正しいと判断して、もう一枚別の基板ではVeeとサーマルパッド部の接続をカットしてから実装してみたところ、無事動作しました。なんとデータシート通りにこのVeeをサーマルパッド部に接触させてしまうとダメみたいです。データシートに書いてあるのに実際にやってみたら動作異常ってのはちょっとありえませんね。THAT社のデータシートの信用度はかなり落ちるようです。

まぁ一応ハンダ付けミスという可能性もありえなくもないのですが、新品のICの裏面をテスターで測ってみてもVeeとサーマルパッドは道通していませんでした。なのでこの部分、非常に怪しいです。おかげで1580+5171をひとセットダメにしてしまいました。

この部分で引っかかった以外はIC二個だけの構成ですから、あとはすんなり動作しました。

THAT5171+BF862基板

THAT5171_bf862_2

こちらも引っかかるポイントが有りました。動作異常だったのは出力のDCオフセットです。オペアンプの出力が負電源電圧に張り付いたままになってしまいます。この回路、シミュレーション上では5171に内蔵しているDCサーボアンプがDC対策を一手に担う設計ですが、どうやら調べてみると5171に内蔵するDCサーボアンプが正しく動いていないようです。

that5171_bf862_schematic

理由は、オペアンプの+-入力電圧を調べてみると、DCサーボアンプ出力側の電圧が常に0.6V位低いようです。入力信号の変動に応じてこの部分の電圧はきちんと変動するのでDCサーボアンプは正しく動作しています。どうやらDCサーボ自体が原因不明ですが常に0.6Vくらいオフセットを出してしまっているようです。

実は再確認した所、1580+5171基板の方でも出力にマイナス0.6Vのオフセットが出ていました。1580+5171基板は定数もリファレンス通りですので、これはどうやら5171内蔵のDCサーボ自体がこれくらいのオフセットを常に出してしまうようです。

シミュレーション上で検証するとこの回路ではオペアンプの差動入力の電圧差はそのまま全力で増幅されてしまうため、この部分のオフセットはかなり厳しい要求スペックです。ここで10mV位ずれてもダメなくらい重要な箇所ですから、0.6Vずれてるとかは論外です。またTHAT側に起因する問題ですね…勘弁して欲しいです。

これはもう外部DCサーボアンプを別途用意するのが最適解です。いろいろ回路上の工夫でオフセットを打ち消す努力はしてみましたが、結局差動精度がディスクリートでは確保できないので、素直にDCサーボアンプを用意するのが一番手っ取り早かったです。こんな回路も考えたのですがディスクリートじゃ精度確保が難しくて、実際にやってみてもやっぱりDC地獄でした。

THAT5171_1580_3

シミュレーション上ではこのアイデア+入力部にDCサーボ追加する方法は有効そうでしたが、5171のDCサーボは入力抵抗が20kと低く、この回路だと出力部の抵抗を低く出来ない為、DCサーボは実質動作しません。ということで今回はこのような対策で上手く動作させるのは実際には難しそうなのでやめました。ですがこの方法はいろいろと面白そうなので、今度入力部の定数をこの回路を使えるように変更してチャレンジしてみたいと思います。

今回は結局素直にDCサーボアンプを外部増設することにしました。

THAT5171_bf862_4

パターンをカットして…

THAT5171_bf862_3

本当はもっとローノイズのICが良かったのですが他に選択肢がなかったのでOPA2277(取り急ぎ近所の秋月で買ってきました)です。今回はこいつを裏面に付けてなんとかします。

この対策によって無事動作しました。やっぱりTHAT5171内蔵のDCサーボがダメ性能でした。ということで今回の製作記事はTHAT側の問題ですごく手こずった気がしますね。困ったものですので、今度英語で今回の実験結果とか本家に送ってみます。

ノイズの具合を計測

さて、ようやく無事動作出来たので楽しいノイズ計測の時間です。BF862のほうはとりあえず近くにあったLME49720を使っています。

計測はDAC出力を無音状態で接続してDACの残留ノイズを今回作成したアンプの入力にバランス接続しています。マイクだとノイズレベルが高すぎるので手持ちでもっともローノイズな発振機でもあるAK4495S-DACを信号源として使います。

THAT1580_gain6db

THAT1580 ゲイン5.6dB時

THAT1580_gain60db

THAT1580 ゲイン60.6dB時

bf862discrete_gain6db

BF862+LME49720 ゲイン5.6dB時

bf862discrete_gain60db

BF862+LME49720 ゲイン60dB時

60dBのFFTで0.1Mhzから盛り上がっているのはDACのノイズシェーピングでしょう。そして2Mhzくらいでノイズシェーピングの成分が消滅しているのは、今回作成しているアンプの帯域幅がだいたいこの辺だからではないかと思います。

スコープだけ見るとBF862のほうが圧倒的にローノイズですが、それよりも重要なのは音声帯域内のノイズレベルです。スコープではなくてFFTで音声帯域に近い低周波領域をよく比較してみると、実はTHAT1580のほうが現状ではローノイズに仕上がっています。帯域外ノイズは圧倒的にBF862がローノイズなのですが。

ディスクリートにここまで物量を投入してもダメか…で終わっては意味がないのでちょっと原因を考えてみたいです。

まずBF862の初段自体は普通の構成ですからここにノイズの問題はないと思います。この部分は十分ローノイズなはずです。最大の問題はやはりDCサーボまわりじゃないかと思っています。現状だとDCサーボの出力が二段目のオペアンプの+入力にそのまま入力されているのが問題で、この+部分に入るDCサーボのアンプノイズ+抵抗ノイズは、BF862からくる初段回路と全く無相関のノイズですから、そのままLME49720でノイズごと大きく増幅されてしまいます。

帯域内ノイズがやけに多い理由はDCサーボノイズを増幅する仕組みになっている部分が原因ではないかと思っています。実際にこのDCサーボの抵抗値を変えたりRCフィルタを入れてみるとノイズレベルに変化があったので、可能性としては十分にありえそうです。

HPS51-headamp-sch

オリジナルの回路を見ると、DCサーボにはOPA827、サーボ出力に1kΩ+1000uFのフィルタを使っています。やっぱりここはローノイズにしないとダメみたいです。

ということで今回はまだTHAT1580を完全に上回るところまでは辿りつけていませんが、また時間が取れた時に帯域内ノイズの対策をして、さらなるローノイズ化に挑戦してみたいと思います。次回はベース基板を違う定数でもう一枚作成して、今回没になった二段目を対称差動回路にしたバージョンを実現させてみます。これによりDCサーボを入力段で取れるようになるので現状よりローノイズ化が狙えるはずだと思っています。

2016年8月28日 結論編

あれからいろいろ試したのですが、ディスクリート側のノイズレベルは下がりませんでした。ノイズ源を見つけて排除したりしたのですが一定レベルからよくならないようです。

そして決定的な事実がわかります。Lynx Hiloにプリアンプの出力をバランス接続して帯域内ノイズを測定してみると、THAT1580が圧倒的にローノイズでした。この差を埋めるには根本の設計変更をしないと不可能だと判断していい位の格差だと思います。まぁこちらのディスクリートがどこかで見落としをしている可能性もありますが。

実際の測定値を貼ります。THAT1580では5171の設定ゲインを下げるほどLynx Hiloの測定限界まで綺麗にノイズレベルが下がるのに対して、ディスクリートの方ではある一定のノイズレベルから下がりません。ゲイン設定にかかわらずアンプノイズが一定量漏れ出てしまっているということです。最大で20dB以上水を開けられています。これはちょっとやそっと対策して超えられる差ではありません。

特にTHAT1580の5.6dB設定時はLynxHiloのノイズフロア以下までノイズレベルは下がっており、この測定ではプリアンプ側の真のノイズフロアは見えていません。

WS_BF862_6db

BF862ディスクリート 5.6dB gain設定時

WS_THAT1580_6db

THAT1580 5.6dB gain設定時

WS_BF862_30db

BF862ディスクリート 30.6dB gain設定時

WS_THAT1580_30db

THAT1580 30.6dB gain設定時

なぜこのような違いが現れるのか不明ですが、このような圧倒的な性能差はシングルエンドで測定しているときには現れない現象なので、バランス接続による同相ノイズ打ち消し後に生じている性能差のようです。シングルエンドで測定している限りはここまで格差のないノイズレベルです。

THAT1580+THAT5171を組み合わせた時には、差動精度が極めて高い+一部のノイズが同相となるような設計になっており、バランス接続時にほとんど打ち消されるような設計になっているのではないかと思っています。いずれにせよこれはメーカー側のノウハウでしょうし、そう簡単に超えられるような技術じゃないですね。

ということで残念ながらディスクリート版は失敗作でしたが、THAT1580を使うことでLynxHiloの測定限界までノイズフロアを下げること自体には成功していますので、最終的に採用するべき構成はTHAT1580ということになりそうです。

ICを越えようと頑張って作ったディスクリートは道半ばで失敗でしたけど、いろいろとやってみて良い経験になりました。

スイッチング電源の残留ノイズ

今回デジタル用の回路と48Vの生成にはスイッチング電源を使っています。こちらの残留ノイズも測定しました。流石にスイッチング電源単体ではノイズレベルは厳しいですが、そこからリニア・レギュレータやリップルフィルタでノイズを取るとこのようになります。

SMPS_fantom47V

ファンタム電源のノイズ

SMPS_to_LM1117_5V

デジタル回路用5V

SMPS_to_LM1117_5V_LP5907_3.3V

THAT5171へ供給用の3.3V

自宅リフローにチャレンジ

THAT5171はQFNパッケージでハンダ付けが難しかったので自宅リフローにチャレンジしてみました。今のところ上手く行っていますがこの方法で絶対うまくいく保障はないので参考程度にしてください。やるのは自己責任で。

使うのは温度センサー付きコンロ、余ったアルミケースの板だけです。ホットプレートより手間がかからないのが良いです。アルミケースも専用に用意しておけば洗わなくても大丈夫です。

myhome_reflow1

温度センサー付きのコンロにアルミ板を載せて基板を載せます。ペースト半田は持ってないのでパターンにフラックス塗って予備ハンダしてあります。ICを載せて火を付けます。

myhome_reflow2

うちのはこんな感じですが、180度の揚げ物調理に設定。鉛フリーだと温度不足ですね。うちは作業性重視で鉛フリーじゃありません。

myhome_reflow3

180度でコンロが止まってもすぐに半田は溶けないようです。弱火で加熱を続けてしっかり半田がとけたのを確認したら、すぐに基板を板の上からおろします。ここでもたもたしているとICにダメージ入る可能性があるからです。あまり慌ててもICずれたりしてしまいますから加減が難しいところです。

ペースト半田ならこれで終わりなのでしょうが、予備ハンダにムラがあるとちゃんとついていないところがありますので、最後に手作業で仕上げます。最初から手でつけるより位置決めが綺麗に決まるので、この方法は今のところ好感触です。

その他の資料

https://sites.google.com/a/vt.edu/amp_lab/projects/high-gain-low-noise-microphone-preamplifier