FreeDSP SMD A/B Circuit Design Page |
大昔に手足のように馴染んだOrCAD/SDTを使って仕事で回路図を描いていたが趣味で使うには 高すぎた、それ以来なかなか自 分の感覚に合うCADでフリーで使えるもので出会えなかったが、Ki-CADの登場でようやく趣味の電子工作でも快適にCADを使って設計ができる時代になった。ネットを 探せばデー ターシートは簡単に手に入るし、回路の動作シミュレーションにはLT-SPICEが使えるし、なんとも便利な時代になったものだと感じる、文明の利器であるPCの処理能力 の向上は目覚ましく、いま手に入るものを使わない手は ないであろう。
閑話休題、
本プロジェクトの開発を進めていく中で、ネット上のコミュニティで「FreeDSP」という活動が あることを知り、そこで公開されている情 報も参考にしながら自分がやりたい機能や設計を加えてまたプッシュバックするという活動の一端に参加できればいいなと考えているが、まずは出来たものから自分のページで逐 次公開しな がら進めていこうと思う。
第一のコンセプトとして、基板一枚で最小限の使い道があること、そしてヘッダを駆使すれば高音質の ADCやDACが使える拡張性を持たせることとした。このため各種あるSigma DSPシリーズの中から、SRCは搭載していないがADC・DACを搭載し集積度とコストパフォーマンスに優れるADAU1701を採用することにした。 以下に当初考え たボード のFeatureなどを順不 同にメモしたものを記すが、設計に際してはなるべくFreeDSPのガイドラインを満たすように留意した。
VERSION | COMMENT(S) |
0.1 | Inherit from FreeDSP SMD/Classic design. Arranged and Renew previous design issues completely |
0.2 | Just for fixing design. Intermediate version for PCB ver0.1 |
0.31 | Changed Crystal frequency to 12.288MHz. Fixed major issues. Released on 31th. Mar. 2019, |
0.4 | Added Charge Pump for perfect muting release. This design applied to 2nd version PCB (Ordered 21th, Apr. 2019) |
回路動作の解説です、アナログの音声入力回路系ではInput 側のU3オペアンプ はなるべくDレンジが広く確保できるように、安定化された5V電源をCRのフィルターを通した信号を電圧フォロワーU4Bでバッファした電圧を使って電源電圧の約半分近く の 5V を動作点とする ようなバイアスを掛けている。 一方、 出力側のオペ アンプはADAU1701のpin40のコモン電圧を基準に使いながらもほぼ電源電圧の約半分を中心に出力がスイングするような回路にしてみた、同時にDAC出力に対して 差動形式のフィルター回路を使い、これを位相が反転するように接続することでDSP内部でのデフォルトのDAC位相反転処理を不要にしている。 なお入出力電 圧はどちら側も約 2Vrms に揃 えてユニティゲインとすることで チャンデバとしても使いやすくなるように考慮しました。
回路図上側の点線で囲まれた範囲は外部とのI2S接続のためのオプション回路です、 外部にDACやADC、ボリュームやスイッチなどを接続しない場合には点線内の部品は全て不要なものです。拡張基板を接続するときに対応しつつ、この基板だけスタンドアロ ンで使う時も 有用なアイディアとして、複数あるGND線の 一 本を接続検出に使うことでリボンケーブルを接続しない場合にはトライステートバッファーの出力をハイインピーダンスに することで無用なノイズを撒き散らさないようにしています。 J3はFreeDSP規格のヘッダー、J10はDIYINHKのDAC製品群に近い配置で独自に拡張したもの となっていますので、接続不要な信号ピンを抜くとか、配線をカットすることで必要な信号線だけを接続するようにして、使用しない出力信号線がショートしないよ うに気をつけてください。
回路図左下隅にあるのが電源のオンオフを検出してミュート制御線を+12V側に引っ張 る回路で、電源オンの際は2秒程度+側へ引っぱり続けることでミューテイングトランジスタ がオンします。 また電源オフを検出した際もC16 に電荷が残っているかぎりミューテイングトランジスタのベースを+側へ引っ張り続けるようになっています。 この制 御信号で制御されるQ1〜Q7, Q9のミュート回路はミュート専用のトランジスタを使用した電子的なものですが、何せ片電源ではGNDよりもマイナスの電圧がなくてはミュート解除時に完全にオフすること ができません、通常のミュート回路では ベース電位がGNDレベルまでしか下がらないのでミュート解除時に負側の波形が下図のように ク リップしてしまいます。
例えば、下のケースでは波形の負側においてオシロの入力インピーダンス分(約1MΩ)を通じて GNDから ベー スに電流がシンクしてし まうので波形が歪んでしまいます。
ごく僅かでもベースに電流が流れてしまうと、上の波形のように負側の波形が歪んでしまう(正側 は4.0V近くまでスイングしているが、負側は-3.5V程度までしか振れていない = 歪んでいる) ので完璧にベースに電流が流れないようにして、解除時にはミュートTrの動作を阻止する必 要があります。
そこで、ミュート解除時にベースを解放にするとどうなるかというと、以下のようにになります。
この動作をする回路をDIY AUDIOフォーラムにポストした時に「変な回路だなぁ」とコメントがついたように、見慣れない使い方ではあるが一応ミュート解除動作ができます。そのためにver0.1 版ではミュート 解除時にトランジスタのベースには電流が一切流れないようにとチャンネルごとに独立したMOSFETで制御をしていました。 しかしながら、確かに 波形レベルの観測ではミューテイング解除の動作をしているのですが、ミクロ的に見ると完全ではないようで、出力の 歪特性を測定してみたところミュート回路有りでは0.2%程歪んでいて、ミュート素子無しとの違いが出てしまいました。この事から、一見オフ状態になっている トランジスタQ3も、実は非直線性を持った高抵抗と なって 影響を与えていることが判りました。 上の回路のR22の値を下げることで、その影響を多少軽減することはできますがHiFi的な観点から、このまま使い続け る事はできないと判断しました、以下にプロトタイプで実際に16bit測定系で測った歪みスペクトラムを掲載します。
version 0.1 Board With Muting Circuit (Open Baseミュート回路あり、解除状態)
上記のような理由で、ゼロバイアスのミューテイングトランジスタでは僅かに非直線性が残ってしまう ために、音質を気にするオーディオ用途で満足いく性能が得られないので、負電源を生成するチャージポンプ回路を搭載してミューテイングトランジスタのベース電 位をGNDより負側に引っ張ることで完全にオフさせることにします。 スイッチング電源のクロックですが自励式だとオーディオのサンプリング周期との差でビー トが起きる可能性もあるので、手頃なタイミングの信号としてI2SのBCLKかLRCKを使うことにします。周波数的にはBCLKだと 64fs=48k*64=3.072MHzとやや高速すぎてスイッチング回路が大変になるのでLRCK(=48kHz)を使うことにしました。なるべくI2Sの信 号ラインには負荷を掛けたくないのと、負のバイアス電流は僅かしか必要ないのでN-chのMOSFETをシングルエンドのソース接地でスイッチングに使用しま した。 以下にチャージ ポンプ回路を含んだミューテイング駆動回路全体を示します。
Muting Transistor Control Circuit:
上記の回路で左側のチャージポンプ回路ではLRCKに同期してQ2がスイッチングするのでC54に はほぼ 電源電圧に近い電圧がチャージされながらも周期的にQ2のドレイン電圧はGND電位まで落ちます、Q2がオフの瞬間C54の右側の電圧がプラスとなる領域ではD7 でクランプされてしまうのでので+0.2V〜負電圧の範囲でしか変化が許されません、そのためC55はD6を通じてGNDよりも低いマイ ナス側の電位まで引っ張られます、MP10の波形がデューティ比50%の矩形波なのでC55の電圧には48kHzのリップルが含まれるのでR75とC56からなるCRの フィルターを一 段追加し電圧変動を低減させています。 一見無駄に見えるR80は自動配線設計の際に不用意に長くて望ましくないパターンが引かれてしまうのを防ぐ目的から、激しく揺れる 部分が分離独立したパターンとして引かれるように意図的に入れています。
ミューテイング制御回路である右上のP-chのMOSFET Q10は電源オンの瞬間はゲートがGNDに 引っ張られるためS-D間がオンするので_MUTE信号線をほぼ電源電圧にまで引張り上げます。その結果としてオーディオ終段のミューティングトランジスタが オンするので、カップリングコンデンサーがチャージされる際に発生するポップスノイズがミュートされます。その後約3秒ほどでC49がチャージされるとQ10 はオフになりR83によってチャージポンプの出力電圧まで_MUTE線がマイナス側に引っ張られ、オーディオ出力終段のミューテイングトランジスタがオフにな るので、ミュート状態が解除されてDSPからの音声が出力されるようになります、時定数が異なりますが以下に検討中に実測した波形を掲載します。
Power-On Transient Snapshot:
DC入力の電源がオンした直後にMUTE信号がプラス側に遷移しているのでオーディオ出力がミュー
トされポップスノイズが抑制されているのが判ります。電源オンから約200mS後にはDSPからLRCKが出力されるようになるので、チャージポンプが動作開
始してミュート解除されたときには十分にマイナス側へ引っ張れる状態になっていることも判ります。
次に、電源オフ時の挙動です。 電源がオフの直後にはダイオードD4があるためにC46の電位よ りも+12V電源ラインの電圧が 先に下がり始めます、この電位差が約3Vよりも大きくなった時点でQ10が再びオンとなるので_MUTE信号線がプラス側に引っ張られます、そのためオーディ オ終段のミューティングトランジスタがオンし、出力側のカップリングコンデンサーに溜まった電荷によるポップスノイズの発生をミュートします。基板に電源が供 給されな い状態になってもC46に電荷が残っている限りはミュート動作をし続けようとします。
Power-Off Transient Snapshot:
電源電圧が下がり始めると直ちにMUTE信号がプラス側に遷移してミュート動作が開始し音声出力が
止まっています。電源が切れた後もしばらくこの動作は続いていて無音であることが判ります。
まずver0.1基板 (回路図はver0.2も対象)の電源回路ですがAZ1117の分圧抵抗の計算も間違っていました(汗) バイアス電源の フィルター回路ではなるべく可聴帯域ノイズを減らしたかったからなのですがR74は470kΩではやや抵抗値が 高すぎのような気がしました。 片電源動作のため電源オン・オフで盛大なポップスノイズが出るのが必至だったので正電源だけで動作するミュート回路を新規に考案しながら も予備実 験もせず基板を描いてしまったので、やはり修正が必要になってしまいました。 ver0.2の回路図を描くときに勢いでコピペしてしまいQ11のC-Eが上下 に間違っているは明 らかな凡ミスです(汗)、電源オフ時にミュート回路 の動作時間が短かかったのでQ2, Q4, Q6, Q9のソース側の電源をC46から取るように変更して動作を延命しないと電源オフ時のミュート動作がすぐ終わってしまいノイズ対策が不完全でした。これらの問題を修正した 暫定版 回 路としてver0.3をアップしました。 まだ音質的な部分については手を入れていませんが、FreeUSBiで接続動作すること、DSPが動作すること、ア ナログオーディオの入出 力が動作すること、電源を再投入するとEEPROMに書き込んだプログラムでブートして動作することは確認できました。 ひとまず入出力動作の確認完了です (25th, Mar. 2019)
が、しかし なんと! ADAU1701に接続したク リスタルを自励でクロックに使う場合にその周波数が256fsでなくてはいけないという制約があることが発覚しました、そのためX1に使用 するクリ スタルを12.288MHzに交換する必要が生じました。 もしアナログ入出力だけでI2Sによるデジタル接続 をしないの であれば、入出力のサンプリング周波数は同じになるので、fsが48kHzジャストにはならなくとも12MHz付近の周波数のものに交換すれば、応 急処置的で多少EQのターンオーバ 周波数や波形生成の周波数はズレてしまいま すが一応動作させることはできます、そのような事情のため 部品表のX1のリンクは入手が容易なものと2種類挙げておきます。(31th, Mar. 2019)
上記のような対策を打つことで一応の動作はするのですが、ゼロバイアスなミュート回路のもつ非直線 性のために歪み が発生しており肝心の音質が望ましくなかったので、対策を試行錯誤している段階でした。
検討を行っていくなかで、最終段のミューテイングトランジスタのベースをマイナス側に大きく引っ張 れれば、大振幅時でもミュート解除時の非直線性を大きく改善できる事が確認できました。 以下に改良型の駆動回路で制御したミュート回路ありでADC〜DAC をス ルーさせた信号の歪特性の測定結果を示 します、ほぼ素の ADAU1701の性能が出せるようになったと思います。 高調波歪み成分が-100dB以下だったので16bitのUSBオーディオインタフェースでは十分に観測するこ とができず、この測定ために24bitのUSB-Audio I/Fを投入しました(こんな安価なDSPデバイス搭載コーデックでさえもう16bitの測定環境では性能が足りませ んね・・・汗)
Version 0.4 Board Overall Distortion Measurement Result (1kHz, INPUT --> OUTPUT)
この出力スペクトラムを観て解るようにADAU1701のノイズフロアは-140dB付近と明らか に16ビットのコー デックの性能を超える特性であり、1kHz近傍に見えるジッター成分も少ない、チップ内蔵のADC&DACにしては歪み特性もノイズ特 性もクリーンでけっこう良い性能だと思います。スイッチング方式 のACアダプターを使用して測定していますが基板が裸なので周囲の誘導ノイズを受けているのか、測定系のPCとUSBオーディオI/Fのグランド接続の問題な のか発生源まで特定はできてはいませんが、50HzのAC電源周波数と相関のあるノイズのスペクトラムと、その奇数次の高調波ノイズが少し残留しているのが見 えます。これらはシリーズレギュレーターの電源アダプタならもう少し小さくできる可能性があります。