« ラズベリーのパイが無ければパインを食べればいいじゃない | トップページ | ラズベリーのパイが無ければ…バナナのパイを食べてみる »

2023年1月28日 (土)

ラズベリーのパイが無いのでパインを食してみた

前回の投稿ではPINE64+にVolumio3をビルドしてインストールしました

 

あ、書いて無かったのだけど買ったのは

Img_6264

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から行い、再生するアプリからは一切

見えず気にしないで済むように、と

Img_6256

ちょっと前に弄ってたBananaPiM2Zeroと同様(まだ投稿してなかったかな?💦)、先達の開発成果を使わせて頂きました

_tkz_memo

 

まず最初に躓きがちな点を

Volumio3自体はarmv7(32bit)ですが、デバイスドライバなどはarmv8(64bit)と

Img_6260

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つのドライバーを導入する様改変し、再コンパイル、再起動

 

Img_6257

当初構築した元の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だと信じてて時間を無駄に💦

| |

« ラズベリーのパイが無ければパインを食べればいいじゃない | トップページ | ラズベリーのパイが無ければ…バナナのパイを食べてみる »

趣味」カテゴリの記事

オーディオ話」カテゴリの記事

電子回路」カテゴリの記事

コメント

コメントを書く



(ウェブ上には掲載しません)


コメントは記事投稿者が公開するまで表示されません。



« ラズベリーのパイが無ければパインを食べればいいじゃない | トップページ | ラズベリーのパイが無ければ…バナナのパイを食べてみる »