こんにちは、チームのみなさん。
どなたか、i.MX8M plusでSPDIFプロトコルを実装し検証する方法を教えていただけませんか?
最もシンプルな i.MX 8M Plus S/PDIF実装については、i.MX Audio Board / MCIMX8M-AUDを最も近いNXPの参照ハードウェアとして使用し、ベース i.MX 8M Plus EVK単独ではありません。オーディオボードは8M Plus i.MX をサポートし、RCAおよびTOSLINKコネクタを備えたS/PDIF I/Oを提供し、最大192 kHzまでのTOSLINK対応であることが文書化されています。
推奨されるシンプルなアプローチ:
最も単純な設計では、AUDIOMIX_SPDIF1_OUT/INを光TOSLINKモジュールにルーティングし、MCIMX8M-AUDをNXPのS/PDIF I/O挙動の基準点として使用します。
i.MX8M Plusで既存のLinux ALSA Audio XCVR / S/PDIFドライバーを使用;通常、S/PDIFプロトコルを最初から実装することはありません。i.MX8M Plus Audio XCVRはeARC、ARC、S/PDIFモードをサポートし、LinuxのS/PDIF対応では、ALSAを通じてTx用の再生デバイスとRx用のキャプチャデバイスを1台公開します。
推奨される実装方法:
カーネルドライバーを有効にしてください有効化:
CONFIG_SND_IMX_SPDIF
メニューパス:
コピー
デバイスドライバー
-> サウンドカードサポート
-> 高度なLinuxサウンドアーキテクチャ
-SoCオーディオサポート> ALSA
- フリースケール i.MX CPU向けの> SoC オーディオ
- > S/PDIF対応 i.MX ボード向けのSoCオーディオサポート
ドキュメント化されたDTバインディングは、ドキュメント/devicetree/bindings/sound/fsl spdif.txtおよびドキュメント/devicetree/bindings/sound/imx-audio-spdfif.txtにあります。
サウンドトランスフォーマー {
互換 = 「FSL,IMX-オーディオカード」;
model = "imx-audio-xcvr";
pri-dai-link {
リンク名 = "XCVR PCM";
CPU {
sound-dai = <&xcvr>;
};
};
};
&xcvr {
#sound-dai-cells = <0>;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_xcvr>;
ステータス = "正常";
};
Tx ピンの多重化については、文書化された例の 1 つで MX8MP_IOMUXC_SPDIF_TX__AUDIOMIX_SPDIF1_OUT が使用されています。
検証手順:
aplay -l
arecord -l
これらを使用して、S/PDIF再生/キャプチャカードおよびデバイスIDを特定します。ドキュメントには、S/PDIFデバイスがIMXSPDIF[imx-spdif]のようなALSAカードとして表示され、デバイス0: S/PDIF PCMとして表示されています。
トランザクション検証:
aplay -D hw:
リファレンス検証方法 は、M-Audio Transit USBサウンドカードとWaveLabを組み合わせた外部の光S/PDIF レシーバ を使用し、ストリームを外部に録音して再生して正確性を確認します。
処方箋の検証:
arecord -D hw:
レコードに渡されるサンプルレートは、入力されるS/PDIFストリームのサンプルレートと一致している必要があります。Rxの場合、アプリケーションフローはS/PDIF Rx PCMデバイスを開き、内部DPLLが入力ビットストリームにロックされるのを待ち、入力サンプリングレートを取得し、チャネル/フォーマット/レートパラメータを設定し、準備してキャプチャをトリガーすることです。
プロトコルレベルのチェックには、以下を使用してください。
iecset -c
iecsetはIEC958ステータスビットの設定またはダンプに記載された標準ユーティリティであり、ドライバはALSA制御インターフェースを通じてチャネル状態処理も公開します。
i.MX8M Plus EVKスタイルの検証については、NXPはimxaudioxcvrカードを用いたループバックスタイルのLinuxテストも記録しており、例えばimxaudioxcvrからの録音とwm8960audioへの再生などがあります。
arecord -Dsysdefault:CARD=imxaudioxcvr -c2 -r48000 -fS32_LE -twav | \
aplay -Dsysdefault:CARD=wm8960audio
簡単に言うと、i.MX S/PDIF / XCVR ALSAドライバーを有効にし、xcvrデバイスツリーとボードルーティングを設定し、aplay 、arecord、iecset 、および外部の光/同軸S/PDIFソースまたはシンクでTx/Rxを検証します。
はい、電気的なS/PDIFループバックのことであればそうです。i.MX8M Plusでは、S/PDIF**レシーバ**にはS/PDIF入力信号をS/PDIF**トランスミッタ**に直接転送するバイパスオプションがあり、リファレンスマニュアルでは経路をSPDIFIN→SPDIFOUT SELECTマルチプロキシ→SPDIFOUTと説明しています。
したがって、プロトコルやソフトウェアの検証には以下を推奨します:
これを光学的な検証として扱わないでください。i.MX8MPのS/PDIFピンは電気的なものであり、TOSLINKは光学的な物理層のみである。
はい。使用方法:
i.MX8MP SPDIF_TXピン → 光TOSLINK TXモジュール → 光ケーブル → 光TOSLINK RXモジュール → i.MX8MP SPDIF_RXピン
NXPオーディオボードの資料は、同軸通信用のRCAコネクタと光通信用のTOSLINKコネクタを用いたS/PDIF I/Oを説明しています。別のNXPボードの例では、S/PDIF用に使われる光受信モジュールと光送信モジュールが別々に存在しています。受信モジュールとGP1F32T送信モジュールGP1F32R。
これにより、直接的な電気的ループバックよりも実際の物理経路の信頼性が高いことになります:TX電気出力、光トランスミッタ、光ケーブル、光レシーバ、レシーバ入力です。
i.MX8MPのRXへのループバックテストには、外部オーディオ機器の必要性は厳密ではありません。「エンドデバイス」は実質的にi.MX8MP S/PDIF受信経路です。
For TX-only validation or to hear オーディオ, yes — you need an S/PDIF sink such as:
NXPのサポート資料では、S/PDIFはデータストリームであり、シンクがS/PDIFであれば、S/PDIFを受信して音声形式に変換するデバイスが必要です。
推奨される検証手順: