CrossOverDA1 機能紹介 - ResetStudio URL
2017/01/18 (Wed) 17:38:15
CrossOverDA1とは、僕たちが手掛けている、ES9038PROという弩弓DACチップを最大4個使用することができるデジタルオーディオハブDAC基板の事です。
ここでは、少なくともリセットの中で、脳内実装が済んでいるCrossOverDA1の機能について語りたいと思います。Youtubeとかでも紹介できたら楽しいですね!
この掲示板で、僕が常に言っている高機能とは、具体的にはこういうものを指している という事を一箇所にまとめた方が良いね と思い、記述しています。
このDACでは、高性能マイコンを採用しています。
採用したマイコンは、レジスタを設定するだけではなく、相関関係や機器の前後関係を把握してバラバラの挙動とならないように管理、監視を行う事ができるほど性能が向上しています。
プログラム自体は、既に音を鳴らせる状態となっていますが、実際にふれて日常で使いながら改修していくこと。
極めて日本的ですが、これが重要だと思っています。
一番最初の利用者は僕ですので、僕が重要だと思った機能をまずは入れさせてください。
ここでご紹介するのは、その「僕が重要だと思った」機能です。
結果として、「うわ、すげぇな」と感じてもらえたらありがたいです。
そして、頒布時に「その考え方に賛同するぜ!」と言ってもらえたら。
開発の合間にぽちぽちと追記していきます。
Re: CrossOverDA1 機能紹介 - ResetStudio URL
2017/01/18 (Wed) 17:51:06
OTAプログラム更新機能
実装済み
目玉機能の一つ。
WiFi接続環境があり、インターネットにつなげることができる時、CrossOverDA1のプログラム更新が可能です。
つまり、機能が追加される都度マイコンを追加購入したり、リセットに向けて発送することなく、機能追加の案内をしたタイミングでプログラム更新が可能となります。
フィードバックが簡単になるので、この機能を活用し、この企画の賛同者の方々と育てられたら良いなと考えています。
Re: CrossOverDA1 機能紹介 - ResetStudio URL
2017/01/19 (Thu) 00:55:53
AK4137周辺機能
これらの機能はAK4137を組み込む事になった理由の一部で、当初からの構想でした。
・バイパス機能
バイパス時、AK4137を通さないトゥルーバイパスモード搭載。これにより、I2S信号が通るチップ数を物理的に減少させる
・MCLK注入モード
ASRCのMCLKをDAC入力に使用するモード
これにより、AK4137で綺麗になったクロック群とクロックを、そのまま同期モードで使用することが可能。
・AK4137設定簡単モード
入力周波数と、入力系のDDCから受領するPCM/DSD切り替え信号を元にダイレクト設定。
出力周波数は可能な最高値をマイコンが選択し、最高を送出する。PCM出力の場合、問答無用で768kHz、DSDの場合は入力周波数に応じた値。
これにより、入力周波数が変更された時、解りにくい設定をあちこち再設定することは不要。供給クロックを選択したり、fsいじったりってヤツです。
foobar2000、iTunesなど、PC系のトランスポータ使ってる僕にとって、どうしても必要な機能。曲ごとに周波数やフォーマットが切り替わる環境です。
・チャンネルスワップ機能
AK4137で変換したDSD信号は、左右が反転することがあります。これはDSDを送るときの規格が定まっていないことが根本原因ですが、毎回結線を変えるのは現実的ではないので設定で切替えられるようにします。
1.ASRCを使ってDSD出力する時の、チャンネル反転要否設定
2.DDCからきたDSD信号の、反転要否設定
3.PCMも含めた、反転要否設定
これらの設定結果の組み合わせで、環境に応じてチャンネル反転を行います。
例:DDCからDSD(PCMと比べ左右反転無し)→AK4137(DSDでアップサンプリング)→DAC
この場合、【1】を反転要としておけば、AK4137を通しても通さなくても左右チャンネル反転しません。
例:DDCからDSD(PCMと比べ左右反転有り)→AK4137(DSDでアップサンプリング)→DAC
この場合、【1】と【2】を反転要としておけば、AK4137を通しても通さなくても左右チャンネル反転しません。
【3】を反転要とすれば、PCMもDSDも左右チャンネルが反転します。
当たり前ですが、【1】【2】の設定はちゃんと反映されます。
Re: CrossOverDA1 機能紹介 - ResetStudio URL
2017/01/19 (Thu) 01:01:43
DIX入力系
SPDIF,光通信はDIXに任せます。
また、I2Sを直接受けることも可能なので、今回は2種類入力できるように考えています。
これにより、DIXだけで、6種類の信号を扱うことになります。
I2S2種類は、PCM/DSDのどちらを流すか設定で変更可能です。ASRC動作の基準となりますので、あまり設定を動かすことのない機器を選択ください。また、ミュート信号がないので、場合によってはノイズの元になるかもしれません。
Re: CrossOverDA1 機能紹介 - ResetStudio URL
2017/01/19 (Thu) 01:21:46
DAC機能
クアッド構成を想定したベース基板作り
はい、バカです。クアッド対応するつもりです。すでに機能は組み込まれています。排熱処理もしないとですね。
多大な電流量をどう扱うつもりだ!?
というご意見もあると思います。
まだふわふわした感じですが、上層基板に穴開けちゃう?と話ししています。
また、すごくゴージャスな基板になると思います。
ES9038PROが出力をパラで出すということは、「後段アナログ部分で発生する誤差を吸収してくれ」というメッセージだと僕らは受け取り、アナログは電流出力のまま次の基板へと伝送します。
アナログ段ではパーツ数が多くなるかもしれないけど、素敵な回路を考えています。
クアッドへの対応も期待できるものです。
こちらはX_Under barさんが、まるでブッチャーが肉の塊を破壊するかのような勢いで当たられています。迫力ある基板になると思います!
また、このDACは過去の仕様書と最新の仕様書をみていると結構変更された記述が沢山あります。
概ね最新の仕様書で用は足りるのですが、細かい箇所については記述レベルが違っていたりして、相互に読み比べながら勉強してきました。
その結果、xxxxxと、yyyyyと大きく挙動が変わることがわかりました。(NDAの関係で、内部情報どこまで出せるか不明確なので…すいません)
その設定はまるでRPGのお使いイベントみたいなもので、「あ、あれ変えてきてくれ」「このモンスター10匹倒してくれ」といった具合であちこちのレジスタと同期を取って変更する必要があります。
マイコンにやらせましょうよ。人の手じゃ無理です。
THD機能にも対応させようと思っています。
これは、再生したときの周波数分布を観測し、ノイズが発生しているスパイクがあったらそれをDACから低減する機能です。
ただし、計測器が必要なことから僕には設定値がわからない!どなたか人柱として使ってみてくださるとありがたいです。
THDは2次変調ノイズ、3次変調ノイズ双方に対応が可能とのことです。
DACは製造ロットによって出力抵抗に若干のばらつきが発生します。
残念ながらその品質のばらつきをコントロールするのが難しい場合があるようです。
そのため、オートキャリブレーション機能を実装します。
これは、電源から分配してもらった電圧を元に、DACが考えてマスタートリムの設定を変更してくれる機能です。
用途として、寒暖の差が激しい場所や神経質な僕向けって感じです。手で変更するのも方法の一つですが、この機能は多分ESSの方が特性を出すために積極利用されたのかも?と感じたので、手変更ではなくオートキャリブレーションでいきます。手でも変更できてよいですね。
起動時に一発オートキャリブレーションしてもよいし、定期的に確認するのもよいでしょう。
Re: CrossOverDA1 機能紹介 - ResetStudio URL
2017/01/19 (Thu) 01:41:31
DACクロック多彩な設定モード
Si570という高性能プログラマブルクロックを採用したので、様々なクロックに1ヘルツ単位でチューニングが可能で、安定した出力により「あーここはもーちょいクロックアップしたい」時には簡単にあげることも下げることも可能です。
もちろん、、基本的には入力周波数に応じたクロックに自動設定されますが、ベタ固定で100MHz吐き続けることも可能です。
これとは別に、先にあげたBCLK逓倍クロック、MCLKそのまま利用も可能となっています。
クロックを変更することで発生する音の違いも楽しんで頂けるのではないかと思います。
残念ながら、非同期ではDAC側の仕様によってロックが不可能な周波数帯があります。
その時は回避として予め決めている別方法を自動選択して安定して音を出す仕組みとします。
利用者は、優先的に使いたいクロックの種類と、優先する同期、非同期モードを選択するだけの簡単操作です。
いまはここのチューニングに時間を取っていますが、目玉機能です!
Re: CrossOverDA1 機能紹介 - ResetStudio URL
2017/01/19 (Thu) 02:12:25
これらの機能を、入力チャンネルごとに保存可能
SPDIFとI2Sのフィルターのかけ方は違うはず。
AK4137の採用、不採用もトランスポートでアップサンプリングしてたら不要なはず。もしくはSRCとして利用したい。
色々な使い方があると思います。
今回、全ての入力チャンネルごとに設定値を保存する事にしました。
こういった複雑かつ全ての機器の特性を利用者が把握することは不可能です。僕には無理です。
X_Under bar氏と討議している中で、一番最初に挙がったのがこの保存機能でした。
今後はこの機能が入ってないと使いたく無いです。
それくらい僕はストレスから解放されました。
僕はこんな環境で使っています。
・Combo384でDSD64~DSD128もしくはPCM44.1kHz~PCM384kHz
・某XMOS系でDSD64~DSD512もしくはPCM44.1kHz~PCM768kHz
・PS4でゲーム。光接続 PCM48.0kHzのみ
それぞれでAK4137の活性比活性、DACの設定が違います。
しかし、一度設定したら、チャンネル変更しても勝手に保存してくれます。
まだまだ続きます。
Re: CrossOverDA1 機能紹介 - ResetStudio URL
2017/01/27 (Fri) 10:04:44
非同期、同期モードの充実
クロックの種類も揃ってきたので、モードの充実を図りました。
設定項目はこんな感じ。
●優先クロック
DACを動かすクロックはこんな感じです。
→Si570 高性能プログラマブルクロック
→ICS570 逓倍器
→MCLK貫通
→AUX 外部クロック(ワードクロックとか100MHzオシレータとかを想定、100MHzは近々確認します)
●優先同期、非同期モード
非同期モードのときは、768kHzなどの周波数が入力された場合、MCLKが100MHzをはるかに超えるので、自動的に同期モードに切り替わります
●Si570周波数固定モード
非同期でSi570利用時、設定済み周波数から変更しないモードです。DPLLを堪能できます。
●Si570固定周波数変更
通常100MHzですが、微妙に変更する事が可能です。クロックアップも可能ですが、PCで行うようなクロックアップの施策が必要かもです。かなりの爆熱機ですこの子。
●Si570 差分調整
DDCのクロック特性に合わせて微妙なチューニングが可能です。これは全ての同期、非同期モードでSi570利用時に反映されます。
これらの設定は、入力周波数とモードによって色々と切り替わります。音もかなり変わりますので、聴き比べると面白いでしょう。
同期モード 必ず128fsでDACのMCLKを駆動する必要があるモード
この時、クロックの設定はこんな感じになります。
Si570 BCLKの倍の周波数
ICS570 BCLKの倍の周波数
MCLK貫通→貫通するだけ
AUX 固定出力。(同期できないようにするか考え中)
非同期モード 可能な限り100MHzに近くなるよう逓倍
Si570 44.1系、48KHz系のクロックで90MHz、98MHz系の設定に。もしくは固定に。
ICS570 44.1系、48KHz系のクロックで90MHz、98MHz系の設定に。
MCLK貫通→貫通するだけ(非同期できないようにするか考え中)
AUX 固定出力。
非同期の要件は192fs以上のクロック入力ですが、入力周波数によってはこの要件を満たせない事があります。(768kHzPCM入力など)
その場合、非同期から同期に自動的に切り替え、MCLKも128fsに自動的に切り替えます。
長々と書きましたが、3行にすると
「クロック系のプログラムはほぼ完了した。」
「設定は簡単、マイコンが勝手に設定してくれる。」
「利用者は優先したい設定を選べばおk」