/ 雑記帳

[ Tags :: S32_LE ]

rpi-dac そういう事なのかぁ Raspberry as generic i2s master at 384kHz

某掲示板で質問したが検索しているうちに答えの記事を見つけて解決出来た?様に思う。
たぶんベテランの方々の間では即知の問題だったのかなぁ...
事の始めは自分は実験用サブシステム

RaspberryPi4(GentooPlayer Diretta Target)
APU2D4(Diretta Host)
KALI Reclocker基板 
やなさん送信基板
DAC AK4493EQ気楽kit製基板

の組み合わせでI2S出力で使用した時に
DSD64までしか再生出来ない事に加えて自動でPCMに変換されて且つDSD64以外のファイルも
24bit/192kHzで出力されます。
残念ながらDAC基板はPCMしか受け付けませんがAK4493EQなら768KHzまではいけるはずです。
どうも出力が192kHzまでに制限されているような感じです。
この現象はgentooplayerで発見したのですが流石にGentooPlayerのカーネルをコンパイルする勇気も技術もありません笑)
GentooPlayer使用時の場合で某掲示板中udosanさんにアドバイスをいただいて
[1] i-sabre-q2m/k2m and i2s general
[31] Generic-1 I2S (hifiberry-dac)
どちらか?試してみてくださいとの事でした。試して見たのですが
どうしても安定した再生が出来ない...
なので自前でイジっている汎用rt-kernelソースを使ってリンク先の内容を実験してみる事にしました。
[root@alarm ~]# uname -a
Linux alarm 5.16.0-rc3-rt7-v8 #4 SMP PREEMPT_RT Sat Apr 2 22:52:37 JST 2022 aarch64 GNU/Linux

参考リンク:Raspberry as generic i2s master at 384kHz

以下は参考リンク先記事概要
2017年11月、Raspberry Linuxカーネルは、i2sバスの384kHzをサポートするように更新されました。
それ以前は、ストックカーネルは192kHzに制限されていましたが、
汎用i2sマスタードライバーrpi-dacはまだです。
i2sバスでは、Piをマスターまたはスレーブとして使用できます。
Piを汎用i2sマスターとして使用する場合は、rpi-dacドライバーを使用できます。
このドライバのみが、pcm1794aコーデックの使用により192kHzに制限されています。
これは一般的なドライバを混乱させる少し混乱しますが、
pcm1794aコーデックを使用します。そのため、pcm1794のサンプルフォーマットとレートにも制限されています。

rpi-dacドライバーを使った場合は...という事らしいです。
最終的にいたずらも含めてこんな感じにしてみました。
お分かりいただけるでしょうか(笑)
思い付きで32bit分も加えたがこの改修は素晴らしいと思う。
RaspberryPi4 + KALI Reclocker基板 + Archlinux の組み合わせで使っている方は
是非とも挑戦して欲しい。購入して良かったと惚れ直すかも知れない。
自分の環境では参考ページにあるパッチは当たりませんでした。
テキストエディターで開いて該当箇所を手修正後にコンパイルを行いました。

sound/soc/codecs/pcm1794a.c b/sound/soc/codecs/pcm1794a.c

static struct snd_soc_dai_driver pcm1794a_dai = {
.name = "pcm1794a-hifi",
.playback = {
.channels_min = 2,
.channels_max = 2,
.rates = SNDRV_PCM_RATE_8000_384000,
.formats = SNDRV_PCM_FMTBIT_S16_LE |
SNDRV_PCM_FMTBIT_S24_LE |
SNDRV_PCM_FMTBIT_S32_LE
},

カーネル再構築インストール後に適応されているか?コマンドで確認...
[root@alarm ~]# alsacap
*** Scanning for playback devices ***
Card 0, ID `sndrpirpidac', name `snd_rpi_rpi_dac'
Device 0, ID `RPi-DAC HiFi pcm1794a-codec-0', name `RPi-DAC HiFi pcm1794a-codec-0', 1 subdevices (1 available)
2 channels, sampling rate 8000..384000 Hz
Sample formats: S16_LE, S24_LE, S32_LE
Subdevice 0, name `subdevice #0'

この状態でmpd.confで32bit再生を指定後再生するとS32_LEが使われている様に表示されますが
真偽の程は??です(笑)

[root@alarm ~]# c00
access: RW_INTERLEAVED
format: S32_LE
subformat: STD
channels: 2
rate: 44100 (44100/1)
period_size: 4410
buffer_size: 22050

— posted by くま at 01:30 pm   commentComment [2] 

中華コピー品 Combo384のFirmwareを書き換えてDSD対応

ebayで購入した中華Combo384コピー品を調べてみると商品説明とは異なり
DSD対応ではありませんでした('~`;)┌
ちょっとムカついて撃沈覚悟で純正のファームウエアツールで書き換えてみました。

参考リンク http://select.marutsu.co.jp/list/detail.php?id=213
マルツの記事を参考にDDCを単体でUSB接続しジャンパをショートさせて現状の書き込み内容を消去
USBに再接続してPCにシリアルデバイス(ポート)として認識されたか?を確認後に
oemtool117.zipのConfigTool.exeを実行
OEMIDとしてcombo384と入力してCPLD_for_1080を選択してFlash CPLDをクリック。
あらら...書き換え途中でエラーが出ます ^^;
      
Invalid or not authorized transaction!
      
本物?の輸入代理店のサイトには
書き換えに失敗したり、間違った設定を行ったりすると使用できなくなります。
使用できなくなったとしても新品との交換は受け付けておりません。取扱いには十分ご注意ください。
との注意書きが...
      
oemtool117ではエラーが出てしまってCombo384が使用不能...
Audioデバイスとして機能しない只のシリアルデバイス表示する物体へ変身(笑)
Google先生頼りにしてますと言うことで(笑)....
ここに
http://forum.vegalab.ru/showthread.php?t=59043&page=19

combo192


とういう情報を発見!!
しかし117ではやはり同じエラーが出て書き換え不可でした。
それで更にGoogle先生で情報を検索すると118なら出来るとの記述を発見!
oem tool118を使って且つOEMIDを「Combo192」で一度書き換えると
次からはoemtool117で「Combo384」で書き換え可能になります。
参考情報 CPLD_for_1080 firmware_1099C(DSD_U32_BE) を書き込み
     ちなみにFirmware 1.099rc1 だとDSD_U32_LEになるらしい。
Linuxでデバイス情報を表示させて見ると...
      
$ lsusb
Bus 002 Device 006: ID 16d0:071a MCS
      
$ aplay -l
**** ハードウェアデバイス PLAYBACK のリスト ****
カード 1: Amanero [Combo384 Amanero], デバイス 0: USB Audio [USB Audio]
サブデバイス: 1/1
サブデバイス #0: subdevice #0
      
$ cat /proc/asound/card1/stream0
Amanero Technologies Combo384 Amanero at usb-0000:00:1d.7-6.4, high speed : USB Audio

Playback:
Status: Stop
Interface 2
Altset 1
Format: S32_LE
Channels: 2
Endpoint: 5 OUT (ASYNC)
Rates: 32000, 44100, 48000, 88200, 96000, 176400, 192000, 352800, 384000, 705600, 768000
Data packet interval: 125 us
---------------------------------------

— posted by at 09:37 am   commentComment [2] 

<< 2022.12 >>
SMTWTFS
    123
45678910
11121314151617
18192021222324
25262728293031
 


















T: Y: ALL: Online:
ThemePanel
Created in 0.0117 sec.