This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] TLV320AIC3111:对于器件树 AM62 (SK AM62)、TLV320AIC3111的编解码器输入和输出应该是什么

Guru**** 1740850 points
Other Parts Discussed in Thread: TLV320AIC3106, SK-AM62, TLV320AIC3111, AM625, PCMD3140, TLV320AIC3262
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1215618/tlv320aic3111-what-should-be-codec-input-and-outputs-for-tlv320aic3111-for-device-tree-am62-sk-am62

器件型号:LINUXSDK-OMAPL138
主题中讨论的其他器件:SK-AM62TLV320AIC3111、TLV320AIC3106 AM625PCMD3140、TLV320AIC3262

大家好、我已经修改了 SK-AM62评估板并连接到 TLV320AIC3111EVM 板、以在 Linux 上测试功能。

我已安装默认 SDK (08.06.00.42)并刷写了 Linux 内核、并且能够测试 SK-AM62上的默认音频编解码器是否正常工作、现在已经开始修改器件树以支持 TLV320AIC3111。

您能否告诉我、TLV320AIC3111的编解码器输入和输出应该是什么?  

simple-audi-卡、小工具  

和  

简单的声卡路由   

谢谢  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    出现以下错误:

    root@am62xx-evm:~# dmesg | grep -i tlv
    [ 5.661581] tlv320aic31xx-codec 1-001b:aic31xx_set_dai_SYSCLK:不支持的频率12288000
    [ 5.718398] tlv320aic31xx-codec 1-001b:aSOC:tlv320aic31xx-hifi 上的 SND_SoC_DAI_SET_SYSCLK 出错:-22.
    [ 5.728501] tlv320aic31xx-codec 1-001b:simple-card:SET_SYSCLK 错误
    [ 5.735314] Davinci-McASP.0-tlv320aic31xx-hifi:ASOC:davinci-McASP.0-tlv320aic31xx-hifi 上的 snd_soc_link_init 出错:-22.
    root@am62xx-evm:~#

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    器件树:

    tlv320_MCLK:CLK-0{
    #clock-cells =<0>;
    兼容="固定时钟";
    时钟频率=<12288000>;
    };

    codec_audio:音频{
    兼容="简单音频卡";
    simple-audio-card、name ="AM62x-SKEVM";
    simple-audio-card、widget =
    "耳机插孔"、"耳机插孔"、
    "线路"、"线路输入"、
    "麦克风"、"麦克风插孔"、
    "扬声器"、"扬声器";
    简单音频卡、路由=
    "耳机插孔"、"HPLOUT"、
    "耳机插孔"、"HPROUT"、
    "LINE1L"、"线路输入"、
    "LINE1R"、"线路输入"、
    "MIC3R"、"Microphone Jack"、
    "麦克风插孔"、"麦克风偏置"、
    "扬声器"、"SPL"、
    "扬声器"、"SPR";
    simple-audio-card、format ="DSP_B";
    simple-audio-card、bitclock-master =<&sound_master>;
    simple-audio-card、frame-master =<&sound_master>;
    简单音频卡、位时钟反转;

    简单音频卡、CPU{
    sound-Dai =<&MCASP1>;
    };

    sound_master:simple-audio 卡、codec{
    Sound-Dai =<&TLV320AIC3111>;
    Clocks =<&tlv320_MCLK>;
    };
    };

    tlv320aic3106:音频编解码器@1b {
    #sound-Da-cells =<0>;
    兼容="ti, tlv320aic3106";
    寄存器=<0x1b>;
    ai3x-micbis-vg =<1>;/* 2.0V */
    状态="可以";

    /*稳压器*/
    AVDD-SUPPLY =<&VCC_3V3_sys>;
    IOVDD-SUPPLY =<&VCC_3V3_sys>
    DRVDD-SUPPLY =<&VCC_3V3_sys>
    DVDD-SUPPLY =<&VCC_1v8>;
    };

    TLV320AIC3111:音频编解码器@1b{
    #sound-Da-cells =<0>;
    兼容="ti、TLV320AIC3111";
    寄存器=<0x1b>;
    ai3x-micbis-vg =<1>;/* 2.0V */
    状态="可以";

    /*稳压器*/
    AVDD-SUPPLY =<&VCC_3V3_sys>;
    IOVDD-SUPPLY =<&VCC_3V3_sys>
    DVDD-SUPPLY =<&VCC_1v8>;
    HPVDD-SUPPLY =<&VCC_3V3_sys>;
    SPLVDD-SUPPLY =<&VCC_3V3_sys>;
    SPRVDD 电源=<& VCC_3V3_sys>;
    };

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    嗨、大家好

    我想向您确认、您的项目计划是将一个简单的音频卡连接两个不同的编解码器、对吗?

    这两个编解码器是否连接在 i2c 上?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    我们移除了所有的0欧姆电阻器(与音频编解码器相关)、并将新的编解码器 TLV320AIC3111连接到 AM625处理器。  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    音频编解码器 TLV320AIC3111能否同时支持 TLV320AIC3x 和 TLV320AIC31xx 驱动程序?

    我在 menuconfig 中看到这两个选项。  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    下面是有关如何将两个音频设备注册到简单音频卡的示例。 希望这可以很好地帮助您。

    i2c0{
    tda19988: tda19988@70 {
    兼容="NXP、tda998x";
    寄存器=<0x70>;
    nXP、calib-gpio =<&gpio1 25 0>;
    中断扩展=<&GPIO1 25 IRQ_TYPE_LEVEL_LOW >;

    pinctrl-names ="默认值"、"关闭";
    pinctrl-0 =<&NXP_hdmi_bonelt_pins>;
    pinctrl-1 =<&NXP_HDMI_bonelt_off_pins>;

    /*将24位 BGR 转换为 RGB、例如红色和蓝色交叉线*/
    /* video-ports =<0x234501>;*/

    #sound-Da-cells =<0>;
    音频端口=< TDA998x_I2S 0x03>;

    端口{
    端口@0{
    HDMI_0:端点@0{
    远程端点=<&LCDC_0>;
    };
    };
    };
    };
    };

    i2c2{
    #address-sells=<1>;
    #size-cells=<0>;
    pcmdevice:pcmdevice@48 {
    兼容="ti, pcmd3140";
    #sound-Da-cells =<0>;
    寄存器=<0x48>;
    };
    };

    声音{
    兼容="简单音频卡";
    simple-audio-card、name ="TI BeagleBone Black";
    simple-audio-card、da-link@0 {
    格式="I2S";
    bitclock-master =<&dailink0_master>;
    FRAME-MASTER =<&dailink0_MASTER>;

    dailink0_master:CPU {
    sound-DAI =<&McASP0>;
    时钟=<&clk_McASP0>;
    };

    编解码器{
    sound-Dai =<&tda19988>;
    };
    };
    simple-audio-card、da-link@1 {
    格式="I2S";
    bitclock-master =<&sound0_1_master>;
    FRAME-MASTER =<&sound0_1_MASTER>;

    sound0_1_MASTER:CPU{
    sound-DAI =<&McASP0>;
    时钟=<&clk_McASP0>;
    };

    编解码器{
    sound-dai =<&pcmdevice>;
    };
    };
    };

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我已经断开了板载音频编解码器(TLV320AIC3106)、现在我已经通过 I2C 总线将 TLV320AIC3111 EVM 连接到该接口。 但是,当重建内核并搜索声卡时,显示没有找到。  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我已将音频编解码器的 I2C 地址更改为0x18以与 AIC3111而不是 AIC3106通信、但仍然无法通信  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    请将您的 DTS 文件发布。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    e2e.ti.com/.../k3_2D00_am62x_2D00_sk_2D00_common.dtsi.txt

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您是否可以在编解码器驱动程序的探测函数中添加一些日志? 并检查是否调用了探针?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    当然现在试试。 但设备树设置是否正确?  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    注:在我上传的设备树文件上面没有更多的警告/错误 ,但我没有更改时钟.

    (过去有这些错误,但没有更多,不知道为什么?)

    root@am62xx-evm:~# dmesg | grep -i tlv
    [ 5.661581] tlv320aic31xx-codec 1-001b:aic31xx_set_dai_SYSCLK:不支持的频率12288000
    [ 5.718398] tlv320aic31xx-codec 1-001b:aSOC:tlv320aic31xx-hifi 上的 SND_SoC_DAI_SET_SYSCLK 出错:-22.
    [ 5.728501] tlv320aic31xx-codec 1-001b:simple-card:SET_SYSCLK 错误
    [ 5.735314] Davinci-McASP.0-tlv320aic31xx-hifi:ASOC:davinci-McASP.0-tlv320aic31xx-hifi 上的 snd_soc_link_init 出错:-22.
    root@am62xx-evm:~#

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我可以对编解码器驱动程序中的日志使用 DEV_dbg 或 DEV_WARN 消息吗?  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    看起来、如果我构建的 SDK 内核没有进行任何更改、默认情况下找不到声卡、那么与为了使 AIC3111编解码器正常工作所做的修改相比、这会告诉我存在其他问题。  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    当我使用 balenaEtcher 从 SDK 下载路径刷写"tisdk-default-image-am62xx-evm.wic.xz"预编译镜像时、在修改后的两个使用 TLV320AIC3111而不是板载 TLV320AIC3106时、我至少可以看到声卡、但会出现以下错误、 在编解码器的从器件地址不同的情况下是预期值。  

    root@am62xx-evm:~# dmesg | grep -i tlv
    root@am62xx-evm:~# aplay /usr/share/sounds/alsa/Front_Center.wav
    播放波浪"/usr/share/sounds/alsa/Front_Center.wav :[ 70.123960] tlv320ai
    C3x-CODEC 1-001b:无法同步寄存器0x7-0x9。 -121.
    有符号16位小端字节序、速率48000Hz、单声道
    [ 70.134634] tlv320aic3x-codec 1-001b:ASOC:SoC_Component_WRITE_NO_L 出错
    锁定在 tlv320aic3x-codec.1-001b:-121.
    [ 70.149176] tlv320aic3x-codec 1-001b:ASOC:SoC_Component_WRITE_NO_L 出错
    锁定在 tlv320aic3x-codec.1-001b:-121.
    [ 70.209802] tlv320aic3x-codec 1-001b:ASOC:snd_soc_component_update 错误
    tlv320aic3x-codec.1-001b:-121.
    [ 70.220525] tlv320aic3x-codec 1-001b:ASOC:SND_SoC_COMPUTER_UPDATE 处出错
    tlv320aic3x-codec.1-001b:-121.
    [ 70.231207] tlv320aic3x-codec 1-001b:ASOC:SND_SoC_COMPONENT_UPDATE 处出错
    tlv320aic3x-codec.1-001b:-121.
    [ 70.241867] tlv320aic3x-codec 1-001b:ASOC:SND_SoC_COMPONENT_UPDATE 处出错
    tlv320aic3x-codec.1-001b:-121.
    [ 70.252545] tlv320aic3x-codec 1-001b:ASOC:SND_SoC_COMPONENT_UPDATE 处出错
    tlv320aic3x-codec.1-001b:-121.
    [ 70.263192] tlv320aic3x-codec 1-001b:ASOC:SND_SoC_COMPONENT_UPDATE 处出错
    tlv320aic3x-codec.1-001b:-121.
    [ 70.273857] tlv320aic3x-codec 1-001b:ASOC:SND_SoC_COMPUTER_UPDATE 处出错
    tlv320aic3x-codec.1-001b:-121.
    [ 70.284510] tlv320aic3x-codec 1-001b:ASOC:SND_SoC_COMPONENT_UPDATE 处出错
    tlv320aic3x-codec.1-001b:-121.
    [ 70.295181] tlv320aic3x-codec 1-001b:ASOC:SND_SoC_COMPUTER_UPDATE 处出错
    tlv320aic3x-codec.1-001b:-121.
    [ 70.305914] tlv320aic3x-codec 1-001b:ASOC:SoC_Component_WRITE_NO_L 出错
    锁定在 tlv320aic3x-codec.1-001b:-121.
    [ 70.316409] tlv320aic3x-codec 1-001b:ASOC:SoC_Component_WRITE_NO_L 出错
    锁定在 tlv320aic3x-codec.1-001b:-121.




  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    使用"i2cdetect"来检查连接是否正常。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    是、

    root@am62xx-evm:~ i2cdetect -l
    I2C-1 i2c OMAP I2C 适配器 I2C 适配器
    I2C-2 i2c i2c-1多路复用(chan_id 0) I2C 适配器
    I2C-0 i2c OMAP I2C 适配器 I2C 适配器
    root@am62xx-evm:~ i2cdetect -r 1.
    警告! 此程序会使您的 I2C 总线产生混乱、导致数据丢失甚至更糟糕!
    我将使用接收字节命令来探测文件/dev/i2c-1。
    我将探测地址范围0x03-0x77。
    是否继续? [y/n] y (是/否)
    0 1 2 3 4 5 6 7 8 9 A、c、d、f
    00:------- ------- ----
    10:------- ----18----UUU------
    20:--- UUU------ ------- ----
    30:------- ------- 乌伊乌伊乌伊乌伊乌伊乌伊乌伊乌伊乌伊乌伊乌伊乌伊
    40: 4041 ---- 45-- 4748 49 ---- 4c 4d ----
    50: 50 ------- ------- -------
    60:---62---------------- ------- ----
    70:------- ----
    root@am62xx-evm:~#

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您能提供以下信息吗

    您将哪个 i2c 地址用于编解码器?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    对于音频编解码器 TLV320AIC3111、为0x18、但 SK AM62评估附带 TLV320AIC3106、且 I2C 地址为0x1B

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    它们是否已连接到同一条 i2c 总线?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我已从 I2C 总线和 AM625 SoC 断开 AIC3106、因此我们无法在 i2cdetect 上看到0x1B

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    两个驱动器都位于系统上。 (SDK 默认设置下、这是 menuconfig 的一部分)

    root@am62xx-evm:~#
    root@am62xx-evm:~#
    root@am62xx-evm:~# find /lib/modules` uname -r`| grep tlv
    /lib/modules/5.10.168-g2c23e6c538/kernel/sound/soc/codecs/snd-soc-tlv320aic31xx.
    韩语
    /lib/modules/5.10.168-g2c23e6c538/kernel/sound/soc/codecs/snd-soc-tlv320aic3x.ko
    root@am62xx-evm:~#

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    这很重要吗? 两者具有不同的 i2c 从器件地址?  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    I2C 必须不同。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    与中一样、不能连接到同一 I2C 总线? 两个编解码器具有不同的从器件地址。  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我的意思是在同一条 i2c 总线上 i2c 地址必须不同。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    是这样的。 当 SYSCLK 为12.288MHz 时、Aic3111是否可以工作、但在器件树中它被设置为12MHz?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    是否要将 aic3111设置为主器件?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    是的、 与 SK AM62的设置相同、只需将音频编解码器更改为 AIC3111、而不是 AIC3106

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    以下是设置为主器件的示例

    Sound0:sound0{
            兼容="简单音频卡";
            simple-audi-Card, name ="tlv320aic3262-hif";
            simple-audio 卡、格式="I2S";
            simple-audio-card、bitclock-master =<&sound_master>;
            simple-audio-card、frame-master =<&sound_master>;
            简单音频卡、CPU{
                sound-Dai =<&i2s0>;
                //dia-tdm-slot-num =<2>;
            };
            sound_master:simple-audio 卡、codec{
                sound-dai =<&tlv320aic3262>;
                系统时钟频率=<12288000>
            };
        };
    i2c1{
        状态="可以";
        tlv320aic3262:编解码器@18 {
            兼容="ti、aic3262";
            寄存器=<0x18>;
            #sound-Da-cells=<0>;
            状态="可以";
        };
    };
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、盛浩、感谢您的示例。

    附件是我的设备树文件和错误消息:

    e2e.ti.com/.../7462.k3_2D00_am62x_2D00_sk_2D00_common.dtsi.txt

    在 dmesg 中注意到以下几点:

    [4.49368] ASOC-simple-card sound: ASOC:找不到 HPLOUT 的源控件
    [4.523788] ASOC-SIMPLE-CARD SOUND:ASOC:无法添加路由 HPLOUT -> Direct ->耳机插孔
    [4.548645] ASOC-simple-card sound: ASOC:没有找到 HPROUT 的源控件
    [4.557098] ASOC-SIMPLE-CARD SOUND:ASOC:无法添加路由 HPROUT -> Direct ->耳机插孔
    [4.567206] ASOC-simple-card sound: ASOC:没有找到 LINE1L 的接收器小部件
    [4.575326] ASOC-simple-card sound: ASOC:未能在-> Direct -> LINE1L 中添加路由线路
    [4.589818] ASOC-simple-card sound: ASOC :没有找到用于 LINE1R 的接收器部件
    [4.599675] ASOC-simple-card sound: ASOC: Failed to add route Line in -> Direct -> LINE1R
    [4.615664] ASOC-simple-card sound: ASOC:没有找到用于 MIC3R 的接收器部件
    [4.623838] ASOC-simple-card sound: ASOC:Failed to add route Microphone Jack -> Direct -> MIC3R
    [4.665028] ASOC-simple-card sound: ASOC: No source widget for Mic Bia.
    [4.672455] ASOC-SIMPLE-CARD SOUND:ASOC:无法添加路由麦克风偏置->直接->麦克风插孔

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我遵循了 AM43x 的器件树、并按如下方式更改了 AM62x:

    TLV320AIC3111:音频编解码器@18{
    #sound-Da-cells =<0>;
    兼容="ti、TLV320AIC3111";
    寄存器=<0x18>;
    ai3x-micbis-vg =<1>;/* 2.0V */
    状态="可以";

    /*稳压器*/
    AVDD-SUPPLY =<&VCC_3V3_sys>;
    IOVDD-SUPPLY =<&VCC_3V3_sys>
    DVDD-SUPPLY =<&VCC_1v8>;
    HPVDD-SUPPLY =<&VCC_3V3_sys>;
    SPLVDD-SUPPLY =<&VCC_5v0>;
    SPRVDD 电源=<& VCC_5v0>;
    };

    codec_audio:音频{
    兼容="简单音频卡";
    simple-audio-card、name ="AM62x-SKEVM";
    simple-audio-card、widget =
    "耳机插孔"、"耳机插孔"、
    "麦克风"、"麦克风插孔"、
    "扬声器"、"扬声器";
    简单音频卡、路由=
    "MIC1LP"、"Microphone Jack"、
    "MIC1RP"、"Microphone Jack"、
    "MIC1LP"、"MICBIAS"、
    "MIC1RP"、"MICBIAS"、
    "耳机插孔"、"HPL"、
    "耳机插孔"、"HPR"、
    "扬声器"、"SPL"、
    "扬声器"、"SPR";
    simple-audio-card、format ="DSP_B";
    simple-audio-card、bitclock-master =<&sound_master>;
    simple-audio-card、frame-master =<&sound_master>;
    简单音频卡、位时钟反转;

    简单音频卡、CPU{
    sound-Dai =<&MCASP1>;
    系统时钟频率=<12000000>
    };

    sound_master:simple-audio 卡、codec{
    Sound-Dai =<&TLV320AIC3111>;
    Clocks =<&tlv320_MCLK>;
    };
    };

    现在我可以检测声卡了!

    卡0:AM62xSKEVM [AM62x-SKEVM]、器件0:Davinci-McASP.0-tlv320aic31xx-hifi t.
    lv320aic31xx-hif-0 [Davinci-McASP.0-tlv320aic31xx-hifi tlv320aic31xx-hif-0]
    子器件:1/1
    子设备#0:子设备#0

    但播放音频时出现新错误:

    root@am62xx-evm:~# aplay /usr/share/sounds/alsa/Front_Center.wav
    玩 wave '/usr/share/sounds/alsa/Front_Center.wav :签名16 bit Little en
    DIAN、速率48000Hz、单声道
    [ 369.628392] ti-udma 485c0100.dma-控制器:chan1中断超时!
    root@am62xx-evm:~#

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    root@am62xx-evm:~# dmesg | grep -i udma
    [1.023647] ti-udma 485c0100.dma-控制器:响铃次数:82
    [ 1.031670] ti-udma 485c0100.dma-控制器:通道:48 (bchan:18、tchan:
    12,rchan:18)
    [ 1.042692] ti-udma 485c0000.dma-控制器:响铃次数:150
    [ 1.052561] ti-udma 485c0000.dma-控制器:通道:35 (tchan:20、rchan:
    15)

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    请准备一个立体声48kHz wav 文件。 在播放期间、是否有来自编解码器的日志?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    唯一的问题是这个超时。  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我希望当我播放 alsa 示例声音时、它会以立体声的形式播放。 你能告诉我怎么做?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    每次我尝试播放任何声音,我得到以下:[ 300.634193] ti-udma 485c0100.dma-控制器: chan1拆卸超时!
    [ 316.058010] ti-udma 485c0100.dma-控制器:chan1中断超时!
    [ 832.726960] ti-udma 485c0100.dma-控制器:chan1中断超时!
    [ 8152.260812] ti-udma 485c0100.dma-控制器:chan1中断超时!
    [ 8226.116222] ti-udma 485c0100.dma-控制器:chan1拆卸超时!

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    已尝试使用立体声、但仍然出现相同错误。

    root@am62xx-evm:~#
    root@am62xx-evm:~# aplay tone-stereo.wav
    播放 wave"tone-simulare.wav":带符号16位小端字节序,速率48000Hz,Ste.
    可寻址
    [ 9107.037114] ti-udma 485c0100.dma-控制器:chan1中断超时!
    root@am62xx-evm:~#

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    ALSA 包含 后处理功能、您也可以利用它。

    请按如下所示样片

    Linux - ALSA 重新采样- Unix 和 Linux Stack Exchange

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    3111是处于主模式还是从模式?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    它处于主模式。  

    我可以探测信号、可以看到编解码器的 BCLK、WCLK 和 SDIN 都在工作、但不确定编解码器中的 DOUT。  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    请确认 bck 和 wclk 是否由 aic311生成

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    是的、BCLK 和 wclk 由编解码器生成。 当我从 SoC 播放任何声音时、我看到通过 I2S 接口进行的传输、编解码器的 DIN 正在更改、但编解码器中的 dout 始终为"Z"。

    谢谢  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您是否认为、超时错误是由于编解码器没有向 SoC 返回数据造成的?  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    是否有更新?  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我想知道 DOUT 是否是数字信号?

    其中的日志"dma-controller: chan1 teardown timeout!" 从? 哪个文件?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    是的、是的。  

    这是来自编解码器的数字数据输出信号。 它连接到 SoC、硬件团队对此有什么帮助吗?  

    日志来自 dmesg。  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    好的、我转移给硬件、在转移之前、请提供寄存器转储。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    谢谢升豪。  

    您认为与驱动器有什么关系吗?  

    我们是否可以执行一些测试来产生蜂鸣声或杂声来测试驱动程序是否设置正确?

    root@am62xx-evm:~# i2cdump -y -f 1 0x18
    未指定大小(使用字节数据访问)
    0 1 2 3 4 5 6 7 8 9 a b c d e f 0123456789abcdef
    00:01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00?..........
    10:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 14 .......... ?
    20: 06 3E 00 7f 7f 7f 02 02 00 00 20 86 00 80?>??????? .. ???
    30:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    40:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    50:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    60:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    70:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    80:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    90:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    A0:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    B0:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    C0:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    D0:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    E0:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    F0:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    root@am62xx-evm:~# aplay -l
    ****播放硬件设备列表****
    卡0:AM62xSKEVM [AM62x-SKEVM]、器件0:Davinci-McASP.0-tlv320aic31xx-hifi t.
    lv320aic31xx-hif-0 [Davinci-McASP.0-tlv320aic31xx-hifi tlv320aic31xx-hif-0]
    子器件:1/1
    子设备#0:子设备#0
    root@am62xx-evm:~#