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.

[参考译文] TLV320AIC3105:TLV320AIC3105 MIC问题

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

https://e2e.ti.com/support/audio-group/audio/f/audio-forum/598086/tlv320aic3105-tlv320aic3105-mic-issue

部件号:TLV320AIC3105

您好,

我们有一个tlv320aic3105音频开角,并将BeagleBone Green作为主机, McASP0配置为I2S。 播放正常,但Capture不会保存任何语音数据。 我运行命令

arecord -vv -f dat /dev/null

并获取错误消息

arecord:PCM_READ:2031:读取错误:输入/输出错误

(屏幕截图附在下面)

在此测试中,LINE1L用于MIC输入。

为了支持tlv320aic3105音频编解码器,我使用 ti-processor-SDK-Linux-AM335x-EVM-EVM-IC3x更改并构建器件树AM335x-bonegreen.dTB 03.02 ,编解码器驱动程序为tlv320aic3x。00.05  

我不知道此错误的原因是什么,下面是我可以想到的一些问题:

  1. tlv320aic3x是否完全支持tlv320aic3105或需要一些更改?
  2. 音频路由是否错误? 下面是MIC的音频路由:

TI,音频路由=

                       "耳机插孔",    "HPLOUT",

                       "耳机插孔",      "HPROUT",

                       "LINE1L",       "Line IN";

3.其他原因?

感谢您的帮助,

Bruce

////////////////////////////////////////////////////////////

根@BeagleBone:~# arecord -vv -f dat /dev/null

记录波'/dev/null':已签名的16位小Endian,速率4.8万 Hz,立体声

插头PCM:硬件PCM卡0 'D A830 EVM'器件0子器件0

其设置为:

 流:      捕获

 Access      (访问):RW_interleaved

 格式      : S16_LE

 子格式   :标准

 频道    :2.

 价格        :4.8万

 准确比率  :4.8万(48000/2)</s>4.8万

 msbits      :16.

 buffer_size :2.4万

 句点大小 :6000

 Period_Time :12.5万

 tstamp_mode :无

 句点步长 :1.

 AVAILE_MIN   :6000

 period_event:0

 start_threshold :1.

 STOP_THRESHOLD  :2.4万

 silence_threshold:0

 Silence_size:0

 边界    :1572864000

 App_PTR    : 0

 HW_PTR      :0

