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: speaker没有声音,寻求codec的调测方式方法,上个帖子误删回复。

Part Number: TLV320AIC3204
SOC通过I2C配置codec,audio数据链路为I2S。codec输出经过运放后连到speaker。

现在执行声音测试程序时,speaker没有任何反应。测试时I2S有数据输出,clk正确,I2C驱动程序也没有报错。示波器测量codec输出在测试前后没有变化。

我先提供这部分的原理图。此外,请支持TLV320AIC3204这款codec的调测方法。

谢谢。

4572.09audio.pdf


上一个帖子不小心将FAE的回复给删了....

------------------------------------------------------------

以下更新当前测量结果:

AVDD,DVDD,reset,示波器测量正常,I2C驱动通信成功。

播放音乐时测量:MCLK 12.288MHz ,BCLK 1.536MHz,WCLK 48KHz,DIN有波形。


我将部分寄存器dump出来,结果如下:

[   83.776969] ----------------register = 1, reg = 0----------------
[   83.778088] ----------------register = 4, reg = 0----------------
[   83.782437] ----------------register = 5, reg = 17----------------
[   83.783894] ----------------register = 6, reg = 4----------------
[   83.784930] ----------------register = 7, reg = 0----------------
[   83.786029] ----------------register = 8, reg = 0----------------
[   83.787063] ----------------register = 11, reg = 1----------------
[   83.788543] ----------------register = 12, reg = 1----------------
[   83.790558] ----------------register = 13, reg = 0----------------
[   83.794219] ----------------register = 14, reg = 128----------------
[   83.795187] ----------------register = 18, reg = 1----------------
[   83.796158] ----------------register = 19, reg = 1----------------
[   83.797119] ----------------register = 20, reg = 128----------------
[   83.798089] ----------------register = 25, reg = 0----------------
[   83.800472] ----------------register = 26, reg = 1----------------
[   83.801479] ----------------register = 27, reg = 0----------------
[   83.802450] ----------------register = 28, reg = 0----------------
[   83.803355] ----------------register = 29, reg = 0----------------
[   83.804249] ----------------register = 30, reg = 1----------------
[   83.805157] ----------------register = 31, reg = 0----------------
[   83.806052] ----------------register = 32, reg = 0----------------
[   83.806945] ----------------register = 33, reg = 0----------------
[   83.807843] ----------------register = 53, reg = 18----------------
[   83.809454] ----------------register = 54, reg = 3----------------
[   83.810363] ----------------register = 60, reg = 1----------------
[   83.811252] ----------------register = 61, reg = 1----------------
[   83.812161] ----------------register = 63, reg = 20----------------
[   83.813057] ----------------register = 64, reg = 12----------------
[   83.813962] ----------------register = 65, reg = 216----------------
[   83.814853] ----------------register = 66, reg = 216----------------
[   83.815753] ----------------register = 67, reg = 0----------------
[   83.816657] ----------------register = 81, reg = 0----------------
[   83.817551] ----------------register = 82, reg = 136----------------
[   83.819093] ----------------register = 83, reg = 0----------------
[   83.820004] ----------------register = 84, reg = 0----------------
[   83.820899] ----------------register = 86, reg = 0----------------
[   83.821795] ----------------register = 87, reg = 0----------------
[   83.823330] ----------------register = 88, reg = 127----------------
[   83.824231] ----------------register = 89, reg = 0----------------
[   83.825133] ----------------register = 90, reg = 0----------------
[   83.826037] ----------------register = 91, reg = 0----------------
[   83.826946] ----------------register = 92, reg = 0----------------
[   83.827846] ----------------register = 94, reg = 0----------------
[   83.829708] ----------------register = 95, reg = 0----------------
[   83.830811] ----------------register = 96, reg = 127----------------
[   83.831675] ----------------register = 97, reg = 0----------------
[   83.832535] ----------------register = 98, reg = 0----------------
[   83.833380] ----------------register = 99, reg = 0----------------
[   83.834232] ----------------register = 100, reg = 0----------------
[   83.835331] ----------------register = 129, reg = 0----------------
[   83.836195] ----------------register = 130, reg = 0----------------
[   83.837048] ----------------register = 137, reg = 0----------------
[   83.837914] ----------------register = 138, reg = 0----------------
[   83.842831] ----------------register = 140, reg = 0----------------
[   83.843709] ----------------register = 141, reg = 0----------------
[   83.844581] ----------------register = 142, reg = 0----------------
[   83.845449] ----------------register = 143, reg = 0----------------
[   83.846326] ----------------register = 144, reg = 64----------------
[   83.847194] ----------------register = 145, reg = 64----------------
[   83.848042] ----------------register = 146, reg = 64----------------
[   83.851371] ----------------register = 147, reg = 64----------------
[   83.852612] ----------------register = 148, reg = 0----------------
[   83.853588] ----------------register = 179, reg = 0----------------
[   83.854555] ----------------register = 180, reg = 0----------------
[   83.855533] ----------------register = 182, reg = 64----------------
[   83.856483] ----------------register = 183, reg = 0----------------
[   83.857381] ----------------register = 185, reg = 64----------------
[   83.859096] ----------------register = 186, reg = 0----------------
[   83.863780] ----------------register = 187, reg = 128----------------
[   83.864636] ----------------register = 188, reg = 128----------------
  • register64 dump值是之前12,改了程序現在dump出來是243,也还是没有声音。

  • TI能否根据我们的设计提供一份正确的寄存器配置表?

  • 您好,

    未使用的输入,建议通过~0.47uF电容接GND,以防止未端接输入上的噪声拾取;模拟输入具有直流偏置,因此IN3_L不应直接接GND;原理图可参考TLV320AIC3204EVM:https://www.ti.com.cn/cn/lit/ug/slau266a/slau266a.pdf

    您是想将I2S数字音频信号播放出来吗?您需要的采样率是多少?

    上面寄存器配置都是page0页的吗?我看到您NDAC、MDAC都没启动

  • 非常感谢你提出的原理图的修改建议,我们在下一版作出修改。基于当前的硬件,我们依然想要达到出声的目的。

    我上面有提到,播放音频时我们有测量I2S的各个信号,以下是测量结果:

    MCLK 12.288MHz ,BCLK 1.536MHz,WCLK 48KHz,DIN有波形。采样率是48K。

    上面的寄存器不只是page0的,我们是将驱动的.h文件中例举的寄存器都打印了出来。如下:

    #define AIC32X4_PAGE1 128

    #define AIC32X4_PSEL 0
    #define AIC32X4_RESET 1
    #define AIC32X4_CLKMUX 4
    #define AIC32X4_PLLPR 5
    #define AIC32X4_PLLJ 6
    #define AIC32X4_PLLDMSB 7
    #define AIC32X4_PLLDLSB 8
    #define AIC32X4_NDAC 11
    #define AIC32X4_MDAC 12
    #define AIC32X4_DOSRMSB 13
    #define AIC32X4_DOSRLSB 14
    #define AIC32X4_NADC 18
    #define AIC32X4_MADC 19
    #define AIC32X4_AOSR 20
    #define AIC32X4_CLKMUX2 25
    #define AIC32X4_CLKOUTM 26
    #define AIC32X4_IFACE1 27
    #define AIC32X4_IFACE2 28
    #define AIC32X4_IFACE3 29
    #define AIC32X4_BCLKN 30
    #define AIC32X4_IFACE4 31
    #define AIC32X4_IFACE5 32
    #define AIC32X4_IFACE6 33
    #define AIC32X4_DOUTCTL 53
    #define AIC32X4_DINCTL 54
    #define AIC32X4_DACSPB 60
    #define AIC32X4_ADCSPB 61
    #define AIC32X4_DACSETUP 63
    #define AIC32X4_DACMUTE 64
    #define AIC32X4_LDACVOL 65
    #define AIC32X4_RDACVOL 66
    #define AIC32X4_RHETDET 67
    #define AIC32X4_ADCSETUP 81
    #define AIC32X4_ADCFGA 82
    #define AIC32X4_LADCVOL 83
    #define AIC32X4_RADCVOL 84
    #define AIC32X4_LAGC1 86
    #define AIC32X4_LAGC2 87
    #define AIC32X4_LAGC3 88
    #define AIC32X4_LAGC4 89
    #define AIC32X4_LAGC5 90
    #define AIC32X4_LAGC6 91
    #define AIC32X4_LAGC7 92
    #define AIC32X4_RAGC1 94
    #define AIC32X4_RAGC2 95
    #define AIC32X4_RAGC3 96
    #define AIC32X4_RAGC4 97
    #define AIC32X4_RAGC5 98
    #define AIC32X4_RAGC6 99
    #define AIC32X4_RAGC7 100
    #define AIC32X4_PWRCFG (AIC32X4_PAGE1 + 1)
    #define AIC32X4_LDOCTL (AIC32X4_PAGE1 + 2)
    #define AIC32X4_OUTPWRCTL (AIC32X4_PAGE1 + 9)
    #define AIC32X4_CMMODE (AIC32X4_PAGE1 + 10)
    #define AIC32X4_HPLROUTE (AIC32X4_PAGE1 + 12)
    #define AIC32X4_HPRROUTE (AIC32X4_PAGE1 + 13)
    #define AIC32X4_LOLROUTE (AIC32X4_PAGE1 + 14)
    #define AIC32X4_LORROUTE (AIC32X4_PAGE1 + 15)
    #define AIC32X4_HPLGAIN (AIC32X4_PAGE1 + 16)
    #define AIC32X4_HPRGAIN (AIC32X4_PAGE1 + 17)
    #define AIC32X4_LOLGAIN (AIC32X4_PAGE1 + 18)
    #define AIC32X4_LORGAIN (AIC32X4_PAGE1 + 19)
    #define AIC32X4_HEADSTART (AIC32X4_PAGE1 + 20)
    #define AIC32X4_MICBIAS (AIC32X4_PAGE1 + 51)
    #define AIC32X4_LMICPGAPIN (AIC32X4_PAGE1 + 52)
    #define AIC32X4_LMICPGANIN (AIC32X4_PAGE1 + 54)
    #define AIC32X4_RMICPGAPIN (AIC32X4_PAGE1 + 55)
    #define AIC32X4_RMICPGANIN (AIC32X4_PAGE1 + 57)
    #define AIC32X4_FLOATINGINPUT (AIC32X4_PAGE1 + 58)
    #define AIC32X4_LMICPGAVOL (AIC32X4_PAGE1 + 59)
    #define AIC32X4_RMICPGAVOL (AIC32X4_PAGE1 + 60)
    这份驱动是我们高通base里自带的,我怀疑它与我们当前的使用场景不匹配。你能提供一个与我们原理图匹配的寄存器设置吗?
  • 还有个问题我想请教,我们只能通过这种方式交流吗?可以加微信沟通吗?

  • 你好,Amy,能支持下吗?项目有点急。我们没有经验自己去改寄存器配置,还希望TI能支持下。

  • 未使用的输入悬空,根据我们的经验即使有输出也会有很大噪声的;

    模拟输入具有直流偏置,因此IN3_L不应直接接GND,如果IN3_L直接接GND,那么输入信号将不能被偏置在正确的电压下,也不会有正常的输出;

    TLV320AIC3204产品首页,如下链接,在“设计与开发”-->"软件开发"部分,有适用于 TLV320AIC32X4 的 Linux 驱动程序,您可以下载,希望对您有用:

    https://www.ti.com.cn/product/cn/TLV320AIC3204?keyMatch=TLV320AIC3204&tisearch=search-everything&usecase=GPN#design-development##software-development

    TLV320AIC3204应用指南,如下链接,有示例代码,您可以参考:

    https://www.ti.com/cn/lit/ml/slaa557/slaa557.pdf

  • 我们在AVDD与DVDD间接入一个二极管后好用了。请问如果硬件不修改,不上这个二极管,能通过软件配置实现吗?

  • 在调试中发现当tinymix set "LO Driver Gain Volume" 6 6时,波形就会出现失真, volume只能设置0-5吗? 还是有其他寄存器可以配合调试?

  • 关于AVDD与DVDD,未接二极管时它们分别有正常的输出吗?如果没有,检查下寄存器Page 1 / Register 2的D0是否置1,即AVDD LDO Powered up;

  • 您这里说“当tinymix set "LO Driver Gain Volume" 6 6时,波形就会出现失真,”是什么样的失真?是削波失真吗

  • LO实测输出幅值是多少?Page 1 / Register 10 的D3 D1 D0配置的分别是多少?配置为D3=1;D1=1;D0=1试试,同时需LDOIN供电3.3V

  • 是,"LO Driver Gain Volume" 设置为6时波峰被削了,0-5时是好的

  • LDOIN供电3.3V,然后Page 1 / Register 10 配置为D3=1;D1=1;D0=1,还会削波吗

    您可以实测LO输出幅值吗,是多少

  • 削峰问题和AVDD的问题都按照您的指导解决了。十分感谢!

    我还想请教下,如果客户问我音量设置的范围,我应该如何解答,这也是我的困惑。现在是只能0-6区间吗?

  • 是什么音量的控制范围,下面应用手册都有说明

    https://www.ti.com/cn/lit/ml/slaa557/slaa557.pdf