您好、
在 QCS6490 平台上配置 TLV320AIC3120 后(使用 AOSP 13)、编解码器坚持不工作。 似乎一切都是正确的,但不知何故编解码器没有产生任何声音。
您能否检查我们的日志和 tlv320aic31xx.c 驱动程序以了解我们是否正确配置了芯片? tlv320aic31xx.h tlv320aic31xx.c

谢谢。
此致、
Rui
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.
您好、
在 QCS6490 平台上配置 TLV320AIC3120 后(使用 AOSP 13)、编解码器坚持不工作。 似乎一切都是正确的,但不知何故编解码器没有产生任何声音。
您能否检查我们的日志和 tlv320aic31xx.c 驱动程序以了解我们是否正确配置了芯片? tlv320aic31xx.h tlv320aic31xx.c

谢谢。
此致、
Rui
尊敬的 Mir:
Attached 您可以在尝试回放期间找到寄存器转储。
希望这有所帮助。
感谢你的帮助。
此致、
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
尊敬的 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 是我们添加的函数。
需要修改哪些寄存器?
您好、
您称为“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