Raspberry Pi3で遊んでみましょう! 2016.6.5
おもわず日本橋を徘徊したときにRaspberry Pi3を買ってしましました。
Pi3です。イギリス製ですね。
中身はこんな感じです。Pi2とほとんど同じですがWiFiのアンテナなどがついています。
VOLUMIO1.55が動かない
最初にVOLUMIO v1.55をSDカードに書き込んで動かそうとしましたが、まったく動きません。
Pi3の初期画面から一向に先に進む気配がありません。
一瞬、Pi3の初期不良かとおもいましたが、Raspbianを入れてみると動くので、Pi3自体は問題ないようです。
VOLUMIO 1.55はPi3では動かないようです。
VOLUMIO2を導入!
そんなとき「福島の球使い」さんから、VOLUMIO2のRC1を導入しては?というアドバイスを頂き、
そちらをダウンロードしてみました。
そうするとあっさり動きだしました。「福島の球使い」さん、ありがとうございます。
VOLUMIO2が動き出しました。画面は以前と少し変わってきています。
外付けDACを接続してみましょう。
動くことが確認できたので、外付けDACをつけてみましょう。
ここでDAC51X2 MINI BPLUSをr取り付けてみることにしました。
新しく組み立てましょう。
DAC51X2 MINI BPLUSの基板です。
組み立ては部品点数も少ないので短時間に完成です。
すこし手をいれる必要があります。
VOLUMIO2で外付けDACを動かすにはすこし手を入れる必要があります。
このあたりは他のHPで詳しく述べられているので、ここでは詳細は省略しますが以下がメインのポイントです。
/boot/config.txt の最終行に dtoverlay=hifiberry-data の一行を追加。
VOLUMIO2のPLAYBACK OPTIONSのOutput DeviceにHifiberryを選択します。
動かしてみましょう!
40PのコネクタをとりつけてPi3に接続します。
Pi3とDAC51X2 MINI BPLUSを接続しました。
動作確認の様子です。
問題なく動き出しました。
192kHz 24Bitソースでも確認してみましょう。
雑誌の付録にあった音源をUSBに書き込んでPi3に差してやります。
自動的にUSBが認識されるのは便利です。
再生してみましょう
192kHzのLRクロックです。
まずはLRクロックは192kHzであることを確認しました。
つぎにBCKを調べてみました。周波数は6.144MHzです。
ということは6.144MHz/192kHz=32fsになります。
ということは32/2=16Bitになりますから、再生時の分解能は16Bitになっていますね。
なぜだろう?
BCKは6.144MHzです。
出力は問題ないのですが、分解能が16Bitになっています。
24BitにするにはVOLUMIO2側の設定が必要なのかな?
Playback Optionsをいじってみました。
関係しそうなというところでVolume nomalizationをOFFにしてみました。
Volume nomalizationを変更してみました。
これでいいのかもしれません。BCKが12.288MHzになりましたので、これで64fsになります。
すなわち分解能は24Bitあるいは32Bitになっているはずです。
LRCKは192kHzです。
BCKは12.288MHzの倍になりました。
これでいいのかもしれませんね。
でも、周波数表示があると便利だな〜とおもってしまいます。
簡単に
周波数カウンタをとりつけておきました。専用のボードでもつくろうかな(笑)。
カウンタをつけてみました。
そもそも
なぜPi3でVOLUMIO1.55が動かないか? もし動かないならネットを探せばそういった記事がたくさんヒットすると思うのですが・・・。
これに対しては、Pi3が消費電流が大きい(2.5A要求)ことから、すこし敬遠されているのでは?といったコメントもいただいたことがあります。
オーディオ対応だけであれば、Pi2も不要でTYPE-AあるいはB+程度でもいいかもしれませんしね。
でもPi3にRaspbianを入れたときに思いましたが、YouTubeの動画なんかもストレスなく再生できるのは、すごいな〜と思いました。
アナログ電源?
いまはスイッチング電源をつかっていますが、アナログ電源にグレードアップして見たい気もします。
さてさて、どうしようかな?
ちょっと嗜好を変えて 2016.6.11
Pi3をオーディオサーバへと構築しようとしたとき、アナログ出力だけでなくSPDIF出力も便利なので、どうやったらできるか考えてみましょう。
簡単なのはDIT4192などのトランシーバを接続するだけで済みそうなのですが、ちょっとこまった問題があることに気づきました。
Pi3で受信するネットラジオなどは44.1kHz出力で32fsのものがあります。すなわち16bit出力なのですが、通常のDACやトランシーバが受信可能なのは
64fsである必要があるのですが、32fsの信号をどのように処理するかです。
運がいいことにAK4137はI2S限定ですが32fsでの受信が可能です。
一旦AK4137で受ければ、あとは64FSへの変換も可能です。
ということで、AK4137へ接続してみましょう。ここではSRC4137を使用しました。
SRC4137自体はPCM信号を接続することが可能なのですが、コネクタからの入力はDIX9211が受信することになるのでマスタークロックが必要です。
しかしPi3からのI2S信号にはマスタークロックがありません。DATA,LRCK,.BCKのみです。
ということで、直接的にAK4137に接続する必要があります。AK4137はI2S入力時にマスタークロックは必要ありません。
そのため、DIX9211とAK4137の間の接続を切断して、直接的にI2S信号をAK4137に接続することにしました。
SRC4137ではここを切断します。
基板のAK4137へ直接信号を入れるために、途中のランドから線を引きづりだしました。
なお、下図の右上の線はGNDラインです。
この部分からI2S信号を入力します。
あとはPi3と接続するだけです。
こんな感じででPi3とSRC4137を接続しました。
まずはDACを接続
動くかどうかを確認するために、SRC4137にR2RDACを接続してみました。
DACを接続してみました。
懸案のソースは
そしてネットラジオから懸案のソースを再生です。44.1kHzですが、32FS出力のデータです。
32FSなのでBCKは1.411MHzです。 FSは44.1kHzになっています。
無事音声出力は得られているようですね。
動作確認OKです。
備忘録で
Pi3とSRC4137の接続をまとめておきました。
SRC4137における接続の概略です。
接続する箇所はLCDのちょうど上側にある、DIX9211とAK4137を接続する部分のランドを活用。
半田面で接続する箇所をカット。
カットした状態です(再掲)
接続の方法です。SRC4137とPi3とのGNDはすくなくとも1本は接続しておきます。
SRC4137の設定は
PCM0の入力時のフォーマットを設定します。I2Sに設定します。
入力はPCM0を選択します。入力がないのでアンロック表示ですが気にしません。
これでOKです。
DIT4192を接続してみましょう
SRC4137のI2S出力をSPDIFに変換するために、DIT4192を接続してみましょう。
DIT4192はハードウエアモードで動かしています。ソフトモードにすると多彩な設定ができますが、
PIC等のマイコンが必要になるのと、今回も目的は単に256fsのI2S信号をSPDIFに変換するだけなので
ハードウエアモードで十分です。でも、接続するジャンパーは結構多くなったりします。
DIT4192をブレッドボードに乗せて動作確認準備です。
Pi3→SRC4137→DIT4192を接続した様子です。
SPDIFの出力を確認するために、一旦FFASRCで受けて、そのあとR-2R DACに接続することにしました。
FFASRCを接続した理由は受けている周波数がわかりやすいためです。いま、受けている周波数は88.2kHzであることがわかります。
Pi3→SRC4137→DIT4192→FFASRC→R2R DAC の接続です。
動作確認!
さて、VOLUMIO2を動かして、ネットラジオに接続してアナログ出力がでているか確認です。
問題ないようですね。
Raspberry Pi用に
AK4137とDIT4192を搭載したマルチ出力が可能な基板があるよ便利そうです。
出力はDSD、PCM、SPDIFです。
でも、小さい基板に部品がすべて乗るかな?
まあ、色々と考えてみましょう。
考えてみれば 2016.6.13
上記のとうりですよね。早速試してみましょう。
もう1枚のSRC4137を無改造のままPCM0入力にPi3からの出力信号を入力しました。
マスタークロックなしでも周波数の認識をしてくれます。
WEBRADIOには22.05kHzのソースもあります。
音声出力も問題ないようですね。
まずはPi用のSRCボードを描いてみましょう。
面積が小さいので、部品は乗りますが配線ができるか若干心配気味です。
まあ、とりあえず描いていきましょう。
結構部品が必要です。配線できるかな?
なんとか配線できました。 2016.6.25
配線チェックは後回しにして、次はAK4490を搭載した基板も考えてみましょう。
こんな感じかな? 2016.6.26
AK4490をつかったDAC基板ですが、アナログ回路に正負電源が必要なのでDC-DCコンバータを搭載してみましょう。
必要となる部品を大まかに乗せてみました。
こんな感じかな?
一通り配線が終わりました。
そうですね。最初は1Wで十分だと思っていましたが、いろいろと考えると3W品も無理やりでも搭載できるといいかもしれませんね。
でも、ピン配置が異なるので、ちょっとパターンに工夫が必要です。
3W品のDC-DCも搭載できるように少しパターンを修正してみました。
基板ができました。 2016.7.2
こんな感じでできました。
まずはPiDAC4490から確認しましょう! 2016.7.3
こちらの基板を組んでいきましょう。
まずはDC-DCコンバータがどのくらいのサイズの余裕で搭載できるか試してみましょう。
DC-DCコンバータには1Wタイプと3Wタイプの両方が搭載できるようにしていますが、どちらも問題なく乗りそうです。
大きい方の3Wタイプでも、とくに基板から大きくはみ出ることもなさそうです。。
1Wタイプはかなりサイズ的に余裕があります。
3Wタイプでも問題ないですね。
3Wタイプでも基板から大きくはみ出ることもなさそうです。
とりあえず組みあがりました。
こんな感じで組みあがりました。DC-DCは1Wタイプを搭載しています。
動作確認には
直接Piに接続してもマスタークロックがないので動作しません。
ということでマスタークロックがでている、汎用のDAI基板に接続して動作確認をすることにしました。
手元にあったDAI9001を接続して試してみることにしました。
DAI9001を接続して試してみました。
こんな感じで2枚重ねで接続します。
電源供給はジャンパー線で
PiDAC4490の動作には5Vと3.3Vの動作が必要になるので、これはDAI9001からジャンパー線で供給してやります。
そして、DAIにSPDIF信号を入力して、出力がでるかどうか試してみましょう!
こんな形で動作確認しています。
あれ?
PiDAC4490から無事出力がでることは確認できたのですが、オフセットが大きすぎます。
なぜだろう?
OPアンプの差動アンプを通しているので、ほぼオフセットはゼロになるはずなんだけどな〜?
なぜか出力に大きなオフセットがのっています。
メジャーバグ発見!
どうやらOPアンプの向きの入出力の方向を間違ったようです。こりゃメジャーバグですね。
修正方法はOPアンプを反対に差し込んで、電源の正負を反転させてやりました。
修正前のOPアンプ(左を向いています) 修正後のOPアンプ(右を向いています)
電源部を途中でクロスさせて反転させました。とりあえずの修正です。
まずは動き出しました!
修正をかければ、まずは動きだしました。
AK4490のハードウエアモードでの動作も問題ないようです。
動きだしました。
次は、PiSRC4137だ!
まずは必要な部品を全部のせました。お出かけ用にPICも搭載して写真をパチリです。
PiSRC4137のお出かけ用の写真です。
ちなみに裏側はこんな感じです。
ソフトを組んで、動作確認をしてみましょう。 2016.7.14
まずはひととおりソフトを組んだので動作確認をしていきましょう。
この基板はPi3から5Vと3.3V電源を供給するようになっているのですが、
動作確認に外部から2つの電源を供給するのは面倒なので、5V単一の電源のみ供給して
基板上に3.3Vに降圧するための電圧レギュレータを搭載しておくことにしました。
3.3V用のレギュレータを基板上に搭載しています。
Pi3から供給されるPCM信号のDATA、LRCK、BCKについてはSRC4137から供給するようにしました。
それらは細いラッピングワイヤーで接続です。
そして、基板からの出力は10PのフラットケーブルでR-2RDACに接続します。
PiSRC4137の動作確認の状況です。
動作確認の全体の構成はこんな感じです。
SRC4137→PiSRC4137→Simple R-2R DACの構成で動作確認です。
すくなくともPiSRCの動作は大丈夫なようです。
備忘録として
PiSRC4137の動作モードは基板上のジャンパーM0〜M6の設定で決定します。
まずはこれらの設定と動作を備忘録としてまとめておきましょう。
基板の動作モードを決定するジャンパースイッチです。
1.PCM動作モード (M0=OPEN)
まずM0はPCMあるいはDSDでの動作モードを決定します。
まずはM0=OPENでのPCM出力モードでの動作モードです。
M2,M1は出力フォーマットです。
M2 | M1 | |
OPEN | OPEN | I2S FORMAT |
OPEN | SHORT | Left Justified |
SHORT | OPEN | Right Justified 16Bit |
SHORT | SHORT | Right Justified 24Bit |
M5,M4,M3は出力周波数を設定します。
M5 | M4 | M3 | Fs (kHz) |
マスタークロック | |
OPEN | OPEN | OPEN | 44.1 | 22.5792MHz | 512fs |
OPEN | OPEN | SHORT | 48 | 24.576MHz | 512fs |
OPEN | SHORT | OPEN | 96 | 24.576MHz | 256fs |
OPEN | SHORT | SHORT | 96 | 49.152MHz | 512fs |
SHORT | OPEN | OPEN | 192 | 24.576MHz | 128fs |
SHORT | OPEN | SHORT | 192 | 49.152MHz | 256fs |
SHORT | SHORT | OPEN | 384 | 49.152MHz | 128fs |
SHORT | SHORT | SHORT | 768 | 49.152MHz | 64sf |
M6はフィルターモードです。
M6 | Filter | |
OPEN | SHARP ROLL OFF | |
SHORT | SLOW ROLL OFF |
2.DSD動作モード (M0=SHORT)
M0=SHORTの時はDSD出力の動作モードです。
M2,M1は未使用です。
M2 | M1 | |
OPEN | OPEN | Reserved |
OPEN | SHORT | Reserved |
SHORT | OPEN | Reserved |
SHORT | SHORT | Reserved |
M5,M4,M3は出力周波数を設定します。
M5 | M4 | M3 | BCK周波数 (MHz) |
マスタークロック (MHz) |
|
OPEN | OPEN | OPEN | 2.822 | 11.2896 | 256fs DSDOUT=64 |
OPEN | OPEN | SHORT | 2.822 | 11.2896 | 512fs DSDOUT=128 |
OPEN | SHORT | OPEN | 2.822 | 22.5792 | 512fs DSDOUT=64 |
OPEN | SHORT | SHORT | 5.644 | 11.2896 | 256fs DSDOUT=128 |
SHORT | OPEN | OPEN | 5.644 | 22.5792 | 512fs DSDOUT=128 |
SHORT | OPEN | SHORT | 5.644 | 45.1548 | 512fs DSDOUT=64 |
SHORT | SHORT | OPEN | 11.288 | 22.5792 | 256fs DSDOUT=128 |
SHORT | SHORT | SHORT | 11.288 | 45.1548 | 256fs DSDOUT=64 |
M6はフィルターモードです。でも、これってPCMの設定モードなので、
動作するかどうかは??なところです。
M6 | Filter | |
OPEN | SHARP ROLL OFF | |
SHORT | SLOW ROLL OFF |
LEDの機能もまとめておきましょう。
LEDのD1〜D3は入力周波数を表示します。
D1 | D2 | D3 | Fs |
ON | 22.05kHz | ||
ON | 32kHz | ||
ON | ON | 44.1lkHz | |
ON | 48kHz | ||
ON | ON | 96kHz | |
ON | ON | 192kHz | |
ON | ON | ON | 384kHz |
D4は32FSのときに点灯(16Bitフォーマット入力時)。
D5はI2C通信エラー時に点灯(半田付け不良など)。
つぎはSPDIF出力の確認です。 2016.7.16
PiSRC4137でのSPDIFでの出力を確認しましょう。
その前にSRC4137の出力にFS表示ができるようにLED基板を追加しました。
SRC4137にマスタークロックの周波数は表示できるのですが、FS周波数としての
表示はないので、いちいち計算する必要があるのですが、ちょっと面倒になりLED基板を
とりつけることにしました。
SRC4137に周波数表示のLED基板を追加しました。
SPDIF出力の確認のために、色々と接続する必要がありますが、こんな構成にしました。
SRC4137→PiSRC4137→(SPDIF)→DAI9001→PiDAC4490
です。
DIT4192はソフトウエアモードで動作させているので、とりあえずどれかの周波数で出力が正常であれば
H/Wは問題ことになります。あとは、S/Wの調整するだけです。
こんな感じで接続して動作確認しました。
とりあえず、DACからのアナログ出力が確認できましたので、これで一安心です。
問題なく動作しましたね。
いよいよPi3につないでみましょう!
さて、しばらくお休みしていたPi4に登場してもらいましょう。
VOLUMIOもRC2がリリースされているようなので、のせ変えたいところですが、
いままでの環境が保持できるかどうか心配なのでちょっとおあづけです。
まあ、VOLUMIOのバージョンアップはあとで考えるとして、まずはPiSRC4137を接続してみましょう。
接続といっても、コネクタをとりつけて親亀小亀でのせるだけです。
このときに気づきましたが、基板の右側の取り付け穴がないですね(笑)。
まあ、左側にあるのとコネクタが大きいので基板がガタつくことはありませんが。
まずはPiSRC4137をとりつけました。
つぎはその上にPiDAC4490を取り付けます。
こちらもコネクタをとりつけて親亀小亀です。
その上にPiDAC4490を取り付けました。
3枚重ねの状態です。すこし上側のコネクタの高さが高くてスペーサが浮いています。
ワッシャでもいれて高さ調整が必要です。
いよいよ動作確認!
いよいよPi3を動かしましょう。
考えてみると動作環境はきわめてシンプルです。
WiFi無線で通信することになるので、Pi3には電源を供給するだけです。
パソコンがないと、立ち上がったかどうかもわかりませんが、これだけシンプルかつコンパクトだと
ベッドサイドのミュージックサーバなんかにいいでしょうね。
シンプルだな〜。
問題ないようです。
まずは適当にWEBRADIOからソースを選んで再生してみました。
問題なくアナログ出力がえられました。
まずは一安心です。
ソースの周波数は44.1kHzなので、その状況がLEDに表示されいます。ちょうどLEDのD1,D2が点灯しています。
よこから入力周波数を確認できます。
アナログ出力も問題ないようです。
一応192kHzソースでも確認しておきましょう。
192kHzソースを受け入れた場合のLED動作も問題ないようでfす。LEDのD2,D3が点灯します。
DSD出力も確認しておきましょう!
DSDの出力確認にDAC4490を接続してみました。
DAC4490を接続です。
どうやら、DSD出力がうまく動くパラメータの組み合わせがあるようです。
まずはこの設定にして動作させました。
DSD出力のジャンパー設定はまずはこれにしてみました。
出力は問題ないようです。
DSD出力用にはすこしパラメータの調整が必要なようです。
まあ、のんびり行いましょう!
ひさしぶりの作業再開 2016.7.24
DSD変換時のパラメータの確認のために、一旦SRC4137とDAC4490を接続してどのパラメータの組み合わせがよいかを確認しておきましょう。
SRC4137とDAC4490を接続してDSD再生パラメータの確認です。
結局のところ
DSD再生時のパラメータは下記のようにすることにしました。
2.822MHzから11.288MHzまでのサポートは同じです。
M5 | M4 | M3 | BCK周波数 (MHz) |
マスタークロック (MHz) |
|
OPEN | OPEN | OPEN | 2.822 | 22.5792 | 512fs DSDOUT=64 |
OPEN | OPEN | SHORT | 2.822 | 22.5792 | 512fs DSDOUT=64 |
OPEN | SHORT | OPEN | 5.644 | 22.5792 | 512fs DSDOUT=128 |
OPEN | SHORT | SHORT | 5.644 | 22.5792 | 256fs DSDOUT=64 |
SHORT | OPEN | OPEN | 11.288 | 22.5792 | 256fs DSDOUT=128 |
SHORT | OPEN | SHORT | 11.288 | 22.5792 | 512fs DSDOUT=256 |
SHORT | SHORT | OPEN | 11.288 | 45.1548 | 256fs DSDOUT=64 |
SHORT | SHORT | SHORT | 11.288 | 45.1548 | 512fs DSDOUT=128 |
DSDでの最終確認
再度、PICのソフトを修正して、PiSRC4137とDAC4490を接続して動作確認です。
最終動作確認です。
SPDIFの出力もあわせて確認しておきましょう。SPDIFの出力をSRC4137に接続して、出力周波数も確認です。
なお、PCM出力では768kHzまでサポートできますが、SPDIFではDIF4192の動作周波数から192kHzが上限になります。
SPDIFでも最終の動作確認です。
試聴してみましょう!
さて、これでPiDAC4900とPiSRC4137がほぼ仕上がったこともあり、いよいよ試聴してみましょう。
DACの出力をヘッドホンアンプであるHPA1972mk2に接続しました。
試聴用にHPA1972mk2に接続しました。
WEBRADIOでの試聴ですが、SRCの効果もあってかなんとなく滑らかな音な感じです。ちなみに、
再生時は192kHzにアップサンプリングしています。
ついでに!
PiDAC4490には1W級のDC-DCコンバータがのっていますが、これを3Wに変更してみました。
3WのDC-DCに変更します。使用したのはこれです。
DC-DCコンバータ搭載とパターン変更の一覧です。
1W級を使用する場合 | 基板裏面はとくに手を入れる必要はありません。 1Wと示してあるところが接続されています。 |
|
3W級を使用する場合 | 1Wで示されている部分を切断し、 3Wで示されている部分を接続します。 |
再度試聴!
3WのDC-DCに変更して、再度試聴です。
こころなしか音に余裕がでた感じです。でも思い込みでしょうね。
3WのDC-DCでも問題なく搭載できます。
さて、まとめのために製作マニュアルも作成しておきましょう。
さて、DACもSRCも両方ともマニュアルができました。
PiSRC4137manual.pdf
PiDAC4490manual.pdf
最終のソフトチェックをして 2016.8.2
いろいろなモード設定をして動作の最終チェックも完了です。
768kHzで試聴してみましょう!
AK4490は最高で768kHzでも動作するようなので、それで動かしてみましょう。
PiSRC4137もPCMモードでは最大768kHzで出力できますので、そのモードに設定します。
MODEジャンパーの3,4,5が周波数を決めるジャンパー(詳細はマニュアルを参照ください)ですが、
それらをすべて短絡させて768kHz出力に設定します。
MODEジャンパーの3,4,5を短絡すると768kHz出力になります。
PiSRC4137の設定後に、その上にPiDAC4490を載せてまずは動作確認からです。
PiSRC4137の上にPiDAC4490を載せて動作させます。
まずは動作確認です。問題なく動きました。
試聴してみましょう!
出力にアンプにはPrecisionEVOL HPAを接続してヘッドホンで試聴です。
このHPAはMUSES72320のかなり高性能な電子ボリュームを使って、アンプ部はA12タイプのディスクリー構成になっています。
こんな感じで試聴環境を構成しました。768kHzでのアップサンプリングでの試聴は初めてかもです。
ソースは雑誌についていた192kHzサンプルの音源を用いました。
再生はそれをPiSRC4137で768kHzにさらにアップサンプリングしているわけですが、
すごい情報量が増えた感じがします。たぶん、気のせいです(笑)。
アップサンプリングしても情報が増えるわけではないですからね。
でも、音の物理的なつながりはよくなっている(分解能があがって滑らかにつながる)わけですから、
音に影響がないこともないでしょう。
まあ、あまり難しいことは考えずに768kHzでの再生を楽しんでいます。
(つづく・・・かな?)