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.

[参考译文] Linux/TLV320AIC3101:具有音频编解码器的 McASP TLV320AIC3101无法使用基于 AM437x 的自定义板播放 wav 文件、但出现错误"aplay:PCM_WRITE:2011:写入错误:输入/输出错误"

Guru**** 2587365 points
Other Parts Discussed in Thread: TLV320AIC3101

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/592340/linux-tlv320aic3101-mcasp-with-audio-codec-tlv320aic3101-fails-to-play-wav-file-with-am437x-based-custom-board-with-error-aplay-pcm_write-2011-write-error-input-output-error

器件型号:TLV320AIC3101
主题中讨论的其他器件: TPS63031

工具/软件:Linux

您好!

我们有基于 AM437x 的定制板、我们使用音频编解码器 tlv320aic3101通过 i2c1与 McASP0搭配使用。 我们无法播放 wav 文件并收到错误"aplay:PCM_write:2011:write error:input/output error"。

1)声音节点 2) i2c1节点 3) McASP0节点的 DTS 配置 如下:

声音0:声音@0
               兼容="简单音频卡";
               simple-audio-card、name ="AM437x-GP-EVM";
               simple-audio-card、小工具=
                       "耳机"、"耳机插孔"、
                       "线路"、"线路输入";
               简单音频卡,路由=
                       "耳机插孔"、      "HPL"、
                       "耳机插孔"、      "HPR"、
                       "LINE1L"、              "线路输入"、
                       "LINE1R"、              "线路输入";
               simple-audio-card、format ="DSP_b";
               simple-audio-card、bitclock-master =<&sound0_master>;
               simple-audio-card、frame-master =<&sound0_master>;
               简单音频卡、位时钟反转;

               简单音频卡、CPU{
                       Sound-Dai =<&McASP0>;
                       系统时钟频率=<24000000>;
               };

               sound0_master:simple-audio-card、codec{
                       sound-dai =<&tlv320aic3101>;
                       系统时钟频率=<24000000>;
               };
       };


       audio_mstrclk:MCLK_osc{
               兼容="固定时钟";
               #clock-cells =<0>;
               时钟频率=<24000000>;
       };


