FreeDSP OCTAVIA |
ADAU1452/1466の機能をフルに活用して接続を考えた場合にS/PDIFとI2S接続に なるが、実用上の制約として未だアナログ入力は外せないだろうということと、昨今のネットワーク対応までを考えると十分なパフォーマンスの音源としては ESP32よりもRaspnerry-Piが有力な候補に上がった、Raspnerry-PiとDSPはUSBで接続する事も可能ではあるが、今日パソコンは保護されたコ ンテンツ 再生音源のひとつであるため欠かせないものだと考えると両方使いたい、そういう訳でRaspberry-Piは40ピンのIDCスロットでI2S 接続し、さらに電源もDSP ボード側から供給することで、あたかもDSPボードの一部かのように使うことができるようにしたいと思った。 Raspberry-Piを搭載するからには単 にオーディオの音源デバイスだけではなくTCPi (ネットワーク接続版のUSBi)としても使うことができるようにしたいし、リアルタイムでDSP内部レジスターやメモリにアクセスすることで細かい制御もやってみたい一 方 でRaspberry-Pi無しでも動かせるDSPボードにしたいという気持ちもあって、両者の要望に折り合いをつけるのに少々時間が必要であった・・・
暫く悩んだのち、ADAU1452/1466はTIのリファレンス・デザインではSPI接続の EEPROMからブートする仕様になっていたが、ADAU1701と異なる点としてADAU1452/1466の書き込みは一度DSP内部にロードしたイメー ジをDSP経由で書き込むというスタイルであり、外部からDSPに書き込む方法はSPIとI2Cが選べるという事が分かった。実際にI2C接続でやってみて書 き込みの所要時間的にもほぼSPIと遜色ない事が判明したので、USBiでもRaspnerry-Piからでも任意に書けて、両者がバッテイングしない回路を 作りやすい I2C接続を採用することにした。 もう一つの理由としてラズパイからのノイズがSPIよりもI2Cの方が疎結合なので伝 わりにくいという要因もあった。 途 中にピンヘッダーを追加することで有機ELディスプレーモジュール等を接続することを可能にした。 最終的にラズパイからのI2Cライ ンにはバススイッチを挿 入しUSBi接続時にはラズパイを切り離すことで両者間の干渉を避ける設計にしている。
ADAU1452/1466は4系統のI2S入力とS/PDIF入力が可能 であるが、I2S入力を ラズパイ、USB、ADCで使用し、残り1系統は将来的に高品位ADCボードやLVDS方式のI2S 入力ボードを拡張する用途を想定しオプションとしてI2S入力ヘッダーを搭 載することにした。 問題はこれらのソースとさらにS/PDIFの光と同軸を如何なる方法で選択するのか?という課題であった。 I2S 入出力をフルに使用 するとDSPのGPIOとして使えるMPポートは2ビットしかなく、これでは4種類しか選べないし、それ以上の拡張は不可能なためにいずれ使えなくなる、そこで6系統も あるオンチップのAUX-ADCのひとつをソースセレクターとして使うアイディアを思いついた、これなら分割するスレッショルド値を増やすことも容易だし貴重 なMPポートも消費しない。 AUX-ADCでソースセレクトすることで使わなくなったMPポートはレベル監視のLEDを点灯させる用途などに使う事にした。
次にデジタルオーディオ入力であるが、S/PDIF入力の光と同軸を切り替えるとなるとSPDTセ レクター スイッチが必要になる、しかし実際のところ両方を切り替えながら使う機会は余り多くない、そこで自動で両者を切り替える回路を考えた。 実現手法としてS/PDIF の信号はバ イフェーズマーク方式と呼ばれる変調がされているので、HかLには関係なく単に位相が反転するまでのタイミングだけが重要であることを逆手にとって光と同軸の信号の EXORをとることで、どちから片方だけ変化していれば自動的に所望の音声が再生できるというロジックに基づき回路を考案した。 プロトタイピングしてみて 判ったのだが同軸のレシーバーアンプが周囲ノイズに非常に敏感で同軸未接続状態でも頻繁に反転するため光入力使用時に受信信号を妨害することが起きやすかった ので、Ver0.3からは意図的に不感帯を設けて未接続時に周囲のノイズを受けにくくする回路変更をしている。
USBオーディオ入力は永年の実績のあるAmanero社製のCombo384基板を採用するこ とで開 発の手間を省き信頼性のある動作を可能にした。 同ボード互換で使えるボードも多種出回っており選択によってはコストも削減可能である。実際にXMOSやBRAVOの チップを採用した互換製品でも問題なく使用することができた。
DSPで処理された信号はDIT(オンチップのS/PDIFトランスミッタ)で送信することもでき るが1系統しか搭載していないし、一番 多いと思われるチャンネルデバイダー用途であれば次に繋がる機器はパワーアンプというケースが圧倒的に多いはずだと考え、マルチウェイのオーディオシステムを手軽 に組めるようにしたいというコンセプトであるなら、RCAピンケーブルで接続するカジュアルなパワーアンプを利用する場合が多いと思う、しかし殆の機器がクラ ス2(電源コンセ ントに接地用の端子を持たない)仕様である日本とは違い、欧州など海外では保安用の接地がグランドループを構成してしまうケースがかなり多くなる、そこでハムノイズ等が 乗ってしまわないようにXLRコネクターを使うバラン ス接続で解決するのも良いのだが、庶民的には普及クラスの安価なRCAピン接続のパワーアンプを3〜4台買って気軽にマルチアンプ駆動にチャレンジしたいものだと思 う、そ こでFreeDSP Catamaranでも採用したRCAのピンジャックを使用しながらもディファレンシャル出力を行うことで、本基板とパワーアンプの間に微小な電位差があったとしても、そ の電位差をキャンセルしてパワーアンプが信号だけを受け取れる回路を開発した。この回路があることによって機器間のポテンシャル電位差に起因するハム音の発生 と定 位の揺れ が抑制可能となる。 この回路はFreeDSP CatamarannのディファレンシャルADC入力部ではじめて採用したOPA1632を今回は出力のドライバー回路に使って電子式のトランスレスバランス出力回路を構 築しver0.1基板に搭載した。しかし細かく検証してみた ところ、アンバラ差動接続にするためにコールド側出力を接地してしまうとコールド側出力の負荷が重いためにどうしても大振幅時に歪率が悪化してしまって0.01% を切る のが難かった。 ここで全て諦めて普通のアンバランス出力に妥協してしまうのも悔しかったので、さんざん悩み考え抜いた末にトランス互換動作の完全な電子バランス出力では ないがXLR出力と RCAのピンを同時に使わなけばディファレンシャルRCA出力とXLRバランス出力が共用できる回路をに考案することができた。この回路は DVR103とは比べ物にならない程に少ない歪で非常に高い周波数域までフラットで正しい位相差を保って出力することができる。
これらのADC/DAC/DSPを動かす電源は外部機器との2V RMS入出力に必要十分なダイナックレンジを確保しつつ、アンチポップ ミュート回路の実装が必須であることなどを総合的に考慮し片電源では難しいので-5Vの電源を追加した正負のバイポーラ電源を採用した。DACから出力までをDC接続とし たことでオー ディ オ信号系にあるカップリングコンデンサーを撤廃しDACからアナログ出力までの音質の向上にも貢献している。 今では決してワンボードマイコン基板とは言い難い程のパ フォーマンスを有するようになった Raspberry-Piは、いわばノイズの塊でありオーディオ機器からなるべく離れた環境に置きたいものであり、用がない時には止めてしまいたいものである。 同 時にこれは設計上極めて難しい要求事項でもある。そ こで当基板ではラズパイ用のDC+5V電源を専用の独立した電源回路にした上で、電源と連動するが独立した別のスイッチを持たせている、基板のプリントパターンも5V電源 電流の供給経路とリターン経路が他の 回路になるべく影響を 及ぼさないように注意深く基板設計を行っている。 Linuxコンピューターであるラズパイを自動できちんとシャットダウンする時間を確保するために遅延オフ回路、電源断 の検出回路や再起動ボタン等も装備している。 赤外線リモコン受信モジュールやI2Cヘッダーなどいろいろ付けたついでにラズパイの初期設定等でシリアルコン ソールとして利用できるUART通信ヘッダーも装備した。 ver0.2ま では2層基板で低いコスト で十分実用になる性能を得ていたが、ver0.3からは基板一枚あたり4ドル程度のコストアップにはなるが、より高いオーディオパフォーマンスを求めて4層 基板を採用することにした。
以下にFreeDSP OCTAVIAの回路ブロック図を示します。
最初に5枚だけ試作したバージョンで2層基板で設計。当初予定していた12V電源で動作させるとア ナログ電源ICの発熱量が多すぎてAMS1117が壊れてしまう程であったので、一部定数を変更して6.5Vから動作する仕様に変更。 マイナーな修正はいく つか必要であったが、必要 な 動作は一応すべて動くことが確認できた。
ドイツのLudwig氏が試作してみるとの事で、急遽ver0.1で見つかった基板の問題点を修 正したバージョン。この版で電子式のバランス出力回路をアンバラ差動出力回路として使った場合の大振幅歪特性に限界を感じたのと、チャンネルごとのオーディオ 特性が基 板パターン の引き方で微妙に違ってくる事など、かなりディープな細かい部分での性能向上を求めて各種特性を測定し改良方法を検討したバージョンであり、この検討作業を通し て2層基板での性能限界が見えてきたので次版から4層基板で再設計する方針に変更した。
XLR出力と差動RCAピン出力用途に最適化したOPA1632出力回路を使用した回路を搭載した バージョン、その他ではアナログ正負電源の立ち上がりタイミングを近づける、USBオーディオ入力時のミュート動作をより厳密にする、メインSWオフ時に USBインタフェースから漏れてくる電圧でアナログ電源がオンしないようにする等の細かい改良も行った。このバージョンからディファレンシャルRCAピン出力 のグランドリフト抵抗値を20Ωに下げている。
誤って9Vよりも高い電圧で動作させた際に、暫くのあいだは正常に動作するが発熱量が過剰になるの で数日後には熱でアナログ電源のICが壊れて過電圧が回路に掛かってしまう現象を目撃したので、精神的にも熱的にももっと余裕をもたせようとAMS1117よ り熱抵抗が約半分でパッケージも放熱マージンが大きいLM317に設計変更したバージョン。 大きめのヒートシンクを貼ったり7.5Vの電源アダプターを使う 限りはまず必要ない変更ではあるが特に余裕があっても何も悪影響は無いので実施しました。 それとDSPのサンプリング周波数の最大値が192kHzなので PCM5102A出力のCRフィルターの定数の見直しを行いました。 当バージョンのデザインで2回めの基板試作検証を行う予定です。
基本的に回路基板上のスイッチで直接に電源を完全切断することはせずにスタンバイ状態にすること で目的を達しています。電源回路はデジタル系の+3.3V電源、Ver0.2まではAMS1117互換品を使用したアナログ系 の+3.3Vと+5V電源、LM2611を採用した-5V電源に加えRaspberry-Pi専用の容量3Aの+5V電源回路を搭載している。DCジャック至 近にはコモンモードチョークコイルを配し電灯線へノイズ伝搬することを抑制しています。 Q7は万一の逆接続時に回路を切り離す保護回路です。電源のオン/オ フ アンチポップミュートドライバー回路は、主電源スイッチSW2によって制御されます。 「MUTE」ラインでソリッドステート型のオーディオ出力ミューティング回路を駆動します。 SW3 は Raspberry-Pi 専用の電源スイッチです。 U6のLMC555は、ラズパイ専用電源回路のパワーオン遅延とシャットダウン遅延のタイミングを生成しU5で構成されている Raspberry-Pi +5V SMPS ブロックの動作を制御しています。
USB機器がアクテイブのときにCombo384出力から 3.3V系の電源レールに漏れてくる電圧でアナログ5V/3.3V電源が常時オンになってしまっていたのでver0.3からはR54を追加してSW2操作連動で落ちるよう にしています、スタンバイ時の全消費電流は約8mAほどです。
Ver0.33からはアナログ電源のIC (U3とU7)をLM317に変えています。
発熱量を低く抑えるためには電源電圧は低いほうが望ましいので、ア マゾンで見つけた7.5VのDCアダプターを愛用しています。(下画像)ラズパイ3B+動作時でピーク約1A強の電流が流れます。
Raspberry-Piの電源状態とオーディオミューティング機能を示します。
RGB LEDの色による順方向電圧の違いを巧みに利用することで発色の切り替え回路を省略しています。
シリアル コンソール用のデバッグ ヘッダー J4 が用意されています、TDI製のUSB-UART ケーブルである TTL-232R-3V3が使用できます。
シャットダウンと再起動兼用のボタン SW1 の押下状態をGPIO17 または GPIO26で検出することができます、電源SW3のオンオフやSW1ボタンの操作で自動的にシャットダウンする動作を実装するためには、このポートがLow状態になった 場合にRaspberry-Piをシャットダウンする ソフトウェアシーケンスを実装する必要があります。 SW1はラズパイの電源を落とさない状態でのシャットダウンからの再起動にも対応しています。
この20ピンスロットにAmanero製のCombo384ボードを装着することでUSBオーディ オデバイスとしてPCからのオーディオ信号をI2Sで入力することができるようになります。DSPチップ仕様の制約からFsの上限は 192kHzまで、DSDモードには対応しません。
USB 選択時に Combo384 出力が MUTE になると、PCM5102A の XSMT (ソフト ミュート) が起動します。 このミュート機能は電源オン時および電源オフ時およびDSDストリーム再生時の保護でも有効になります。Combo384ボードには互換品が多数で回っていますので、好み のボードを装着してください。
48kHz系の512fs TCXOを搭載しています、 なので外部 96kHz サンプリング ADC ボードを容易に設計できます。
デジタル・オーディオが主流になった今日とはいえ、まだまだアナログ入力を無くすことはできないの で、A/Dコンバーターを搭載しています。
PCM1808 ADC がFM チューナーやテープデッキなどのレガシー入力ソースに提供されます。 このチップは、96kHz よりも 48kHz のサンプリング周波数で優れた SNR パフォーマンスで動作します。PCM1804などの差動入力タイプのADCと比較すると フルスケール入力レベル近くでは歪み率がやや劣化する特性がありますが、アナログ時代のソースは平均レベルが低く、S/N、歪特性や忠実度もそれなりであるために実用上深 刻に性能の違いが問題となってしまうケースは殆どないと思って、コストも安く用途に必要十分な性能の24bit ADCチップを採用しています。
さらなるアナログオーディオの高みを極めたい向きにはオプションのI2S入 力ヘッダーを用意しています.
電源も供給されるので、貴方が設計した究極のアナログ性能を追求したADCボードや、フォノアンプ つきADCボードが簡単に搭載可能な設計となっています。
MP6とMP7で制御できる2つのLEDが用意されています
VGが機器間の電位差を検出する入力になり、VGの電圧と同じだけ非反転出力の信号を平行にシフト させます。反転、非反転出力ともにゲインが1なので結果的にこれらを差動で使うXLR出 力は+6dBのゲインがあることになります。 VG端子による出力電圧シフトは非反転出力にしか反映されないのでXLR出力を使う際にはRCAピンケーブルを接続しないよ うにする必要があります。
アナログの電源パターンにおいては、電源ラインを通してクロストークする量を減らすために大容 量のデカップリングのコンデンサーから直接各ICへスター型のトポロジーで電源パターンを引いています。アナログとデジタルのGNDは分離されており、両者は DACチップのすぐ下で接続されます。 各オーディオ出力はDACのペアごとに切込みが入れられた銅箔のパターンを経由して戻っていくことで隣り合ったペア間でのクロストークを極力抑えるという戦略で設計してい ます。何でもベタのパターンで太く繋いでしまえば良いというものでは無く、性能を引き出そうと思うなら銅箔パターンも抵抗だと考えながらパターンを引く必要が あるところが難しい所以です。
JLPCBにPCBAオーダーした基板は下の画像のように殆の表面実装部品が載っており、40 個弱 の部品を付ければいので数時間で完成します。
PCBA Arrived Board (ver0.1)
(Under Construction)
(Under Construction)
Git-Hub https://github.com/freeDSP/freeDSP-OCTAVIA(← 最新の設計ファイル類はこちらからクローンしてください)
VERSION | Date | Note |
0.1 | 2nd, Apr. 2023 | Initial PCBA release. |
0.2 |
14th, May. 2023 |
Fixed some errors. |
0.26 |
25th, May. 2023 |
Fixed 2 Layers Evaluation Version, (Ludwing ordered to JLPCB) |
0.3 | 23th, Jul. 2023 | New differential/Balanced output circuit. 4 Layers PCB design. (Wrong order of Source Selector Position) |
0.31 | 26th, Jul. 2023 | Initial Release Version (Fixed Source Selector USB Position) |
0.32 | 14th, Aug.2023 | Improved Coaxial S/PDIF Input Noise immunity |
ソースポジションLEDを実装する前の画像、フロントパネル左側に4つのLEDが並ぶ予定。