USBオーディオを自作する人がよく使うモジュールにAmanero Combo 384があります。 パソコンとUSBでつながり、I2SまたはDSDの信号を出力します。 フォーマット変換の機能はありません。
このAmanero Combo384を使っていて遭遇した状況を説明します。
国内の電子回路系DIYショップが扱っています。こちらは12000円くらいです。 Amazon.co.jpなども検索にヒットしますし、Alibabaでも売っています。こちらは3000円〜4000円くらいです。
ファームウェアは届いた時点で古くなっていることが多いです。 Webmaster は2019年11月現在でCPLDに CPLD_for_1081 を、CPUに firmware_2006be10 を書き込んで使っています。 古いファームウェアの中にはDSD出力が左右反転しているものもあります。
Webmasterは、前記のバージョンのファームウェアで、11.2MHzのΔΣを送っています。 ALSAでは出力フォーマットを SND_PCM_FORMAT_DSD_U32_BE にしてサンプリング周波数を352.8kHzに設定すると、11.2MHzのΔΣをいわゆるネイティブで出力できます。
個体によっては、ファームウェアの書き込みに必ず失敗するものもあります。 ネットで調べると、中国語で書かれたサイトに対処方法が書かれていました。 正しい手順でファームウェアを書き込もうとしているのに、"Invalid or not authorized transaction"というエラーが出る場合、ConfigTool.exeにパッチを当てる必要があるそうです。 詳細は、みなさんで該当するサイトを検索してみてください。
DSDの連続再生が5分を超えると、出力がノイズになってしまう個体に出会いました。 修理不能です。
2番めの「高音がキンキン、低音がスカスカ」の状況ですがPCM再生でも発生しました。 352.8kHzfsを再生すると、頻繁に発生します。 やはり、データバッファのアンダーフロー/オーバーフローが疑われます。
ALSAからAmaneroにDoPを送る時のフォーマットが、いつの間にかLittleEndianに戻っていました。 Ubuntu18.04で2020年下半期での変更です。 ALSAって、挙動が不安定で困ります。
Ubuntu20.04を使っているのですが、ここ半月ほどAmaneroへの出力が不調です。 右チャンネルの音声が出ないことがあります。 出ることもあります。 XMOSでは問題ありません。
原因に心当たりのあるトラブルもあります。 PCM再生もしくはDSDネイティブ再生を試みると、再生アプリがアンダーフローエラーで止まります。 Linux カーネルのバージョンによって、あるいは直前の再生状況によって、PCM再生のときかDSDのときか変わります。 同じ再生を何度か試みると、そのうち再生できます。
恐らく、AmaneroのUSBインタフェース切り替えを、ALSAライブラリが待てないのだと思います。 DSD再生モード(32bit Big Endian)になっているAmaneroをPCMモード(32bit Little Endian)に切り替えようとして、USBコマンドでインタフェース切り替えを指示するものの、AmaneroからAckが返る前にライブラリがタイムアウトしているのでしょう。
再生中に DSDon = High, Mute = Low から外れるタイミングがあります。1秒間ほどです。 再生アプリをroot権限で実行し、nice(-10)をソースコードに入れることで大きく改善しました。 おそらく、ALSAのバッファが一時的に空になっていたのでしょう。 ALSAライブラリのタイミング再設計が必要ですね。
Alibabaを見ていてこんな製品を見つけてしまい買いました。
Amanero Combo384と基板サイズもピン配置もコンパチのXMOS基板です。 2020年5月18日現在、入手したばかりで評価中です。 すくなくとも、再生中に高音がキンキンすることはありません。 安定性はAmanero Combo384以上です。
ただし、webmasterは読者に何も保証しません。 Alibabaで同じものを注文しようとして別のものが届いたり、読者の期待する機能、性能を実現していなくても、責任はとれません。 試したい方は、自己責任でどうぞ。
実際に使用していて、違いを発見したので報告します。
Amaneroは3.3VやGNDのピンが複数ありますが、XMOSでは電源ピンの一部が信号ピンになっています。 3.3Vの一つがS/PDIFになっているのは書いてありますが、その他のピンも変更してありました。
表に示します。
操作手順 | Amaneroの場合 | XMOSの場合 |
---|---|---|
手順1 電源投入直後 | Mute=On,DSDonは不定 | Mute=On,DSDon=On |
手順2 ネイティブDSD再生中 | Mute=Off,DSDon=On | Mute=Off,DSDon=On |
手順3 ネイティブDSD再生終了後 | Mute=On,DSDon=On | Mute=Off,DSDon=On |
XMOSの場合ネイティブDSD再生が終了してもMuteがOffのままです。
使用していて、Windowsとの相性を発見したので報告します。
Windows10のマイクロソフト製UAC2デバイスドライバからXMOSにPCMを再生すると、ノイズになります。
システムの効果音もWASAPI出力もノイズになります。
Mac OS X MavericksやLinuxからの出力に問題はありません。
ノイズの原因が判明しました。 Webmaster自作のUSB DACで搭載マイコンのファームウェアにバグがあり、WindowsでPCM再生するときだけ顕在化していたのでした。 お騒がせしました。
AmaneroとXMOSの消費電流を測定してみました。
測定条件
測定条件 | Amaneroの場合 | XMOSの場合 |
---|---|---|
条件1 待機電流 | 4.58V 0.10A | 4.57V 0.14A |
条件2 再生時電流 | 4.58V 0.13A | 4.57V 0.15A |
AmaneroとXMOSのディスクリプタを見てみました。 両方共消費電流は0mAとなっています。 バスパワーで動作するインターフェースとして、これはまずいでしょう。
ここにあった記述は CODECのトラブル体験記へ移動しました。
はんだ付けするたびにデータシートを読むのが面倒なので、ピン配列を転記しておきます。
ピン番号 | 信号名 | ピン番号 | 信号名 |
---|---|---|---|
1 | Plug | 11 | Mute |
2 | SCL | 12 | SDA |
3 | I2SDATA/DSD1 | 13 | GND |
4 | I2SCLK/DSDclk | 14 | GND |
5 | I2SLRCK/DSD2 | 15 | GND |
6 | MCLK | 16 | DSD |
7 | DSDon | 17 | F0 |
8 | GND | 18 | F1 |
9 | 3.3V(XMOSではS/PDIF) | 19 | F2 |
10 | 3.3V | 20 | F3 |
久しぶりにXMOSを個人輸入したら、S/PDIF端子が9ピンから1ピンへ移動していました。 9ピンはAmaneroと同じ3.3Vに戻っています。
I2S PCMとDSDを同じピンで出力していますが、ES9018S, ES9018K2Mの入力ピンと比較したらそのままでは繋げられません。 ES9018S/ES9018K2Mは、I2S dataがDSD rightでI2S LRCK がDSD left入力なのでDSDの左右が入れ替わっています。 過去のファームウェアでDSDの左右が入れ替わっていたり、書き込みツールでDSDの左右を変更できるのは、ESSのチップに対応するためかもしれません。
はんだ付けするたびにデータシートを読むのが面倒なので、F0~F3の解釈を転記します。
F3 | F2 | F1 | F0 | 入力フォーマット |
---|---|---|---|---|
0 | 0 | 0 | 1 | 44.1kHz |
0 | 0 | 1 | 0 | 48kHz |
0 | 0 | 1 | 1 | 88.2kHz |
0 | 1 | 0 | 0 | 96kHz |
0 | 1 | 0 | 1 | 176.4kHz |
0 | 1 | 1 | 0 | 192kHz |
0 | 1 | 1 | 1 | 352.8kHz |
1 | 0 | 0 | 0 | 384kHz |
DSDフォーマットのF0~F3の解釈を転記します。 AmaneroもどちらのXMOSも同様でした。 前回作ったXMOSの表は、測定値の写し間違いから来る間違いです。 お詫びして訂正します。
F3 | F2 | F1 | F0 | 入力フォーマット |
---|---|---|---|---|
1 | 0 | 0 | 1 | DoP2.8224MHz |
1 | 0 | 1 | 0 | DoP5.6448MHz |
1 | 0 | 1 | 1 | Native 11.2896MHz |
写真は2022年1月21日にAliExpressに注文したXMOS基板です。 この基板F3信号が出ていません。 同時に購入した3枚で同じ症状です。
怪しい位置にJP1があります。 ここをハンダブリッジしたら、F3信号が出るのかもしれません。
2019年11月22日 初出
2024年8月28日 追記