自作のユニバーサル基板との音の違いを確認したいので、基板を
領布頂きました。
日本製ということでとてもきれいな基板です。
部品を載せました
■2016年7月31日追記
はんだ付けは完了していたのですが、上手く動いていないようで、ずっとデ
バッグしていました。
X2:22.5792MHzのクリスタル発振器側のLEDが起動時に一瞬光るだけで
44.1KHzの音源データを再生しても付かない障害が発生していました。
ハード面/ソフト面からの切り分けが必要でしたので、またドライバーにメ
ッセージ出力を組み込むことにしました。
手順を備忘録として残します。(すぐ忘れちゃうのでw)
①コンパイル環境の準備とカーネルのソースをダウンロードする
(たかじんさんのページを参考にしました。)
・コンパイル環境のインストール
sudo apt-get update
sudo apt-get -y install ncurses-dev device-tree-compiler gcc bc make
幸いに元カーネルとgccのバージョンが一緒だったので、このまま続行しま
した。(違っている場合の対処は上記リンクを参考にして下さい)
・カーネルのソースをダウンロードする。(rpi-sourceコマンド)
以下のコマンドを実行します。
sudo wget https://raw.githubusercontent.com/notro/rpi-source/master/rpi-source -O
/usr/bin/rpi-source
sudo chmod +x /usr/bin/rpi-source
sudo /usr/bin/rpi-source -q --tag-update
sudo rpi-source
※ソースがダウンロードできるまでしばらくかかります(10分~30分)
②ドライバソースにデバッグ文を組み込む
hifiberry dac+ proのドライバーを利用しているので、そのドライバーを
修正します。以下がソースになります。
~/linux/sound/soc/bcm/snd-soc-hifiberry-dacplus.c
・printk文を組み込む
カーネルのデバッグ方法は色々あるようですが、ここでは簡便なprint文
を組み込むことにしました。このprintk文で出力したメッセージは、カー
ネルコンソールに出力されることになります。(dmesgで見れます)
printk文は普通のprinff関数とよく似ていますが、最初にメッセージの
優先コードを付与します。私は、"KERN_DEBUG"を付与しています。
③部分コンパイルをする
Raspbianのカーネルをセルフコンパイルすると、半日以上かかってしま
いますので、部分コンパイルをすることにします。
部分コンパイルは以下のコマンドになります。
make -C フォルダ1 M=フォルダ2
- フォルダ1:カーネルソースの格納場所
- フォルダ2:部分コンパイルしたいソースの格納場所
※このコマンドはカーネルソースの場所にcdして実行します。
これで全コンパイル無しで数分でドライバモジュールのコンパイルができ
ることになります。
③デバッグ
hifiberry dac+とproは同一のドライバーを使っています。初期化時に
ドライバが以下のロジックでproボードかどうか判定しています。
(そしてproならマスターモードで動作します)
・44.1KHz系のクリスタル発振器をonにして、その動作を確認
・クリスタル発振器をoffにして、sckが出ていないことを確認
・48KHz系のクリスタル発振器をonにして、その動作を確認
この3つの条件がクリアされた時に、proボードとして認識されてマスター
モードとして設定が進みます。
私の場合は、一番目の条件の44.1KHzの動作が確認できないことが
デバッグ文よりわかりました。(LEDは一瞬つくのですが...)
④ハード修正
クリスタル発振器(KC3225K)からの出力が確認できないことがわか
りましたので、もう一度入念にはんだ付けをし直しました。
動作させたところ、44.1KHzと48KHzのデータでそれぞれクリスタル
発振器が使い分けられるようになりました。
めでたし、めでたし
-
購入金額
4,000円
-
購入日
2016年07月08日
-
購入場所
通りすがりのおじさんさん
2016/07/09
あいにくうちにはどちらも合致するワイヤーがなくて、今回は固いワイヤーを使った為、いじっているうちにICのピンが剥がれてしまいました。
(折れてはいないので、そ~~~~っと扱ってます)
通りすがりのおじさんさん
2016/07/09
私のは半田が尖ったり、部品がちょっと斜めったりしてます・・・
baelさん
2016/07/14
先に作業台用意しないと、腰が逝ってしまいそうです。
最近腰痛が激しく、腰痛治療の通院がままなりませぬ・・・ orz
通りすがりのおじさんさん
2016/08/01
お疲れ様でした。
LEDがクロック選択用のGPIOピンに繋がっているので、クロック出力の有無にかかわらず一瞬光ります。
先日作ったロープロ版は、改造部分がうまくいっていないみたいで、チリチリとノイズがでちゃってます。
(最初に作った2枚は大丈夫だったのですが・・・)
yosyos888さん
2016/08/01
通りすがりのおじさんさん
2016/08/13
本体とDAC別々に電源供給してます?
私は別電源を同時にONすることが出来なかったので、今までジャンパをショートさせて使っていたのですが、スイッチ付きコンセントを買ってきたので別供給にしてみたら、まともに音が出なかった・・・
音量が小さく、ノイズでボロボロでした・・・
yosyos888さん
2016/08/14
ただ別電源にしても、アイソレーションしているわけではないので
グランドは共通にする必要があると思います。
yosyos888さん
2016/08/14
yosyos888さん
2016/08/14
通りすがりのおじさんさん
2016/08/14
GNDのみジャンパーで綺麗に鳴りました。
PCM5102Aの基板では、+5V、GNDとも別供給で大丈夫だったので、その感覚でいたのですが・・・
ちなみに今はこの2種類を音だし中です。(アートワークは同じ基板です)
アイソレーションは駄目かも・・・
yosyos888さん
2016/08/14
yosyos888さん
2016/08/14
あとニチコンFGもオーディオしてますっていう感じで良いですね。
通りすがりのおじさんさん
2016/08/15
部品集めと実装メーカー決めがまだですけど・・・
アイソレーターの部分はSi8441を2個使い、信号の向きを
Pi→DAC:SCL,SDA,DOUT
DAC→Pi:LRCK,BCK
で引いてはあるんですが、動きそうにないのでフットプリントをショートさせる様になりそうです。
LRCKとBCKの向きですが、ドライバがマスターモードに設定するまでの間、DAC側にLRCKもしくはBCKが来ている事を見ていなければいけるんじゃないか?と安直に思ってみたり。
yosyos888さん
2016/08/15
でもI2S専用ではないので、スレーブとマスターを切り替えるには、3つぐらい必要そうなので躊躇しています。
半田付けはやはりクリスタル発信器が鬼門なのでリフロー済みであれば購入者は安心ですね。
たかじんさんの言っている、50MHz代の基本クロックの実験もしてみたいです。
yosyos888さん
2016/08/15
通りすがりのおじさんさん
2016/08/15
もしうまく動くのであれば、スレーブモード対応ドライバーのみに対応でいいかと。
通りすがりのおじさんさん
2016/08/15
間違えました。
マスターモード対応ドライバーのみに対応でした・・・