arecord:PCM_READ:2031:读取错误:输入/输出错误

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

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

    遗憾的是,我们不支持此类命令或BeagleBone驱动程序。 但是,是否可以提供音频编解码器的注册映射? 这对于了解根本原因非常有用。 任何示意图或附加信息也将很有用。

    谢谢你。

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

    您好,Luis,

    感谢您的快速响应。

    我不直接配置编解码器寄存器,而是使用alsamixer来配置音频设备。 这是驱动程序文件tlv320aic3x.c中的注册表映射,我认为内核将此映射用作默认配置。

    静态const结构reg_default aic3x_reg[]={

           {  0,0x00 },{  1,0x00 },{  2, 0x00 },{  3,0x10 },

           {4,  0x04},{5,  0x00},{6,   0x00 },{  7,0x00 },

           {8,  0x00},{9,  0x00},{10,  0x00 },{ 11,0x01 },

           { 12, 0x00 },{ 13, 0x00 },{ 14, 0x00 },{ 15,0x80 },

           { 16, 0x80},{ 17, 0xff},{ 18, 0xFF },{ 19,0x78 },

           { 20,0x78 },{ 21,0x78 },{ 22, 0x78 },{ 23,0x78 },

           { 24,0x78 },{ 25,0x00 },{ 26, 0x00 },{ 27,0xFE },

           { 28,0x00 },{ 29,0x00 },{ 30, 0xFE },{ 31,0x00 },

           { 32,0x18 },{ 33,0x18 },{ 34, 0x00 },{ 35,0x00 },

           { 36, 0x00},{ 37, 0x00},{ 38, 0x00 },{ 39,0x00 },

           {40, 0x00},{41, 0x00},{42,  0x00 },{ 43,0x80 },

           { 44, 0x80},{ 45, 0x00},{ 46, 0x00 },{ 47,0x00 },

           { 48,0x00 },{ 49,0x00 },{ 50, 0x00 },{ 51,0x04 },

           {52, 0x00},{53, 0x00},{54,  0x00 },{ 55,0x00 },

           {56, 0x00},{57, 0x00},{58,  0x04 },{ 59,0x00 },

           { 60,0x00 },{ 61,0x00 },{ 62, 0x00 },{ 63,0x00 },

           {64, 0x00},{65, 0x04},{66,  0x00 },{ 67,0x00 },

           { 68, 0x00},{ 69, 0x00},{ 70, 0x00 },{ 71,0x00 },

           { 72,0x04 },{ 73,0x00 },{ 74, 0x00 },{ 75,0x00 },

           { 76,0x00 },{ 77,0x00 },{ 78, 0x00 },{ 79,0x00 },

           { 80, 0x00},{ 81, 0x00},{ 82, 0x00 },{ 83,0x00 },

           {84, 0x00},{85, 0x00},{86,  0x00 },{ 87,0x00 },

           {88, 0x00},{89, 0x00},{90,  0x00 },{ 91,0x00 },

           { 92,0x00 },{ 93,0x00 },{ 94, 0x00 },{ 95,0x00 },

           { 96,0x00 },{ 97,0x00 },{ 98, 0x00 },{ 99,0x00 },

           { 100, 0x00},{ 101, 0x00},{ 102, 0x02 },{ 103,0x00 },

           { 104,0x00 },{ 105,0x00 },{ 106, 0x00 },{ 107,0x00 },

           { 108,0x00 },{ 109,0x00 },

    };

    我不确定驱动程序tlv320aic3x.c是否完全支持tlv320aic3105,例如,支持录制。

     

    此致,

    Bruce

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

    您共享的寄存器配置是TLV320AIC3105的默认状态。 这意味着未配置音频编解码器。

    要启用记录功能,您至少需要配置页面0 /寄存器15 - 25。 寄存器17-24被配置为选择要录制声音的模拟输入。 寄存器15-16用于配置PGA。 寄存器19,22用于启用ADC。 和寄存器25用于配置MICBIAS (如果需要)。

    请根据您的需要配置所有这些寄存器,如果您需要其他帮助,请告诉我。

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

    您好,Luis,

     

    在我们的应用中,MIC1L/LINE1L是连接到左PGA和左ADC的输入,需要配置第0页的寄存器15和寄存器19。 当启动编解码器tlv320aic3105时,将从TI驱动程序aic3x_init()设置这两个寄存器,如下所示:

    注册

    第0页/登记册15.

    0x20

    第0页/登记册19.

    0x0

     

    编解码器运行后,我运行alsamixer来配置PGA捕获,下面是ADC配置更改的副本:

           CONTROL。44{

                   iface混合器

                   名称'PGA Capture Volume'(PGA捕获体积)

                   value.0119

                   价值1119

                   注释{

                           访问'read write'

                           键入integer

                           计数2

                           范围'0 - 119'

                           dbmin 0

                           dbmax 5950

                           dbvalue.05950

                           dbvalue.15950

                   }

           }

           CONTROL .45{

                   iface混合器

                   名称'PGA Capture Switch'(PGA捕获开关)

                   value.0真

                   Value.1正确

                   注释{

                           访问'read write'

                           键入Boolean

                           计数2

                   }

           }

    但是,当我运行捕获时,我看到错误

    arecord:PCM_READ:2031:读取错误:输入/输出错误

    我不知道导致此错误的原因。

    我还比较了tlv320aic3105寄存器映射,tlv320aic3105中第0页的寄存器73-79是保留的, 不确定将值写入这些寄存器是否有任何影响,这是在aic3x_init()中完成的。

    此致,

    Bruce

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

    完成配置后,您能否验证DOUT引脚上是否有任何数据? 此外,ADC似乎已被禁用。 第0页/寄存器19/位D2需要配置为'1'以启用ADC。 因此,正确的寄存器值将为0x04。

    此致,
    Luis Fernando Rodríguez ñ o S.
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好,Luis,

    运行捕获并收到错误时,我们在DOUT PIN上看到数据。 它让我感到困惑:如果禁用ADC,ADC如何具有输出数据?

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

    有两个寄存器可启用ADC:

    第0页/注册19。 位D2配置左侧ADC。
    第0页/注册22。 位D2配置正确的ADC。

    可能只有其中一个寄存器正在配置。 因此,您需要配置两个寄存器以完全启用ADC信道。

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

    您好,Luis,

    感谢您的帮助,我会尝试。

    此致,

    Bruce

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

    您好,Luis,

    Tlv320aic3105捕获仍不工作,运行捕获时挂起。 我们检查了第0/注册19页和注册22位,在进行记录时D2位为1,第0/注册15和16页的值为0x77。

    我们对  DaVinci EVM.c中的DA830_EVM_DAI和EVM_DAI_tlv320aic3x进行了一些更改,

    1. 将.CPU_DAI_NAME和.PLATFORM_NAME从“DaVinci-McASP.1”更改为 “DaVinci-McASP.0”以支持播放和捕获;
    2. 将.da_fmt更改为I2S。

    tlv320aic3105提供位时钟和帧时钟。

    以下是更改:

    静态结构snd_so_da_link DA830_evm_dai ={

           .name ="TLV320AIC3X",

           .STREAM_NAME ="AIC3X",

           CPU_dai名称="达芬奇-McAF.0",

           codec_dae_name ="tlv320aic3x-hifi",

           codec_name ="tlv320aic3x-codec.1-0018",

           .platform_name ="DaVinci-Mcasp.0",

           .init = evm_aic3x_init,

           ops =&EVM_ops,

           .da_fmt = snd_so_DAIFMT_I2S | snd_so_DAIFMT_CBM_CFM |

                      Snd_SOC_DAIFMT_NB_NF,

    };

    ……

    静态结构snd_so_da_link evm_da_tlv320aic3x ={

           .name          ="TLV320AIC3X",

           .STREAM_NAME   ="AIC3X",

           codec_dae_name ="tlv320aic3x-hifi",

           ops           =&EVM_ops,

           .init          = evm_aic3x_init,

           .da_fmt = snd_so_DAIFMT_I2S | snd_so_DAIFMT_CBM_CFM |

                      Snd_SOC_DAIFMT_NB_NF,

    };

    我不确定这些更改是否正确,或者我还需要进行其他一些更改。

     

    此致,

    Bruce

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

    您是否有已修改的寄存器配置? 我的意思是,注册表会随代码的这些更改而更改。 很抱歉,我们不支持这种驱动程序。

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

    您好,Luis,

    我设法使tlv320aic3105捕获运行,但它可以捕获噪音。 编解码器配置为:

    1. 编解码器配置为从,主机提供位时钟和帧时钟;
    2. TX和RX在同步模式下工作,主机仅向tlv320aic3105提供TX位时钟和帧时钟;
    3. 选择MiC1L/LINE1L作为音频输入。

    tlv320aic3105的寄存器转储如下所示:

    根部@臂:~# i2cdump -f -y 2 0x18
    未指定大小(使用字节数据访问)
       0   1   2   3   4   5   6   7   8   9   a   b   c   d   e   f
    00:00    00 aa  20  04  00    0A  00  00 00  00 00 00  41  00    00  5b
    10:5B  ff      04  78    04  78    06  00  Fe   00    Fe  00 Fe 00
    20:00  00    00 00  cc  00    00  00  00 00 00 00   00  80  80  2f   2f  af  
    30:00    00  00 0c  2f   2f   af   00    00  0c  00    00  2f  2f
    40:AF   0c  00    00  2f   2f   af   0c  2f   2f af      2f   2f af     08  
    50:2F   2f   af   00      00 08  00    00   2f   2f   af  08  00  00
    60:00  00    00 00  00  01  02  00    00   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  00
    80:00  00  aa  20  04  00    00 0A  00  00   00  00 01  00    00 5b
    90:5B  ff      04  78    04  78    06   00  Fe   00    Fe  00
    A0:00  00  00  00  cc  00    00  00  00 00 00 00    00  80  80  2f   2f  af  
    B0:00    00  0c  2f   2f   af   00    00   0c  00    00  2f  2f  
    C0:AF   0c  00    00  2f   2f   af   0c  2f   2f af      2f  2f af     08
    d0:2f   2f   af  00     00  08  00    00   2f   2f   af  08  00  00
    E0:00  00  00  00   00  01  02  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

    请帮助我了解这个问题。

    谢谢!

    Bruce

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

    您好,Bruce:

    我在iMX6板上使用TLV320AIC3105,我使用编解码器驱动程序tlv320aic3x.c和计算机驱动程序IMX-tlv320aic3x.c.

    当内核运行时,它显示:

    imx-tlv320aic3x声音:tlv320aic3x-hifi <->202c000.si映射正常

    ....

    ALSA设备列表:
     #0: tlv320-audio

    I2C通信工作正常(我可以读取/写入编解码器IC的注册器)

    但是当我播放音乐时,我看不到BCLK,WCLK,I2S数据输出(TXD),只有MCLK (24MHz),而且没有声音!  

    我花了一周时间来找出问题所在,但没有成功!

    您是否可以与我共享您的编解码器驱动程序和计算机驱动程序?

    非常感谢!

    巴西/泰国

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

    您好,Hai,

    如果运行播放,TI音频编解码器驱动程序tlv320aic3x可用于tlv320aic3105。

    此致,

    Bruce

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

    您好,Bruce:

    我看到有两个驱动程序:tlv320aic3x.c (作者:Vladimir Barinov)和tlv320aic31xx.c (作者:Jyri Sarha <jsarha@ti.com)

    我使用 的是tlv320aic3x.c,但没有成功,您使用的是哪个驱动程序?

    请帮助我,现在我真的陷入了困境!

    谢谢!

    此致,

    海  

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

    我使用tlv320aic3x.c.  

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

    您好,Bruce:

    我可以在SSI WCLK,BCLK和数据输出线路上进行时钟输出。 但我测量右LOM,右LOP,左LOM,左LOP,HPLOUT, TLV320AIC3105 IC的HPROUT...没有任何人具有数据时钟输出,也没有声音!

    在设备树中,我使用音频路由:

    "EXT SPK","LLOOUT",

    "EXT SPK","RLOUT",

    "线路输出插孔","LLOOUt",

    "线路输出插孔","RLOUT",

    "耳机插孔","HPLOUT",

    "耳机插孔","HPROUT";

    是否可以在设备树中共享我的音频路由?

    谢谢!

    此致/海防

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

    您好,Hai,

    这是我使用的设备树

    "耳机插孔","HPLOUT",
    "耳机插孔","HPROUT",
    LINE1L,Line In,
    "LINE1R","线路输入";

    此致,

    Bruce

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

    您好,Hai,

    您是否捕获了TLV320aic3105 MIC的声音? 您是使用RX时钟还是共享TX时钟? 是tlv320aicaic3105主模式还是从属模式? 您使用的是哪个端口,MIC1L/Line1L或其他端口?

    此致。

    Bruce

      

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

    您好,Bruce:

    我可以使用MIC1L/LINE2L/LINE2R输入从TLV320AIC3105捕获到录制音质 ,但噪音不大。

    我使用主MCU的外部MCLK, TLV处于从属模式。

    我的图表:

    主MCU ----- TLV编解码器

    CLK_OUT (24MHz)--> MCLK

    AUD3_TXD   -  I2S_DIN

    AUD3_RXD  -  I2S_DOUT

    AUD3_TXFS -  I2S_WCLK

    AUD3_TXC  -  I2S_BLCK

    此致,