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.

[参考译文] TLV320AIC3204:使用简单音频卡回放的 Linux TLV320AIC3204正常、但无法录制

Guru**** 2539750 points
Other Parts Discussed in Thread: TLV320AIC3204

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

https://e2e.ti.com/support/audio-group/audio/f/audio-forum/976049/tlv320aic3204-linux-tlv320aic3204-using-simple-audio-card-playback-ok-but-can-not-record

器件型号:TLV320AIC3204

您好!  

我是一名嵌入式软件工程师、最近从事一个基于 NXP i.MX8QM Arm 处理器的开发板项目、该项目采用运行 Linux 5.4.47内核的 TI TLV320AIC3204立体声音频编解码器。 编解码器芯片通过 SAI1 I2S 总线连接。 我可以让音频播放部分正常工作、但目前在使录制功能正常工作方面遇到一些困难、希望您能提供建议和帮助。 详细信息如下所示。  

我的发展基于图中所示的以下框架。 我目前正在使用 Linux 内核5.4.47附带的“编解码器驱动程序”(tlv320aic32x4-i2c.c/tlv320aic32x4.c)和同一内核发行版附带的“平台驱动程序”文件“simple-sound.c”(linux-imX/sound/soc/sgeneral/simple-card.c)。 按照以下步骤将设备树(DTS)配置为音频设备:

 原理图如流程图所示:

重新启动后、我确认在内核中检测到 TLV320AIC3204编解码器芯片

 

1)使用“aplay -l”命令列出新添加的音频设备:

sysdefault:card=tlv320audio
tlv320-音频,
默认音频设备

2) 2)通过测试音频播放:可以使用以下命令播放音频片段

aplay -D sysdefault:card=tlv320audio -f dat 1.wav

 

但是、录制功能不起作用。

我尝试使用以下命令:

arecord -vv -D sysdefault:card=tlv320audio foo.wav

执行录音命令时,观察到以下情况:

1) 1)     未观察到 MICBIAS 信号发生变化、

2) 2)     PIN1 MCLK 输出正常

3)     3)编解码器芯片未输出引脚2 BCLK 和 WCLK 信号

经过一些初步调试后,我发现在 arecord 调用期间,调用了 sound/soc/co-dapm.c 中的“dapm_power_widget”函数。 在浏览每个小部件时,所有捕获小部件的“new_power”属性都有一个“0”值,“target_bias _level”保持为0 (snd_SOC_bias _off)。 反过来、录制失败。

我想知道以前是否有人遇到过这个问题。 这是 DTS 配置问题还是需要修补程序的内核驱动程序问题。 提前感谢您的帮助!

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

    simple-sound 卡的设备树如下所示:

    sound-tlv320-simple {       
            兼容 =" 简单音频卡";
            状态 = "正常";
            simple-audio-card、name = "tlv320-audio";
            simple-audio-card、format = "I2S";
            simple-audio-card、frame-master = <&codec_dae>;
            simple-audio-card、bitclock-master = <&codec_da>;        
            simple-audio-card、hp-det-gpio = <&lsio_gpio0 31 gpio_active_high>;
            simple-audio-card、mi-det-gpio = <&lsio_gpio0 31 gpio_active_high>;

            simple-audio-card、小工具 =
            "麦克风"、 "麦克风 插孔"、
            "麦克风"、 "主 MIC"、
            "扬声器"、 "外部 SPK"、
            "线路"、"线路 输入"、
            "耳机"、 "耳机 插孔";

            音频路由 =
                "耳机 插孔"、 "HPL"、    //left 耳机 布线
                "耳机 插孔"、 "HPR"、    //右侧 耳机 布线
                "EXT SPK"、 "LOL"、           //left 扬声 器布线  
                "EXT SPK"、 "LOR"、           //右侧 扬声 器布线
                "IN2_L"、 "麦克风 插孔"、        //输入 麦克风 路由          
                "in3_L"、 "麦克风 插孔"、        //输入 麦克风 路由
                "IN1_R"、 "主 插孔"、       //输入 麦克风 路由
                "IN2_R"、 "主 插孔"、       //输入 麦克风 路由
                "MIC Jack"、"Mic Bias"、      //Mic bias routing           
                "主 插孔"、 "麦克风 偏置"、    //Mic 偏置 布线
                "IN1_L"、"线路 输入"、
                "in3_R"、"线路 输入"、
                "回放"、 "CPU 回放"、
                "CPU 捕捉"、 "捕捉";


            CPU_Dai: 简单音频卡、CPU
            {
                ??Sound-Dai = <?Sa义1>;             
            };

            codec_dai: simple-audio-card、codec {
                    sound-dai = <&codec_tlv320>;                 
                    时钟 = <&mclkout0_lpcg 0>;
            };
        };
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    谢您好、

    我们不积极支持有关 Linux 驱动程序或 Linux 系统集成的查询。 我们很乐意为您提供有关器件的任何问题的帮助。

    此致。

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

    如果您没有任何进一步的疑问、我将关闭此主题。

    此致。