i2c1{(&I)
       状态="正常";
       pinctrl-names ="default"、"sleep";
       pinctrl-0 =<&i2c1_PINS_DEFAULT>;
       pinctrl-1 =<&i2c1_PINS_SLEEP>;
       时钟频率=<100000 >;

    /* I2C1上的音频编解码器*/
   tlv320aic3101:tlv320aic3101@18{
       #sound-di-cells =<0>;
       兼容="ti、tlv320aic310x";
       reg =<0x18>;
       状态="正常";

       /*稳压器*/
       IOVdd-supply =<&EVM_v3_3D>;/* V3_3D -> EN:V1_8D -> VBAT */
       AVDD-SUPPLY =<&EVM_v3_3D>;/* v3_3AUD -> V3_3D ->... *
       DRVDD-SUPPLY =<&EVM_v3_3D>;/* v3_3AUD -> V3_3D ->... *
       DVDD 电源=<&EVM_v1_8d>;/* V1_8D -> LDO1 *
   };

};


&McASP0{
       #sound-di-cells =<0>;
       pinctrl-names ="default"、"sleep";
       pinctrl-0 =<&McASP0_PINs>;
       pinctrl-1 =<&McASP0_SLEEP_PINs>;

       状态="正常";

       OP-MODE =<0>;/* MCASP_IIS_MODE */
       TDM-SLOTS =<2>;
       /* 4个串行器*/
       serial-dir =< /* 0:非活动、1:TX、2:Rx *
               1 2 0 0
       >;
       tx-num-evt =<32>;
       Rx-num-evt =<32>;
};


引导时,我将获得以下日志:

[1.809972]   ASOC-simple card sound@0:tlv320aic31xx-hifi <->48038000.McASP 映射正常
[1.818076]   ASOC-simple-card sound@0:ASOC:找不到 HPLOUT 的源小工具
[1.825275]   ASOC-simple-card sound@0:ASOC:无法添加路由 HPLOUT -> Direct ->耳机插孔
[1.834342]   ASOC-simple-card sound@0:ASOC:找不到 HPROUT 的源小工具
[1.841572(2004)   ASOC-simple-card sound@0:ASOC:无法添加路由 HPROUT -> Direct ->耳机插孔
[1.850613]   ASOC-simple-card sound@0:ASOC:找不到用于 LINE1L 的接收器小工具
[   1.857641] ASOC-simple-card sound@0:ASOC:无法在-> Direct -> LINE1L 中添加路线行
[1.866049]   ASOC-simple-card sound@0:ASOC:找不到适用于 LINE1R 的接收器小工具
[1.873079]   ASOC-simple-card sound@0:ASOC:Failed to add route Line in -> Direct -> LINE1R
[1.886691]   mmc2:排队未知 CIS tuple 0x91 (3字节)
[1.892894]   mmc2:地址0001处的新高速 SDIO 卡
[1.901025]   未找到使用虚拟稳压器的背光电源
[1.908654]   hctosys:无法打开 RTC 设备(rtc0)
[1.987185]   ALSA 器件列表:
[1.990191]     #0:AM437X-GP-EVM

ALSA:正在恢复混频器设置...
卡 AM437xGPEVM 不存在任何状态
已找到硬件:"AM437X-GP-EVM"""""""
使用通用方法初始化硬件
卡 AM437xGPEVM 不存在任何状态


使用 aplay 命令启动后,我已成功获取编解码器芯片:

根部@边架:~# aplay -l
****播放硬件设备列表****
卡0:AM437xGPEVM [AM437x-GP-EVM]、器件0:Davinci-McASP/0-tlv320aic31xx-hifi tlv320aic31xx-hife-0 []
 子设备:1/1
 子设备#0:子设备#0

但是当我使用 aplay 播放音频时:

root@edge-shelf:~# aplay Casio-CZ-5000-Human-Voice-C4.wav
播放波'Casio-CZ-5000-Human - Voice-C4.wav':有符号16位小端序,速率44100Hz,立体声
aplay:PCM_WRITE:2011:写入错误:输入/输出错误

有人能不能在这方面帮助我、我的配置出了什么问题。 我从以下网站获得了一些帮助: https://e2e.ti.com/support/arm/sitara_arm/f/791/p/435079/1650921

谢谢、
Chintan



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

    查看您提供的引导日志:
    [1.818076] ASOC-simple-card sound@0:ASOC:找不到 HPLOUT 的源小工具
    [1.825275] ASOC-simple-card sound@0:ASOC:无法添加路由 HPLOUT -> Direct ->耳机插孔
    [1.834342] ASOC-simple-card sound@0:ASOC:找不到 HPROUT 的源小工具
    [1.841572(2004) ASOC-simple-card sound@0:ASOC:无法添加路由 HPROUT -> Direct ->耳机插孔
    [1.850613] ASOC-simple-card sound@0:ASOC:找不到用于 LINE1L 的接收器小工具
    [ 1.857641] ASOC-simple-card sound@0:ASOC:无法在-> Direct -> LINE1L 中添加路线行
    [1.866049] ASOC-simple-card sound@0:ASOC:找不到适用于 LINE1R 的接收器小工具
    [1.873079] ASOC-simple-card sound@0:ASOC:Failed to add route Line in -> Direct -> LINE1R

    我认为您需要在 DTS 文件中添加正确的路由并检查您的 ALSA 机器层、请参阅以下 wiki:
    processors.wiki.ti.com/.../Sitara_Linux_Audio_DAC_Example

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

    您好!

    我将使用 TLV320AIC3101 SoC、您共享的链接适用于 TLV320DAC SoC。

    现在、我已经按照 tlv320aic31xx.c 驱动程序更正了耳机插孔和线路布线。
    请验证我是否正确设置了其他参数。


    此外、我没有从处理器获取 MCLK。 原因可能是什么?

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

    [引用 user="chintan Jobanputra">此外,我没有从处理器获取 MCLK。 原因可能是什么?

    在 AM437x TI EVM 上、音频编解码器 MCLK 来自外部12MHz 时钟源、而不是来自 AM437x 器件引脚。 您的定制板怎么样?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    在我们的定制板中、我们希望从处理器生成 MCLK。

    为了从处理器中为音频编解码器生成 MCLK、我必须在 DTS/tvl320aic3x 驱动程序/处理器寄存器中进行哪些更改?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Chintan、

    您使用哪个 AM437x 引脚为 MCLK 至 AIC3x 编解码器供电?

    您可以将 AM437x SK (入门套件)作为参考、其中 AIC3x 编解码器 MCLK 由 AM437x xdma_event_intr0提供
    .clkout1引脚(D24、多路复用模式= 0x3)。 该文件在 AM437X-SK-EVM.dts 文件中进行编程。

    此致、
    帕维尔