ラズベリーのパイが無いのでパインを食してみた
前回の投稿ではPINE64+にVolumio3をビルドしてインストールしました
あ、書いて無かったのだけど買ったのは
4台w 安かったもので…(4台買っても、ラズパイ1台分にならない
さて、Volumioを使う人なら説明が要らない外部DAC駆動にとりかかります
PINE64+に使われているAllwinner A64はIIS DAC駆動に必要なMCLK,BCLK,LRCLKの3つの基準クロックが
ピンに割り当てられています
もちろんCBM,CFMモード対応も
となるとCPUの内蔵PLLで発生させているジッタに埋もれたクロックではなく、ある程度クリアなクロックでDACを
駆動したくなる
使用するDACにマスターモードがある場合、そこでMCLKを用意し、DACで適当に分周させたBCLK,LRCLKを出力させる
ってのが手軽な方法です
今回はDACの選択肢を増やすために各クロック全部をSiliconLabのSi5351Aで発生させ、CPUとDACに供給します
Si5351Aの制御(I2C)はCPU…というか動作しているDebianのDAI-codecから行い、再生するアプリからは一切
見えず気にしないで済むように、と
ちょっと前に弄ってたBananaPiM2Zeroと同様(まだ投稿してなかったかな?💦)、先達の開発成果を使わせて頂きました
まず最初に躓きがちな点を
Volumio3自体はarmv7(32bit)ですが、デバイスドライバなどはarmv8(64bit)と
VolumioOSのBusyboxは32bit、ドライバー(AllwinnerH3系I2Sドライバーのsun8i-i2s)は64bit
これを念頭に入れ環境構築しないと読み込んでくれるドライバーが作れません💦
ドライバのビルドで用意するもの
・amd64で動くDebian Busterあたり(実機は32bitのモジュール群なので、そこでの64bitのドライバービルドはかなり面倒なのです)
・Volumio3のベースの、Kernel5.7.19のソース
・ドライバーをビルドするツールチェイン(gcc-8-aarch64-linux-gnu
・Device Tree Compiler
そのうえで、以下の3つのドライバーソース
・Si5351Aのドライバー(Kernelソースに入ってるはず
・AllwinnerH3系のI2Sドライバーsun8i-i2s.c(詳しくはArmbianのフォーラム辺りに
・__tkz__氏製codecドライバーi2s_mfdl.c(リンク記事のLinuxリポジトリではなく氏のLinuxSBCAudioリポジトリのものを
この環境で3つのドライバーを作成し、/lib/modules/5.7.19/にコピー
現在I2S処理を行っているsun4i-i2s.koを一旦退避させ(/lib/modules/5.7.19/kernel/sound/soc/sunxi/にある)
sudo depmod -aでエラー無く登録出来たら(lsmodで確認
dtcで現行デバイスツリーを逆コンパイル、3つのドライバーを導入する様改変し、再コンパイル、再起動
当初構築した元のVolumio3-OS以外に実際必要なものは、
clk-si5351a.ko、sun8i-i2s.ko、i2s_mfdl.ko、改変したsun50i-a64-pin64-plus.dtb
4つのファイルだけです
これの難点?はPINE64+の消費電力というか起動時の突入電流、ラズパイの電源では起動しないことがありました
とはいえ、一旦起動してしまえばそこそこパワフルなCPUですからVolumio程度?軽快に動作します
追記:
PINE64+でのI2S関連ポートのメモ
(ラズパイ互換のPi-portではなく、Euler-BUSの方に全てでています
MCLK Eulerー11
BCLK Eulerー13
LRCLK Eulerー12
DOUT Eulerー15
(おまけ SPDIF-OUT Eulerー10
追記2:
Si5351aを繋ぐI2Cはラズパイ同様Pi-BUSの3、5ピンなのですが、KernelからはI2C1(I2C0ではない)として
認識されています(0だと信じてて時間を無駄に💦
| 固定リンク | 0
「趣味」カテゴリの記事
- ラズベリーのパイが無ければ…バナナのパイを食べてみる(2023.01.29)
- ラズベリーのパイが無いのでパインを食してみた(2023.01.28)
- ラズベリーのパイが無ければパインを食べればいいじゃない(2022.12.19)
- Beagle Bone Black(Green)のOSをビルドしてみる(Debian Bullseye)(2022.11.17)
- 現時点でのRaspberry PiのBluetooth Audio状況(2022.10.22)
「オーディオ話」カテゴリの記事
- ラズベリーのパイが無ければ…バナナのパイを食べてみる(2023.01.29)
- ラズベリーのパイが無いのでパインを食してみた(2023.01.28)
- ラズベリーのパイが無ければパインを食べればいいじゃない(2022.12.19)
- Beagle Bone Black(Green)のOSをビルドしてみる(Debian Bullseye)(2022.11.17)
- 現時点でのRaspberry PiのBluetooth Audio状況(2022.10.22)
「電子回路」カテゴリの記事
- ラズベリーのパイが無ければ…バナナのパイを食べてみる(2023.01.29)
- ラズベリーのパイが無いのでパインを食してみた(2023.01.28)
- ラズベリーのパイが無ければパインを食べればいいじゃない(2022.12.19)
- Beagle Bone Black(Green)のOSをビルドしてみる(Debian Bullseye)(2022.11.17)
- 現時点でのRaspberry PiのBluetooth Audio状況(2022.10.22)
コメント