You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于i.MX6的SoM板WM8731配置正确却无法识别,求排查建议

音频芯片WM8731在i.MX6核心板上的复位失败问题排查

设备配置信息

使用搭载WM8731音频芯片的i.MX6核心板(SoM),已完成设备树配置,内容如下:

sound {
    compatible = "fsl,imx-audio-wm8731";
    model = "wm8731-audio";
    cpu-dai = <&sai2>;
    audio-codec = <&codec>;
    audio-routing =
        "Headphone Jack",   "LHPOUT",
        "Headphone Jack",   "RHPOUT",
        "LLINEIN",      "Line Jack",
        "RLINEIN",      "Line Jack";
};

&i2c2 {
    clock_frequency = <100000>;
    pinctrl-names = "default";
    pinctrl-0 = <&pinctrl_i2c2>;
    status = "okay";

    codec: wm8731@1a {
        compatible = "wlf,wm8731"; /* codec audio */
        reg = <0x1a>;
        clocks = <&clks IMX6UL_CLK_SAI2>;
        clock-names = "mclk";
    }; /* fine codec: wm8731@1a */

同时已在menuconfig中启用对应音频模块。

启动错误日志

启动时出现如下错误:

wm8731 1-001a: Failed to issue reset: -5
wm8731 1-001a: ASoC: failed to probe component -5
imx-wm8731 sound: ASoC: failed to instantiate card -5
imx-wm8731 sound: snd_soc_register_card failed (-5)
imx-wm8731: probe of sound failed with error -5

异常现象说明

现有两块同型号SoM板,一块正常工作,另一块出现上述错误。初步怀疑硬件问题,但将故障板换到其他载板上却能正常发声。所有板卡使用相同的U-Boot、SPL、dtb文件及zImage。

排查建议

  • 检查故障板当前搭配的载板I2C2总线信号:用示波器测量SDA、SCL引脚的电平、波形,排查是否存在信号干扰、电平异常(如上拉电阻虚焊、阻值不符),错误码-5为EIO(输入输出错误),大概率是I2C通信交互异常导致。
  • 核对载板I2C2引脚定义:确认故障载板与正常工作载板的I2C2引脚连接是否完全一致,排查是否存在引脚复用冲突(如某引脚同时被用作其他功能,导致I2C信号异常)。
  • 测试载板I2C总线挂载能力:在故障载板的I2C2总线上挂载一个已知正常的I2C设备(如EEPROM),尝试读写操作,判断是载板I2C总线本身问题,还是与WM8731的匹配问题。
  • 检查WM8731的MCLK时钟:用示波器测量故障载板上WM8731的MCLK引脚,确认时钟频率、幅值是否正常输出,WM8731复位依赖正常时钟,时钟异常会导致复位失败。
  • 排查载板电源供电:检查故障载板给WM8731提供的VDD、AVDD等电源引脚电压是否正常,排查电源纹波过大的情况,不稳定的供电会导致芯片无法正常响应复位指令。
  • 调试I2C时钟频率:临时修改设备树中I2C2的clock_frequency值(如从100000降至50000),尝试重新启动,排除I2C速率不匹配的问题。

内容的提问来源于stack exchange,提问作者LittleSaints

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 18:40:13