2397053_ja-JP

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

2397053_ja-JP

2397053_ja-JP

i.MX8M Plus - SPDIFプロトコル実装例

こんにちは、チームのみなさん。

どなたか、i.MX8M plusでSPDIFプロトコルを実装し検証する方法を教えていただけませんか?

Re: i.MX8M Plus - SPDIF Protocol Implementation Example

最もシンプルな 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対応であることが文書化されています。

推奨されるシンプルなアプローチ:

  • 可能であれば、まず光S/PDIFを使用してください。
    • 最も簡単なハードウェアパス:i.MX8MP SPDIF_OUT →光式TOSLINKトランスミッタ。
    • 受信用:光TOSLINK受信モジュール→ i.MX8MP SPDIF_IN。
    • これにより、同軸75Ωライン駆動、トランス/カップリング、および接地に関する問題を回避できます。
  • i.MX 8M PlusのS/PDIFピンをIOMUX経由で使用する
    • i.MX 8M PlusオーディオサブシステムはSPDIFの入出力を備えています。
    • リファレンスマニュアルには、選択可能なパッドのAUDIOMIX_SPDIF1_OUTとAUDIOMIX_SPDIF1_INのIOMUXオプションが示されています。
    • Linuxでは対応するIOMUX定義にはMX8MP_IOMUXC_SPDIF_TX__AUDIOMIX_SPDIF_OUTとMX8MP_IOMUXC_SPDIF_RX__AUDIOMIX_SPDIF_INが含まれます。
  • 同軸RCAが必要な場合は
    • SoCピンを直接RCAのラインドライバーのように扱わないでください
    • 選択したトランスミッタ/インターフェース回路ごとに適切な75 Ω S/PDIF同軸ケーブル出力ネットワーク/結合を追加してください。
    • 光ファイバー方式は、通常、よりシンプルで安全な最初の実装方法です。
  • 参考資料
    • MCIMX8M-AUD / i.MX オーディオボード:i.MX 8MファミリのS/PDIF I/OおよびRCAおよびTOSLINKに最適なNXPリファレンス。
    • i.MX 8M Plusリファレンスマニュアル:AUDIOMIX_SPDIF1_INおよびAUDIOMIX_SPDIF1_OUT用のpinmux / IOMUXセットアップ。
    • i.MX 8M Plusのデータシート:クロックのハイ/ロータイミングを含む、S/PDIFのタイミングパラメータが記載されています。

最も単純な設計では、AUDIOMIX_SPDIF1_OUT/INを光TOSLINKモジュールにルーティングし、MCIMX8M-AUDをNXPのS/PDIF I/O挙動の基準点として使用します。

Re: i.MX8M Plus - SPDIF Protocol Implementation Exampleこんにちは、Yipingwangさん、

SPDIFを最もシンプルに実装するための参考回路図を教えていただけませんか?
Re: i.MX8M Plus - SPDIF Protocol Implementation Example

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にあります。

  • デバイスツリーの設定i.MX8M Plusでは、xcvrオーディオブロックを使い、サウンドカード/DAIリンクを有効にしてください。代表的な構成例は以下のとおりです。

サウンドトランスフォーマー {

互換 = 「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 が使用されています。

  • ボードのルーティングやジャンパーを確認してくださいNXPオーディオボードを使用する場合、意図するS/PDIFパスの物理ルーティングを設定します。i.MX8M Plusの場合、J1500=1-2は同軸コネクタをi.MX8M Plusにルーティングし、J1500=4-5は光コネクタをi.MX8M Plusにルーティングします。CPLD/HDMIカードを経由してルーティングする場合、J2511=1-3は「i.MX 8M PlusからCPLD、そしてHDMIカードへ」として文書化されています。
  • ALSA / IEC958を正しく使いましょうS/PDIF Txドライバーは32、44.1、48 kHzのサンプリングレートをサポートし、S16_LEおよびS24_LEフォーマットに対応しています。24ビット出力の場合、ファイルは1チャネルフレームあたり32ビットを使用し、有効な24個のLSBのみを使用します。パスが生のPCMではなくIEC958サブフレームを想定する場合は、ユーザー空間でPCMからIEC958への変換を行い、例えばALSA PCMプラグインを使って行います。

検証手順:

aplay -l

arecord -l

これらを使用して、S/PDIF再生/キャプチャカードおよびデバイスIDを特定します。ドキュメントには、S/PDIFデバイスがIMXSPDIF[imx-spdif]のようなALSAカードとして表示され、デバイス0: S/PDIF PCMとして表示されています。

トランザクション検証:

aplay -D hw:, audio48k24S.wav

リファレンス検証方法 は、M-Audio Transit USBサウンドカードとWaveLabを組み合わせた外部の光S/PDIF レシーバ を使用し、ストリームを外部に録音して再生して正確性を確認します。

処方箋の検証:

arecord -D hw:, -c 2 -d 20 -r 48000 -f S24_LE record.wav

レコードに渡されるサンプルレートは、入力される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を検証します。

Tags (1)
No ratings
Version history
Last update:
8 hours ago
Updated by: