2011-05-22

AckoDAC AKC-12 with Buffalo II


色々動作検証はできたので、そろそろ情報公開。周囲でI2Cを動かす人も出てきたようですしね。

ものは ackodac さんの AKC-12 と呼ばれるI2Cコントローラー。はい、コメントで指摘していただいた某氏、大正解でした♪

I2Cのフォーマットは基板によって変わるわけでなし、low-level(レジスタ番号使う)でのアクセスができればなんとかなるだろう、という見込みを頼りに注文。最初動くまではどきどきでした。

使ってみると結構便利で…
・デジタルボリュームが使える…がカーブがリニアなので、ファーム差し替えは難しいので、ボリュームのタイプを変更(はずして付け変える)した方がいい
・DPLLの設定がDIPスイッチもしくは、外部スイッチ向けのi/fが出てる…が、デフォルトでは#25が best default なので効果なし…
・ちなみにSPDIFの入力チャンネルも基板上から変えられる…外部スイッチへのi/fもでてる
・USB経由で、コンソール(おいらはteraterm使ってます)から色々弄れる…たとえば ~PLBW1 とか入力すると DPLL Lowest が設定されるなど… low-level アクセスは #AANN (AA:デバイスアドレス、NN:レジスター番号)なんですが、最初 AA に何を設定してもまともに動かず難儀しました…ES9018のデータシートをちゃんと読んでれば AA に設定する値がわかるんですが…と昨晩気づきました。
・これら色々弄った結果を不揮発性メモリに書き込んで、ブートの際に自動設定させられる…要するに、PC上で調整した後に、PC外しても弄った値をデフォルト値として扱えるようになる(プログラムする必要すらない)

まぁ、欠点もありますが、ありあまる利便性かな、と思っています。

PC側でプリセット幾つか作って保持しておけば、USB接続で簡単にプリセット切り替え→不揮発性メモリに保存できますしね。

というわけで、Buffalo IIのI2Cレジスタ弄ってみたい方はどうぞ。ちなみに、Buffalo II のファームとは設定されるデフォルト値が違うので、ちゃんと使うなら、データシートを取り寄せて、きちんと個々のレジスタを設定してやらないとダメぽ…なんか変な設定値が入ってるのもあるしなぁ…

SDTrans192 の I2C 経由で再生サンプリングレートを送って貰って(さすがにどっちもホストになるのでSDTrans192とAKC12の間で直接通信はできない気がしますが、ワンクッション噛ませればできる、かしら?)そのサンプリングレートに応じて設定を弄る、とかもできそうではあるなぁ、と…

ちなみに #AANN コマンド、ES9018特化ではなく、I2C汎用なので、他のI2C制御が必要なデバイス…たとえばEAさんのDSD1794A dual 基板、なんかの制御にも流用できそう…デジタルボリュームは効かせられませんが…というわけで汎用性が高そうだなぁ、とみてます。

1 件のコメント:

MASA さんのコメント...

こんにちは、

AKC-12もどきを、過去に作った基板を流用して、作ってしまおうかしらと。流用可能な基板は2種あるが、どちらが合理的なのかな??

まだES9018基板の方が、実装する内容を考えている為、先に進めないので、ES9018の設定周りだけは、勝手に弄れる仕組みを用意して終わらせようかなと思った次第です。