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.

[参考译文] TLV320AIC3120:QCS6490 上的 TLV320AIC3120 配置

Guru**** 2601625 points
Other Parts Discussed in Thread: TLV320AIC3120

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

https://e2e.ti.com/support/audio-group/audio/f/audio-forum/1577123/tlv320aic3120-tlv320aic3120-configuration-on-qcs6490

部件号:TLV320AIC3120


您好、

 

在 QCS6490 平台上配置 TLV320AIC3120 后(使用 AOSP 13)、编解码器坚持不工作。 似乎一切都是正确的,但不知何故编解码器没有产生任何声音。

您能否检查我们的日志和 tlv320aic31xx.c 驱动程序以了解我们是否正确配置了芯片? tlv320aic31xx.h tlv320aic31xx.c

ed91447f-82e8-4c3e-b7e4-79086b1c1471.jpg

谢谢。

此致、

Rui  

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

    您好 Rui、

    您能否在尝试回放时附加.dts 文件和寄存器转储? 您的日志看起来正常、我想知道您是否没有使用 dapm-route 正确配置路由。  

    此致、
    Mir

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

    尊敬的 Mir:

    Attached 您可以在尝试回放期间找到寄存器转储。

    希望这有所帮助。  

    感谢你的帮助。

    此致、

    Rui

    e2e.ti.com/.../playing.txt

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

    您好 Rui、

    给我一天,我明天早上就会到这里。

    -米尔

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

    您好、

    我通过你的转储,它看起来大多数东西都是默认的。 我看到 NDIV 已上电以创建 BCLK、尽管 BCLK 也配置为输入、因此不需要这样。 我还看到 ADC 在 DAC 加电时断电。 耳机驱动器会断电、但 D 类放大器会上电、尽管 D 类放大器设置为尽可能低的模拟音量控制级别(您在寄存器 0xa6 中设置了该控制级别、但这实际上是第 1 页寄存器 0x26)。 您是否尝试通过放大器输出? 其他一些输出吗? 如果您可以附加 DTS 文件或用于配置器件的其他任何内容、我也可以提供帮助。  

    AIC31xx Register Dump:
    AIC31XX_PAGECTL                  [0x00]: 0x00
    AIC31XX_RESET                    [0x01]: 0x00
    AIC31XX_OT_FLAG                  [0x03]: 0x66 #not overtemp
    AIC31XX_CLKMUX                   [0x04]: 0x03 #pll_clkin=mclk, codec_clkin=pll_clk
    AIC31XX_PLLPR                    [0x05]: 0x91 #pll powered up, p=1, r=1
    AIC31XX_PLLJ                     [0x06]: 0x08 #j=8
    AIC31XX_PLLDMSB                  [0x07]: 0x07 #dmsb = 0111
    AIC31XX_PLLDLSB                  [0x08]: 0x80 #dlsb = 1000 0000 -> 1920
    AIC31XX_NDAC                     [0x0b]: 0x88 #ndac = 8
    AIC31XX_MDAC                     [0x0c]: 0x82 #mdac = 2
    AIC31XX_DOSRMSB                  [0x0d]: 0x00 
    AIC31XX_DOSRLSB                  [0x0e]: 0x80 #dosr = 128
    AIC31XX_MINI_DSP_INPOL           [0x10]: 0x08 #default minidsp interp = 8
    AIC31XX_NADC                     [0x12]: 0x88 #nadc = 8
    AIC31XX_MADC                     [0x13]: 0x82 #madc = 2
    AIC31XX_AOSR                     [0x14]: 0x80 #aosr = 128
    AIC31XX_CLKOUTMUX                [0x19]: 0x00 
    AIC31XX_CLKOUTMVAL               [0x1a]: 0x01 #clkout powered down
    AIC31XX_IFACE1                   [0x1b]: 0x00 #i2s, 16 bit, bclk and wclk are input
    AIC31XX_DATA_OFFSET              [0x1c]: 0x00 
    AIC31XX_IFACE2                   [0x1d]: 0x00
    AIC31XX_BCLKN                    [0x1e]: 0x88 #bclk ndiv powered up, =8 ?! (not needed if bclk is provided?)
    AIC31XX_IFACESEC1                [0x1f]: 0x00 
    AIC31XX_IFACESEC2                [0x20]: 0x00
    AIC31XX_IFACESEC3                [0x21]: 0x00
    AIC31XX_I2C                      [0x22]: 0x00
    AIC31XX_ADCFLAG                  [0x24]: 0x80 #pga applied gain=programmed gain. adc powered down
    AIC31XX_DACFLAG1                 [0x25]: 0x98 #dac powered up, hpout driver powered down, classd driver powered up
    AIC31XX_DACFLAG2                 [0x26]: 0x10 #dac pga gain=programmed gain
    AIC31XX_OFFLAG                   [0x27]: 0x00 #no overflow
    AIC31XX_INTRDACFLAG              [0x2c]: 0x00 #no interrupts
    AIC31XX_INTRADCFLAG              [0x2d]: 0x00
    AIC31XX_INTRDACFLAG2             [0x2e]: 0x00
    AIC31XX_INTRADCFLAG2             [0x2f]: 0x00
    AIC31XX_INT1CTRL                 [0x30]: 0x00
    AIC31XX_INT2CTRL                 [0x31]: 0x00
    AIC31XX_GPIO1                    [0x33]: 0x02 #gpio1 disabled
    AIC31XX_DACPRB                   [0x3c]: 0x01 #prb default
    AIC31XX_ADCPRB                   [0x3d]: 0x04 #prb default =r4
    AIC31XX_DACSETUP                 [0x3f]: 0x94 #dac powered up, data path = left
    AIC31XX_DACMUTE                  [0x40]: 0x00
    AIC31XX_LDACVOL                  [0x41]: 0x00
    AIC31XX_RDACVOL                  [0x42]: 0x00
    AIC31XX_HSDETECT                 [0x43]: 0x00
    AIC31XX_ADCSETUP                 [0x51]: 0x00
    AIC31XX_ADCFGA                   [0x52]: 0x80 #adc channel muted
    AIC31XX_ADCVOL                   [0x53]: 0x00 
    
    
    AIC31XX_HPDRIVER                 [0x9f]: 0x04 #0x1f: hpout driver powered down
    AIC31XX_SPKAMP                   [0xa0]: 0x80 #0x20: class d output driver powered up
    AIC31XX_HPPOP                    [0xa1]: 0x3e #0x21: defaults.
    AIC31XX_SPPGARAMP                [0xa2]: 0x00 
    AIC31XX_DACMIXERROUTE            [0xa3]: 0x40 #0x23: dac routed to mixer amplifier, no analog bypass
    AIC31XX_LANALOGHPL               [0xa4]: 0x7f #0x24: default (analog volume not routed to hpout)
    AIC31XX_RANALOGHPR               [0xa5]: 0x7f #def
    AIC31XX_LANALOGSPL               [0xa6]: 0xff #class d output driver volume control is set to minimum, -78.3dB
    AIC31XX_RANALOGSPR               [0xa7]: 0x7f #def
    AIC31XX_HPLGAIN                  [0xa8]: 0x02 #def, hpout is muted
    AIC31XX_HPRGAIN                  [0xa9]: 0x02 #def
    AIC31XX_SPLGAIN                  [0xaa]: 0x20 #def? reserved write 0s
    AIC31XX_SPRGAIN                  [0xab]: 0x20 #def 
    AIC31XX_HPCONTROL                [0xac]: 0x20 #debounce = 8us
    AIC31XX_MICBIAS                  [0xae]: 0x00 
    AIC31XX_MICPGA                   [0xaf]: 0x80 #reserved
    AIC31XX_MICPGAPI                 [0xb0]: 0x00 #mic1lp, rp, and lm are not selectd for mic pga p terminal
    AIC31XX_MICPGAMI                 [0xb1]: 0x00 #cm and mic1lm not selected for mic pga m terminal
    AIC31XX_MICPGACM                 [0xb2]: 0x00 #mic1lp, rp, and lm inputs are floating
    
    

    此致、
    Mir

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

    尊敬的 Mir:

    非常感谢您的 答复。

    Dtsi:
    /* I2C 上的 TLV320AIC312 */
    &qupv3_se0_i2c{
    状态=“ok";“;
    tlv320aic31xx:tlv320aic31xx@18{
    兼容=“ti、tlv320aic3120“;
    reg =<0x18>;
    状态=“ok";“;
    TI、GPO-CONFIG-1 =<4 1>;//设置 PDM clk 输出以及 CONFIG 低电平和高电平有效
    TI、GPO-CONFIG-2 =<4 1>;
    TI、GPO-CONFIG-3 =<4 1>;
    TI、GPO-CONFIG-4 =<4 1>;
    };
    };

    命令:
    tinymix “从左 DAC 输出左 DAC “ 1.
    Tinymix “扬声器开关“ 1.
    tinymix “PRI_MI2S_RX 音频混频器 MultiMedia1“ 1.
    tinyplay sdcard/test-wav-Hotel-man-ll.wav

    附件 Configuration_code_10220958.7z 包含我们修改的代码和 dtsi 配置。
    我们的使用场景是使用扬声器。
    期待  您的反馈。

    谢谢

    此致、

    Rui

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

    e2e.ti.com/.../Configuration_5F00_code_5F00_10220958.zip

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

    您能否将 I2S 信号的示波器屏幕截图分享到 DAC 中并以扬声器输出进行测量? 而且、如果您使用 alsacontrol GUI、则可以调整输出的音量。

    此致、
    Mir

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

    尊敬的 Mir:

    您可从中获得:


    I2S:
    MCLK 12.28MHz
    BCLK 1.5MHz
    WCLK 48kHz
    DIN


    扬声器输出没有电压差、全部为 2.5V。

    我发现 I2Cdump 中的寄存器值与 aic31xx_regdump_show 中的寄存器值不同
    这是 I2C 转储寄存器:

    I2C_dump.zip 中是 I2C 转储 txt 文件。
    aic31xx_regdump_open、enable_classd_amp 是我们添加的函数。
    需要修改哪些寄存器?

    e2e.ti.com/.../I2C_5F00_dump.zip

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

    您好、

    您称为“en"的“的 regdump 是正确的、是在播放期间获取的、因此 DAC 会显示它已通电。 我还可以看到 D 类在播放期间上电、并且 PLL 值也会发生变化。 唯一处于活动状态的数据路径是左侧数据路径、因此我希望您的数据位于左侧通道上? 我们还应确保您发送的时钟是有效的 I2S 时钟、因为器件需要 I2S。  

    要启用 D 类、这是在页 1 寄存器 0x2a 和 0x20 中完成的。 您可以在数据表的第 65 页上找到一个将数据发送到 D 类放大器的示例脚本。  

    此致、
    Mir

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

    尊敬的 Mir:

    非常感谢您的答复。

    不幸的是、我们仍然无法使用编解码器生成任何声音。
    修改页 1/寄存器 42 无效、仍然没有音频输出。 已上传第 0 页和第 1 页以供参考。

    您会看到一个 ZIP 文件、其中包含测得的 I2S 信号、SPK 输出以及一些可能相关的其他图像。

    您能看一下、如果发现任何不一致之处、请告诉我们吗?
    我们的选项已经用完、一切似乎都已正确配置、但编解码器仍然不会发出声音。

    提前感谢您的帮助。

    此致、
    Rui

    e2e.ti.com/.../I2S_5F00_1024.zip

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

    您好 Rui、

    我看到您的 SPK_4 和 SPKP_3 正在进行开关、因此这是预期行为。 我还看到在寄存器 26 中、D 类驱动器的音量最小、–78.3dB。 如果您使用 alsamixer 或 asound.state、则可以将此音量设置为更高。 希望信号太小而无法驱动您的扬声器、并且没有其他问题。

    此致、
    Mir