2397053_ja-JP

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 

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を検証します。

Re: i.MX8M Plus - SPDIF Protocol Implementation Exampleこんにちは @yipingwang

1. 光式TOSLINKモジュールなしでSPDIF TX RXを直接ループバックできますか?
2. 光ケーブルを使って光TOSLINKモジュールをループバックできますか?
3. 光TOSLINKモジュールにはエンドデバイスが必要ですか?
Re: i.MX8M Plus - SPDIF Protocol Implementation Example
  1. 光式TOSLINKなしでS/PDIF TX/RXを直接ループバックできますか?

はい、電気的なS/PDIFループバックのことであればそうです。i.MX8M Plusでは、S/PDIF**レシーバ**にはS/PDIF入力信号をS/PDIF**トランスミッタ**に直接転送するバイパスオプションがあり、リファレンスマニュアルでは経路をSPDIFIN→SPDIFOUT SELECTマルチプロキシ→SPDIFOUTと説明しています。

したがって、プロトコルやソフトウェアの検証には以下を推奨します:

  • ドライバやレジスタの設定でサポートされている場合、内部/バイパスループバックも可能です。
  • または、基板が両方の信号を露出しており、電気レベル/終端が適切であれば、SPDIF_TXからSPDIF_RXへの外部電気ループバックを使用することも可能です。

これを光学的な検証として扱わないでください。i.MX8MPのS/PDIFピンは電気的なものであり、TOSLINKは光学的な物理層のみである。

  1. 光ケーブルを使って光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電気出力、光トランスミッタ、光ケーブル、光レシーバ、レシーバ入力です。

  1. 光TOSLINKモジュールには終端デバイスが必要ですか?

i.MX8MPのRXへのループバックテストには、外部オーディオ機器の必要性は厳密ではありません。「エンドデバイス」は実質的にi.MX8MP S/PDIF受信経路です。

For TX-only validation or to hear オーディオ, yes — you need an S/PDIF sink such as:

  • 光S/PDIF DAC、
  • AVレシーバー、
  • S/PDIFアナライザー、
  • 光入力付きのUSBオーディオインターフェース。

NXPのサポート資料では、S/PDIFはデータストリームであり、シンクがS/PDIFであれば、S/PDIFを受信して音声形式に変換するデバイスが必要です。

推奨される検証手順:

  • まず、i.MX8MPソフトウェアパスを内部バイパスまたは短い電気的ループバックで検証します。
  • 次に、TOSLINK TXモジュール→光ケーブル→TOSLINK RXモジュールを使用して、基板レベルの光経路を検証します。
  • 最後に、実際のS/PDIFシンク/アナライザーとの相互運用性を検証します。
标记 (1)
无评分
版本历史
最后更新:
1 个月之前
更新人: