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/TLV320AIC3105:DT中的音频路由

Guru**** 2414290 points
Other Parts Discussed in Thread: TLV320AIC3105, TLV320AIC3107, TLV320AIC3007, TLV320AIC3105EVM-K, TLV320AIC3106

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

https://e2e.ti.com/support/audio-group/audio/f/audio-forum/689470/linux-tlv320aic3105-audio-routing-in-dt

部件号:TLV320AIC3105
主题中讨论的其他部件: TLV320AIC3107TLV320AIC3007TLV320AIC3106

工具/软件:Linux

尊敬的TI E2E社区:

我已经为TLV320AIC3105执行了如下DT中的音频路由,以便与我的定制处理器连接,请任何人确认以下路由对于所附示意图部分是否正确  

音频路由=

"耳机插孔","HPLOUT",
"耳机插孔","HPROUT",
"LINE1L","Mic插孔",
"LINE2L","麦克风插孔";

此外,我还想知道,我需要在计算机驱动程序文件中添加哪些路由配置,以便将此编解码器与我的自定义处理器连接起来

请尽早满足您的需求

等待您的回复

非常感谢

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

    Srini,

    我对您的第一个问题不是很清楚。 HPL和HPR输出是耳机输出, 麦克风可以连接到line1L和line2L。

    关于路由配置,数据表中有一个方框图,其中显示了所有路由。 请参阅以下内容:

    您也可以将 此驱动程序 用作参考。 它远非完美, 但可能会节省您一些时间。  

    此致,  

    -Steve Wilson

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

    尊敬的Steve:

    第一个问题与您在Linux设备树中配置编解码器输入和输出时要执行的音频路由配置有关,我对此不太有信心,如以下链接w.r.t "Machine Layer Configuration"(机器层配置)中所述。 我只想让您回顾一下我在w.r.t  "机器层配置"中完成的音频路由相关配置

     

     

    声音{
    兼容="FSL,IMX-AUDIo-tlv320";
    型号="IMX-tlv320";
    CPU-DAI =<&sai3>;
    audio-codec =<&tlv320aic3105>;
    /*ASRC控制器=<&ASRC;*/*稍后检查*/
    /*codec-master;*/*待稍后检查*/
    /*GPR =<&GPR 4 0x10万 0x10万>;*/*待稍后检查*/
    音频路由=

    "耳机插孔","HPLOUT",
    "耳机插孔","HPROUT",
    "LINE1L","Mic插孔",
    "LINE2L","麦克风插孔";

    /*mix-int-port =<2>;*/*待稍后检查*/
    /*mix-ext-port =<5>;*//*待稍后检查*/
    };

    tlv320aic3105:tlv320aic3x@18{
    兼容="ti,tlv320aic3x";
    REG =<0x18>;
    GPIO重置=<&GPIO5 4 GPIO主动_低>;---------------------------------- >是否正确????????
    时钟=<&CLKS IMX6UL_CLK_SAI3>;
    ai3x-micbas-vg =<2>;/* MICBIAS_2_5V */
    /*时钟名称="MCLK";*//*待稍后检查*/
    状态="正常";

    Clock-frequency =<1200万>;/*稍后检查*/
    /*调节器*/
    DRVDD-supply =<&reg_3p3v>;/*稍后检查*/
    avdD-supply =<&reg_3p3v>;/*待稍后检查*/
    IOVdd-supply =<&reg_3p3v>;/*稍后检查*/
    DVDD-SUPPLY =<&REG_1p8v>;/*稍后检查*/
    };

    能否确认突出显示的路由相关配置是否正确? 根据我在第一篇文章中所附的示意图部分,希望这是对我的自定义处理器进行音频编解码器设计的关键参数

    我无法使此回放正常工作

    root@imx6ull14x14evk:/# i2cdetect -y -a -r 1.
       0 1 2 3 4 5 6 7 8 9 a b c d e f
    00:00-------- -------- --------  
    10:-------- ------------------- ------  
    20:-------- -------- -------- --  
    30:-------- -------- -------- --  
    40:-------- -------- -------- --  
    50:-------- -------- -------- --  
    60:-------- -------- -------- --  
    70:-------- -------- -------- --  
    root@imx6ull14x14evk:/# aplay -l
    ****播放硬件设备列表****
    卡0:imxtlv320 [IMX-tlv320],设备0:hifi tlv320aic3x-hifi-0[]
     子设备:1/1
     子设备#0:子设备#0
    root@imx6ull14x14evk:/# ifconfig
    Eth0   链路加密:以太网 HWaddr 00:04:9f:05:0b:12   
         iNet addr:iNet 10.75 .28.86 255.255 Bcast:iNet .29.255 Mask:INet.10.75 254.0
         inet6地址:fe80::204:9fff:fe05:B12/64范围:链接
         运行多播 MTU的UP广播:1500 度量:1
         RX数据包:2.0048万错误:0已丢弃:0溢出:0帧:0
         Tx数据包:1.0734万错误:0已丢弃:0溢出:0运营商:0
         冲突:0 queutxelen:1000  
         RX字节:2254.4678万 (21.5 MIB) TX字节:194.5718万 (1.8 MIB)
    低     链路加密:本地环回   
         iNet地址:127.0 .0.1 掩码:255.0 .0.0
         inet6地址:::1/128范围:主机
         上环回运行 MTU:6.5536万 公制:1
         RX数据包:2404错误:0已丢弃:0溢出:0帧:0
         Tx数据包:2404错误:0已丢弃:0溢出:0运营商:0
         冲突:0 queutxelen:1.  
         RX字节:18.264万 (178.3 KiB) TX字节:18.264万 (178.3 KiB)
    根@imx6ull14x14evk:/# ls
    Aadya            bin  etc  jaya-t mnt  运行  test.txt  usr
    a2002011001-e02-8kHz.wav boot home lib   opt  sbin tmp      可变
    阴云           dev  jaya media  proc sys  unit_tests
    root@imx6ull14x14evk:/#  
    root@imx6ull14x14evk:/#  
    root@imx6ull14x14evk:/# aplay -Dplughw:0,0 a2002011001-e02-8kHz.wav
    播放wave 'a2002011001-E02-8kHz.wav': Signed 16 bit Little Entlv320aic3x-codec 1-0018: Unable to sync Registers 0x1-0x2. -11.
    DIAN,速率8000 Hz,立体声
    aplay:PCM_WRITE:2023:写入错误:输入/输出错误
    root@imx6ull14x14evk:/#  
    root@imx6ull14x14evk:/# aplay a2002011001-e02-8kHz.wav                                              
    tlv320aic3x-codec 1-0018:无法同步寄存器0x4-0x8。 -6.
    播放wave 'a2002011001-E02-8kHz.wav': Signed 16 bit Little Endian, Rate 8000 Hz, Stereo
    ^信号中断中止...
    aplay:PCM_WRITE:2023:写入错误:系统调用中断
    root@imx6ull14x14evk:/#  
    root@imx6ull14x14evk:/#  
    root@imx6ull14x14evk:/# amixer
    amixer:混音器默认加载错误:无此类设备或地址
    root@imx6ull14x14evk:/#  
    root@imx6ull14x14evk:/#  
    root@imx6ull14x14evk:/#  
    root@imx6ull14x14evk:/# amixer  
    amixer:混音器默认加载错误:设备或资源忙
    root@imx6ull14x14evk:/# i2ctget -f -y 1 0x18 0x5
    错误:读取失败
     
    root@imx6ull14x14evk:/# cat /proc/asound/cards.
     0 [imxtlv320   ]:imx-tlv320 - imx-tlv320
               IMX-tlv320
    root@imx6ull14x14evk:/# cat /proc/asound/devices
     0:[0]  :控制
     16:[0-0]:数字音频播放           --------------------------- +
     24:[0-0]:数字音频捕获            |                |
     33:     :计时器                    | 无法打开/dev/ttyUSB0!  |
    root@imx6ull14x14evk:/# cat /proc/asound/card0/id    |                |
    imxtlv320                         --------------------------- +
    root@imx6ull14x14evk:/#  
    root@imx6ull14x14evk:/#  
    root@imx6ull14x14evk:/#  
    root@imx6ull14x14evk:/#  
    root@imx6ull14x14evk:/#  
    root@imx6ull14x14evk:/#  
    root@imx6ull14x14evk:/# i2cdump -f -y 1 0x18
    未指定大小(使用字节数据访问)
       0 1 2 3 4 5 6 7 8 9 a b c d e f  0123456789abcdef
    00:XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX  XXXXXXXXXXXXXXXX
    10:XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX  XXXXXXXXXXXXXXXX
    20:XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX  XXXXXXXXXXXXXXXX
    30:XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX  XXXXXXXXXXXXXXXX
    40:XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX  XXXXXXXXXXXXXXXX
    50:XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX  XXXXXXXXXXXXXXXX
    60:XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX  XXXXXXXXXXXXXXXX
    70:XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX  XXXXXXXXXXXXXXXX
    80:XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX  XXXXXXXXXXXXXXXX
    90:XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX  XXXXXXXXXXXXXXXX
    A0:XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX  XXXXXXXXXXXXXXXX
    B0:XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX  XXXXXXXXXXXXXXXX
    C0:XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX  XXXXXXXXXXXXXXXX
    d0:XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX  XXXXXXXXXXXXXXXX
    E0:XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX  XXXXXXXXXXXXXXXX
    F0:XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX  XXXXXXXXXXXXXXXX
    root@imx6ull14x14evk:/#  

    root@imx6ull14x14evk:/#
    root@imx6ull14x14evk:/# aplay -Dplughw:0,0 a2002011001-e02-8kHz.wav
    播放wave 'a2002011001-E02-8kHz.wav': Signed 16 bit Little Entlv320aic3x-codec 1-0018: Unable to sync Registers 0x1-0x2. -11.
    DIAN,速率8000 Hz,立体声
    aplay:pcm_write:2023:write error:input/output error -- 似乎主要是音频路由问题
    root@imx6ull14x14evk:/#
    root@imx6ull14x14evk:/#

     

     

    在TLV320AIC3105数据表的第19页上,其内容如下

    10.3 功能说明
    10.3 1硬件重置
    TLV320AIC3105需要在通电后重置硬件才能正常运行。 在所有电源设备均已连接后
    在其指定值下,必须将复位引脚驱动到低电平至少10 ns。 如果不是此重置顺序
    执行此操作时,TLV320AIC3105可能无法正确响应寄存器读/写

    我已经按照上述步骤做了以下工作,这是否正确??

    GPIO重置=<&GPIO5 4 GPIO主动_低>; ---------------------------------- >是否正确????????

    请尽早满足您的需求

    谢谢!

    Srini  

     

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

    老实说,我对imx6处理器没有任何经验,我真的看不出您在哪里配置音频路由。这是在哪里?

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

    尊敬的Steve:

    1.您能否告诉我 TLV320AIC3105和TLV320AIC3107,TLV320AIC3007部件号之间的区别 ??,因为我找到了TLV320AIC3107和 TLV320AIC3007部件号的一些参考,我可以将其重新用于TLV320AIC3105 编解码器

    2.对于100kHz时钟频率,i2c_sda和i2c_scl的i2c上拉电阻值应该是多少?

    请尽早满足您的需求

    提前感谢

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    TLV320AIC3107和TLV320AIC3105都是TLV320AIC310x系列的组成部分,因此存在许多相似之处。输入类型(差动和SE)存在差异,AIC3107/3007具有3007具有集成的D类扬声器放大器。 至于注册地图,它们差不多是一样的,我相信唯一的分别是第73条和第76条,但我可能是误会了。

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

    谢谢Steve,

    您能否回答以下需要放置的上拉电阻值是多少?即,根据TLV320AIC3105数据表第90页,需要安装的Rp值是多少?

    2.对于100kHz时钟频率,i2c_sda和i2c_scl的i2c上拉电阻值应该是什么。该值应该是4.7K还是10k,它是否适用于10k上拉电阻?

    3.请您与Pavel交谈,并帮助我获取我在上述文章中发布的相同问题的答案。 我面临中发布的类似问题  

    4.请与我分享参考原理图,例如,TLV320AIC3105接口到AM335x,以便与接口到TLV320AIC3105EVM-K板的自定义处理器(SAI3 - i.mx6ULL进行比较

    5.另外,您能否告诉我如何 使用 TLV320AIC3105EVM-K评估工具在TLV320AIC3105EVM-K板中验证I2C接口?


    谢谢!
    Srini

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

    Srini,

    2:Rp的值主要取决于您的要求。 您可以稍微权衡速度和功耗。我们在EVM上使用4.7K电阻器, 但我建议您查看 此应用报告。  这是一个很好的资源,可用于确定您的用例的正确值。 请记住TLV320AIC3105可以执行标准或快速模式, 我认为它与FAST MODE PLUS不兼容。

    3:您链接到的此线程已解析。 尝试在AM335x论坛上发帖

    4:我不确定我是否理解您在这里的需求。 您只需要将编解码器中的重置,I2C和I2S线路连接到您的处理器。  

    5:我也不知道您的意思是什么。  I2C用于对EVM进行编程。您可以读取您写入的所有寄存器,并验证它们是否具有正确的值。但我不确定您要寻找的是哪种其他类型的验证

    此致,  

    -Steve Wilson

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

    尊敬的Steve

    1.谢谢,我只能验证连接 到TLV320AIC3105EVM-K的定制处理器与TLV320AIC3105主板的i2c接口吗? iE,i2c wirte和i2c读取,而不将其它音频线路MCLK,lrclk,nclk,I2S_In和I2S_Out从我的处理器连接到 TLV320AIC3105EVM-K

    2.是否必须将重置信号从我的处理器驱动到编解码器,以便仅验证从我的自定义处理器到TLV320AIC3105的i2c接口?

    TLV320AIC3105 是否始终充当从属设备? 例如,MCLK需要由处理器提供给编解码器,或者编解码器是否有任何机会也可以充当主编解码器,即编解码器是否也可以为处理器生成MCLK?

    请尽早满足您的需求

    非常感谢

    热切期待您的回复

    Srini

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

    Srini,

    1.您可以让时钟从USBMODEVM保持连接。

    2.在加电过程中,重置信号必须保持在较低的水平。出于测试目的,您可以手动执行此操作。

    3. TLV320AIC3105可作为从控制器或主控制器。通过将BCLK和WCLK设置为输出,可在寄存器8中控制此功能

    此致,  

    -Steve Wilson

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

    我可以知道用于将DAC和ADC卷保持在最大范围的tlv320AIC3105寄存器配置吗?

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

    没有ADC卷寄存器。 有PGA增益寄存器(15和16)

    DAC音量寄存器为43和44。

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

    如果在硬件中进行硬接线,是否需要在软件中显式配置3.3V和1.8V电压调节器?

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

    TLV320AIC3105上没有可配置的调节器...寄存器25中有微偏...但听起来并不像您所问的那样。

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

    谢谢Steve,

    是BCLK和WCLK始终由编解码器生成(即,编解码器始终是生成处理器的BCLK和WCLK的主控代码, 或者它可以接受从处理器生成的BCLK和WCLK,在这种情况下,编解码器充当从属设备,我的理解是否正确?) ? 例如,如何根据您的AM335x和tlv320aic3106生成此时钟(即MCLK,BCLK和WCLK)?

    请问,如果有任何编解码器寄存器,我可以在哪里验证MCLK,BCLK和WCLK,编解码器是否能够生成MCLK,BCLK和WCLK到处理器,以及编解码器正在接收MCLK,BCLK和WCLK的寄存器,以进行回读?  

    请尽早满足您的需求

    非常感谢

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

    Srini,  

    AIC3105可以是主控或从。 这是通过设置位D6-D7在寄存器8中设置的。 这将切换 WCLK和BCLK的方向(0=输入,1=输出)

    为供将来参考, 请在此处找到此设备的数据表。  数据表包含大量信息。 如果您无法在数据表中找到内容,请务必查看并告诉我。  

    此致,  

    -Steve Wilson