2397053_zh-CN

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

2397053_zh-CN

2397053_zh-CN

i.MX8M Plus - Sony Philips数字接口格式(SPDIF) 协议实现示例

大家好,

请问有人能指导一下如何在 i.MX8M plus 中实现和验证 Sony Philips数字接口格式(SPDIF) 协议吗?

Re: i.MX8M Plus - SPDIF Protocol Implementation Example

对于最简单的 i.MX 8M Plus S/PDIF 实现,请使用 i.MX 音频板 / MCIMX8M-AUD 作为最接近的 NXP 参考硬件,而不是仅使用基本的 i.MX 8M Plus EVK。音频板的文档显示其支持 i.MX 8M Plus,并提供带有 RCA 和 TOSLINK 连接器的 S/PDIF I/O,TOSLINK 支持高达 192 kHz。

推荐的简易方法:

  • 如果可以,请优先使用光纤 S/PDIF 接口。
    • 最简单的硬件路径:i.MX8MP SPDIF_OUT → 光纤 TOSLINK 发射器模块。
    • 接收:光纤 TOSLINK 接收器模块 → i.MX8MP SPDIF_IN。
    • 这样就避免了同轴 75 Ω 线路驱动、变压器/耦合和接地问题。
  • 通过 IOMUX 使用 i.MX 8M Plus 的 S/PDIF 引脚
    • i.MX 8M Plus 音频子系统包括Sony Philips数字接口格式(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 音频板:NXP 为 i.MX 8M 系列提供 S/PDIF I/O 的最佳参考级产品,带有 RCA 和 TOSLINK 接口。
    • 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王一平您好,

请问能否提供一些参考电路图,以便我以最简单的方式实现Sony Philips数字接口格式 (SPDIF) 功能?
Re: i.MX8M Plus - SPDIF Protocol Implementation Example

在 i.MX8M Plus 上使用现有的 Linux ALSA Audio XCVR / S/PDIF 驱动程序;通常情况下,您不会从头开始实现 S/PDIF 协议。i.MX8M Plus 音频 XCVR 支持 eARC、ARC 和 S/PDIF 模式,Linux S/PDIF 支持通过 ALSA 公开一个用于 Tx 的播放设备和一个用于 Rx 的捕获设备。

建议的实施路径:

启用内核驱动程序

配置_SND_IMX_SPDIF

菜单路径:

复制

设备驱动程序

-> 声卡支持

-> 高级 Linux 音频架构

-> ALSA 用于 SoC 音频支持

-> 适用于飞思卡尔 i.MX CPU 的 SoC 音频

          -> 为带有 S/PDIF 的 i.MX 板提供 SoC 音频支持。

记录的 DT 绑定位于 Documentation/devicetree/bindings/sound/fsl,Sony Philips数字接口格式(SPDIF).txt 和 Documentation/devicetree/bindings/sound/imx-audio-Sony Philips数字接口格式(SPDIF)if.txt 下。

  • 配置 i.MX8M Plus 的设备树,使用 xcvr 音频模块并启用声卡/DAI 链路。典型的配置如下:

sound-xcvr {

兼容 = "fsl,imx-audio-card";

型号 = "imx-audio-xcvr";

pri-dai-link {

链接名称 = "XCVR PCM";

中央处理器 {

sound-dai = <&xcvr>;

        };

};

};

&xcvr {

#sound-dai-cells = <0>;

pinctrl-names = "default";

pinctrl-0 = <&pinctrl_xcvr>;

状态 = "正常";

};

对于 Tx 引脚复用,一个有记录的示例使用 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 发送驱动程序支持 32、44.1 和 48 kHz 采样率,以及 S16_LE 和 S24_LE 格式;对于 24 位输出,文件必须使用每通道帧 32 位,并且只有 24 个最低有效位有效。如果路径需要的是 IEC958 子帧而不是原始 PCM,则在用户空间中进行 PCM 到 IEC958 的转换,例如使用 ALSA PCM 插件。

验证步骤:

aplay -l

记录 -l

使用这些信息来识别 S/PDIF 播放/采集卡和设备 ID。文档显示 S/PDIF 设备显示为 ALSA 卡,例如 imxspdif [imx-spdif],设备 0:S/PDIF PCM。

交易验证:

aplay -D hw:, audio48k24S.wav

参考验证方法使用外部光纤 S/PDIF 接收器,例如带有 WaveLab 的 M-Audio Transit USB 声卡,然后外部录制音频流并回放以检查正确性。

处方验证:

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

传递给 arecord 的采样率必须与输入的 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:
Wednesday
Updated by: