RaspberryPi vs Beagle Bone I2S信号について
RaspberryPi vs Beagle Bone の I2S信号について、まとめてみようと思います。
どちらも小型のLinuxボードで、I2S信号を出すことができます。
信号のアサインはこのようになっていて、DAC-ICへ直結してオーディオデータを転送することが可能です。
ただし、RaspberryPiの場合はMCK(SCK) というマスタークロック(システムクロック)には注意が必要です。 というのも、MCKを出力(入力も)させることができないからです。
一方のBeagle Boneは、外部からMCKを入力してI2S信号の基準源に使用することができます。 つまり精度は外部からのクロックに依存するようになります。
実は、MCKが無い状態で使用できるDACや、DAC側がI2Sマスターに切り替わるDACは非常に限られた製品しか存在しません。
これがRaspberryPiの制限で、DAC基板はたくさんあるのにDAC-ICの品種が少ない理由です。
高級DACの代表格であるPCM1792A、AD1955、CS4398、ES9018などもI2Sマスターにはなれません。
では、そういった高級DACを使ったCDプレーヤーなどの音質が悪かったのかというと、当然そんなハズはなく、DAC-ICのそばに基準クロックを置いてジッターが乗らないように使っています。
図にするとこんな感じです。 (上級CDプレーヤーの例です)
低価格なCDプレーヤーや古い機器ではCDサーボIC側にセラロックや水晶発振子をつけて、MCK、BCK、LRCK、DATAの4本をサーボICからDACへと送っています。 MCKを長い距離 引き回したりCMOSバッファを介しただけでジッターは増えていきます。
現在のDAC-ICのようにデジタルフィルタが内蔵されているタイプは、MCKがDAC動作の要になっていて、BCKやLRCKはデータ受信のラッチ信号に過ぎないのです。 つまりMCKのジッターが低いことが最も重要です。 (BCK/LRCKのジッターは影響がゼロか?というとそうでもないのが難しいですが)
高級CDプレーヤーと同じ方法で、DAC側に置いた基準クロックを使えるのがBeagle Bone+boticのメリットと言えそうです。 RPiと比べて使えるDAC-ICが格段に多くなります。 興味のある方はこの際、ご自身でDAC基板を作ってしまうというのもアリでしょう。
Beagle Boneは、自作DAC基板用として非常に優れたプラットホームです。
みんなで、じゃんじゃんハイレゾDAC基板を作ってしまおう! という提案です(笑
Boticドライバが起動したときの信号の全ピンアサインは、ご覧のとおり。
気をつけなければならない点は、MCKのinputです。 電源投入と同時に端子へ入力してしまうと、Beagle Bone を壊してしまいます。 GPIO_50から出るEnable信号が H になったら準備OKの合図です。 それまでは 3-state バッファーなどで Hi-z にしておきます。
それと、パワーボタンが 9pinにアサインされていますので、ここにプッシュスイッチを付けることで電源のON/OFFができるようになります。
その他、BBBの詳しい情報はこちらからどうぞ。 現在のRaspberryPiよりもオープンなハードウェアですね。
私は、PCM5102Aでお手軽に基板を作りましたが、みなさんのお気に入りのDAC-ICで基板を作ってみてはいかがでしょうか。 DSD信号が出せるのもboticの良い点です。
回路図も公開しているので、どうぞご自由に活用してください。
ここから先は、オーディオ系の電子工作に詳しい方々には常識なので、読み飛ばしていただきたいのですが、、
実は、オーディオ製品としての単体DACは、SPDIFやUSB入力が殆どで、I2Sをはじめとする3線シリアルのデジタル信号はマイナーだ(そんなインターフェース見たこと無い!)と思っている人が多いと思います。
ところが、実態は、その単体DACの中で、SPDIF -> I2S変換チップやUSB->I2S変換チップなどを使って、3線シリアルに変換してからDAC-ICへと入力しています。
■ SPDIF -> I2S変換チップの代表例として
「DIR9001」「CS8416」「WM8804」など
■ USB -> I2S変換チップの代表例として
「XMOS」「CM6631A」「TE8802」などがあげられます。
例外としては、USB-DACチップのPCM2704/5/6/7 がダイレクトにUSBからアナログ音声へと変換します。 また、ESS社のES9018シリーズは、SPDIF信号をダイレクトに受信してアナログへ変換できます。
I2SやMSBファースト前詰め、後詰め、LSBファーストなどの3線シリアルデータは、PCMデータをシリアルにしただけのもので、データ変換や変調など一切ない純粋なデータです。 WAVファイルもヘッダ部を除くと一緒です。
いづれにしても、RaspberryPiや Beagle BoneはI2S信号を出力することができて、USBやSPDIFという中間フォーマットへ変換することなくDAC-ICへと直結できるというメリットがあります。 無駄を省いていくことで高音質化を目指すマニアから注目を浴びているのはそのためです。 蛇足ながらWindowsよりもLinuxやmacの方が音が良いというのも常識の範疇かもしれません。 (異論はあるとは思いますが)
ではでは、良いオーディオ電子工作ライフを!
にほんブログ村
ブログランキングに参加中です。 めざせ1位!
もしよろしければ「ぽちっと」お願いします。
« SabreBerry32のExt端子について | トップページ | ALX-03 進捗 70% くらいか »
「Raspberry Pi」カテゴリの記事
- 秋の夜長にはRaspberryPi5 RT-linux セルフビルド(2024.10.13)
- 秋の夜長にはRaspberryPi5 64bit版 Sabreberry32 ドライバコンパイル(2024.10.10)
- RaspberryPi 5 の公式OSは32bit版でも64bit?(2024.10.09)
- 秋の夜長にはRaspberry Pi5 64bit カーネル・セフル・ビルド (2024.10.07)
- OSC Tokyoの準備で「IGZO 7インチ」1920x1200 LCDを動かそうとしたら・・・(2024.03.08)
「BeagleBone」カテゴリの記事
- B4-DACのTIPSを紹介します(2016.11.23)
- RaspberryPi vs Beagle Bone I2S信号について(2016.11.05)
- B4-DACを計測してみたところTI のデータシートを大きく上回る数値が!?(2016.10.31)
- B4-DACの基板拡大写真(2016.10.29)
- Botic7をインストールする方法(2016.10.23)
コメント
トラックバック
この記事へのトラックバック一覧です: RaspberryPi vs Beagle Bone I2S信号について:
» たかじんさんのBeagle Bone 用 32bit DAC基板 B4-DAC購入 [落花流水【 愛燦々と! 】]
たかじんさんのBeagle Bone 用 32bit DAC基板 B4-DAC [続きを読む]
BeagleBoneには手を出さない様に・・・と思ってきたのですが、ぐぐっと引き寄せられはじめました・・・
投稿: 通りすがりのおじさん | 2016年11月 5日 (土) 17時35分
通りすがりのおじさんさん
手を出さないと決めたら、出さなくても良いと思います。 CPUのパフォーマンス的には、Pi2、Pi3の方が上ですし。
なにか困ったときに、これらの情報が役立てられれば幸いです。
投稿: たかじん | 2016年11月 5日 (土) 23時09分
CPU本体の破壊理由が良く理解出来ました
DACとCPUを別電源とした時に、気を付ける事は有りますか?
例えば、電源投入順序等はどちらが先でも問題無いですか
投稿: オーシャン | 2016年11月 8日 (火) 18時25分
Amanero/Combo384をクロック源にしてBoticを使い始めたのが、約2年半前です。その時の驚きを忘れることが出来ません。
敷居が高いのかなかなか利用者が増えないようでしたが、最近になって簡単に使える基板を頒布する方が多くなり嬉しく思っています。
I2Sの4(3)本の線だけでDACが動くので、使わないDAC基板が増殖しています。たかじんさんのをはじめ面白そうな基板があるのですが、しばらくは我慢しようと思っています。
Boticにしてから、BBB(G)の電源の影響が大きくなったように感じていましたが、クロックのところがネックのようで、ローノイズのローカルレギュレータを入れてからはBBB(G)の電源の影響が少なくなったようです。某ブリッジ基板をお使いの方は、フェライトビーズを外してそこから3.3Vを入れてやるのがいいようです。
そういえば、Boticのサポートページの最後(現時点の)にupdate to v7rc1 larger buffersという項目があったので、実行して みました。
これはお薦めです。
投稿: Moct | 2016年11月11日 (金) 20時53分
オーシャン さん
電源は、どちらが先でも構いません。
Moct さん
Boticはそんなに前からあったのですか。
Combo384も良いようですね。 私はRPiとWEVE IOをつないでそこから22MHz/24MHzのクロックで駆動しました。 ジッタークリーナー(PLLベース)よりもダイレクトな水晶発振器のクロックの方がオーディオ的ななりかたがするように感じます。
BBB上の3.3Vはかなりノイジーなので、あれをクロックやバッファの電源に使うのは良くないですね。 5Vからレギュレータを使う必要があると思います。 それでも完全には影響を断ち切れません。
v7rc1 larger buffersは
http://www.diyaudio.com/forums/twisted-pear/258254-support-botic-linux-driver-180.html#post4773437
これでしょうか? Boticの情報を把握するのは結構大変です。 助かります。 ありがとうございます。
投稿: たかじん | 2016年11月11日 (金) 22時12分
たかじんさん
私のブログで紹介しているBOTIC7のイメージファイルを作られたのがMoctさんです。
BOTICのことを一番知っている方だと思います。
投稿: yseki118 | 2016年11月11日 (金) 23時13分
yseki118さん
なるほど、そうでしたか。 yseki118さんもお詳しいですが、さらに上をいくお方なのですね。 ありがとうございます。
botic製作者のmieroさんのwebサイトも、botic7の情報を直接書いてくださると見通しが良くなると思う今日この頃です。
boticバージョンのVolumio2に期待ですね。
投稿: たかじん | 2016年11月12日 (土) 10時35分
BBBB-DACのSPDIF出力は良い音がしますね。
以前、BBBにUSBでXMOSに繋ぎSPDIFにしてヘッドホンで聞いていました。IrBerry+RasPiのI2Sと聞き比べて、I2Sに移行し、SabreBerry、SabreBerry32と聞いて、SabreBerry32のアンプを使った音が一番かなと感じていました。
BBBB-DACのSPDIFを、お蔵入りしていたBBBで使用していたDACとアンプに繋ぐと良い音が出たので驚いています。
SabreBerry32と、BBBB-DACのSPDIF出力を聞き比べながら改造していく楽しみができました。
まだ上がありそうですね。
投稿: nzato | 2016年11月29日 (火) 09時50分
nzato さん
確かに、SPDIFは原理的に送信側のジッターに大きく左右されるので、botic と B4-DACの組み合わせをSPDIF送信機に使うのは良いかもしれませんね。
あの基板の電源・クロックをSPDIFのためだけに使用するというのは、おそらく民生機としては存在しないくらい豪華だと思います。
光コネクタよりも同軸出力の方がさらにジッターが減る可能性がります。
ただ、SPDIF用のトランス(3.3Vpp->0.5Vpp 75Ω)が売っているのをみたことがないのがネックです。
規格的には、絶縁して送信しなければなりません。
投稿: たかじん | 2016年12月 1日 (木) 21時42分
早速に、手持ちのパルストランスと抵抗分圧で同軸出力を作成し、BBBのSPDIF出力に接続し聞いています。
DACの入力切り替えで、光と同軸を切り替えると、音は変わります。判断は、まだできませんが、同軸の方が、静けさの中に何かあるように感じさせてくれます。
投稿: nzato | 2016年12月 2日 (金) 21時51分
nzato さん
素晴らしいですね。 私もテストしたいと思っているのですが、ちょうどよいパルストランスが入手できず、確認できていません。
光コネクタは、昔よりノイズが減ったとはいっても、送信・受信と2回変換を行なうためどうしてもジッターが加算されてしまいます。
同軸は、75Ωのインピーダンス整合ができていなければ、数MHzの周波数といえども反射波がおきてしまいますが、インピーダンス整合さえキッチリできると最良の状態で信号を転送できます。
光接続の方が好きだという人もいらっしゃいますので、最終的には好みの問題なのかもしれませんね。
投稿: たかじん | 2016年12月 3日 (土) 08時48分
海神無線に有るようです
Webショップも有ります
http://www.kaijin-musen.jp/157.html
同軸と光はパラでいけますかね
投稿: オーシャン | 2016年12月 3日 (土) 12時14分
オーシャンさん
ありがとうございます。 このトランスは1:1トランスなので、既にSPDIFの電圧になったものを更に絶縁したい用途に見えますね。 (SPDIFは規格上絶縁しているので、これを追加すると2回絶縁することになる)
TTLレベルや3.3VロジックレベルをSPDIFの電圧に変換するには2:1トランスの方が適切と思います。
http://www.scientificonversion.com/Aespaper.PDF
Fig. 18 (37ページ)
こちらを参考にどうぞ。
光コネクタとパルストランスをパラってもいけるかもしれませんが、安全をみると一度バッファを通してそれぞれを駆動してあげた方が良いと思います。 最悪の場合、負荷が重すぎてBBBのポートを破壊しかねません。
投稿: たかじん | 2016年12月 3日 (土) 15時04分
nzatoです
私の使っているのが、海神のDA102Cです。BBBのSPDIF出力から220Ωでパルストランスに繋ぎ、反対側は直流カットのコンデンサーを入れています。同軸出力側は75Ωを入れてRCAコネクタを繋いでいます。光コネクタとパラですが、220Ωを入れてあるので、大丈夫ではないかと素人考えです。DACも不満を言っていないので、良しとしています。
光と比べて、同軸の方が細かい音が聞こえ、解像度が高いように感じています。
投稿: nzato | 2016年12月 3日 (土) 22時04分
たかじんさん
いつも有益な情報と高性能な基板の提供をありがとうございます。
おかげでB4-DACはエージングもまだまだですが、私の駄耳には十分な高音質で音楽を奏でています。SabreBerry32でのOLED表示など使い勝手も捨てがたく、うれしい悩みが続きそうです。
ところで、質問が2点あります。アドバイスいただければ幸いです。
1. 上のピンアサインではMCK-IN OKが18番ピンから出ていますが、B4-DACの回路図と実物では14番となっています。単なる間違いとも思えなかったので、教えてください。
2. B4-DACでOLED表示は可能でしょうか?かなり難しいのか、表示プログラムを組み込むとせっかくのBoticの軽さをスポイルするのであえてされていないのか、お考えをいただけないでしょうか。
以上不躾な質問かもしれませんが、よろしくお願いします。
投稿: myoko | 2016年12月 5日 (月) 16時48分
myoko さん
ご指摘ありがとうございます。
間違っておりました。回路図が正解です。 上の図も修正しました。
BBBでOLED接続ですが、
BBG+Botic7で接続できたという報告は頂いております。
http://6218.teacup.com/nwelec/bbs/1803
1箇所の修正がどの部分かは、不明です。
https://nw-electric.way-nifty.com/blog/2016/09/volumio2i2coled.html
スクリプトはこちらのものです。
投稿: たかじん | 2016年12月 5日 (月) 20時44分
こんばんは
BBGの場合、J4(白いコネクタ)にI2C2の信号が出ていますので、Grove用ケーブルを使用してOLEDを接続すると見た目綺麗です。
この場合、スクリプトは以下の様に2に変更する必要があります。
self.bus = smbus.SMBus(2)
投稿: teru | 2016年12月 5日 (月) 22時19分
たかじんさん
早速のご回答ありがとうございました。
色々、いじって楽しみたいと思います。
今後ともよろしくお願いいたします。
投稿: myoko | 2016年12月 5日 (月) 22時21分
teru さん
有益な情報をありがとうございました。
投稿: myoko | 2016年12月 5日 (月) 22時24分
teru さん
貴重な情報ありがとうございます。
BBGは、基板上にI2Cコネクタ、UARTコネクタが純正で装備されているので、そこを使うのはスマートですね。
myoko さん
うまくいくといいですね。
投稿: たかじん | 2016年12月 6日 (火) 20時23分
teru さん
たかじん さん
アドバイスありがとうございました。
ケーブルが届いたのでチャレンジしたところ、あっけなく動きました。
起動も早く快適です。
以上、ご報告まで。お世話になりました。
投稿: myoko | 2016年12月13日 (火) 07時29分
myoko さん
OLED表示、いいですね。 たしかに起動も速くて安定しているので実用的に使うには、かなり良いと思います。
投稿: たかじん | 2016年12月13日 (火) 22時08分