私はsai1 snd-soc-dummy-dai-0を使用するimx-audio-cardを使用しています
I2S経由でiMX8MPモジュールに接続された外部SoCがありますが、公開コーデックがないため、ダミーコーデックを使用しています。
私はそれらをaplay -Lで表示することができます。
hw:CARD=imxaudiocard,DEV=0
imx-audio-card, sai1 snd-soc-dummy-dai-0
Direct hardware device without any conversions
plughw:CARD=imxaudiocard,DEV=0
imx-audio-card, sai1 snd-soc-dummy-dai-0
Hardware device with all software conversions
default:CARD=imxaudiocard
imx-audio-card, sai1 snd-soc-dummy-dai-0
Default Audio Device
sysdefault:CARD=imxaudiocard
imx-audio-card, sai1 snd-soc-dummy-dai-0
Default Audio Device
dmix:CARD=imxaudiocard,DEV=0
imx-audio-card, sai1 snd-soc-dummy-dai-0
Direct sample mixing device私はこれを介してオーディオを再生することができ、それは動作します。
aplay -D default:CARD=imxaudiocard music.wav上記のコードスニペットでも arecord -L を使用した場合も同様です。私は以下を使用して録音することができます:
arecord -D default:CARD=imxaudiocard -r 32000 -c 2 -d 20 -f S24_3LE test.wavただし、test.wavは空白になります。音声を録音できないようです。参考までに、アミキサーコントロールがないので、CAPTUREに設定できないようです。
I2S経由でオーディオを再生できるときに、I2S経由でオーディオを受け入れる方法はありますか?
解決!
開発ボードでは、モジュールはコーデックに物理的に接続されていました。漏れ電圧を止めるためには、ラインを断線する必要がありました。
そのため、デバイスツリーでコーデックを無効にするだけでは不十分で、ハードウェアの作業を行う必要がありました。
@Manuel_Salasさん、そして@jamesboneさん、ありがとうございました - この旅で、他の方法では学べなかった多くのことを間違いなく学びました。改めて感謝します!
ピン36に問題があるかどうか知りたかったので、TXラインとして作成しました。
; /* SODIMM 36 */ また、RXラインの場合と同じように動作します(接続すると下に引っ張られます)
だから、imx8mpモジュールに何か問題があり、余分なモジュールがあるので、モジュールを交換します。同じ問題です。だから。。。
そのため、ピン 36 にハードウェアの問題や破損があるのではないかと考えたため、このラインを使用してピン 220 にある別の RX ラインを使用したいと考えました。
; /* SODIMM 220 */ 突然、オーディオカードが利用できなくなるため、信号を送信/受信して、ハイ/ローにプルダウンするかどうかをテストできません。aplay -L はこれを表示せず、/proc/asound/cards にも表示しません。また、1つのpinctrlを無効にしてみましたが、これはピン220をそのまま使用するためです。
&pinctrl_gpio7{
status = "disabled";
};オシロスコープでテストでき、録音モードのときはクロック信号をテストでき、クロックが設定されていない場合は、デバイスツリーで変更できます。
それがalsaドライバで機能しているpcm_write、Dmesgコマンドを使用してカーネルログを取得できます、私は方法のリンクを共有しましょう
https://www.linuxfoundation.org/blog/blog/classic-sysadmin-viewing-linux-logs-from-the-command-line
ダミーコーデックを使用しているため、問題はMAster/Slaveモードの設定です。
EIO エラーを返すpcm_write、I/O が設定されていないことを意味します。また、マスターモードは中華鍋にすることができますが、スレーブモードはそうではありません。
彼らはあなたのダミーとスレーブモードでビットクロックが生成されているかどうかを確認できますか?カーネルログにメッセージがないか確認します。
使用しているコーデックを教えてください。BSPバージョンも。
コーデックはありません - したがって、ダミーのコーデックです。I2CラインのないI2Sから直接オーディオストリーミングが来ているだけです。
BSP - これを取得する方法がわからない...私はuname -rを実行しましたが、5.15.148-6.8.1 + git.1cbf48124747を取得しました。
可能であれば、デバイスツリーはコーデックに関連しています。
デバイスツリーについては、手元にはありませんが、fsl,imx-audio-cardを使用する新しいノードが作成されます
i.MX と「コーデック」ではない「MAX98357A」のようなデバイスの間に接続がある場合、それらはデジタルアンプであり、最終的には問題が発生することがあります。
デジタルアンプについてのコメントについて、もう少し詳しく教えていただけますか?