sgtl5000录音没声音

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

sgtl5000录音没声音

1,621 Views
tianyi2
Contributor I

现象描述如下:

1.可以播放声音。

2.播放声音时录音,会听到有杂声的录音歌曲。这里选择的寄存器是line_in->adc->i2s_dout(0x0002寄存器值为0x73, 0x000a寄存器值为0x10,0x0024寄存器值为0x26)

3.不播放声音时录音,录音没有任何声音。line_in->adc->i2s_dout(0x0002寄存器值为0x72, 0x000a寄存器值为0x10,0x0024寄存器值为0x26).

请分析一下可能的原因!

谢谢!

0 Kudos
6 Replies

1,433 Views
weidong_sun
NXP TechSupport
NXP TechSupport

Hi

播放路径和录音路径如下:

pastedImage_1.png

0x0002寄存器:

         DAP关掉的配置:采用上面3的路径配置,该寄存器配置为:

CHIP_DIG_POWER = 0x63

0x000A寄存器:

         CHIP_SSS_CTRL = 0x10,没问题。

0x0024 寄存器:

         CHIP_ANA_CTRL = 0x22

pastedImage_2.png

         你要用的是MIC IN,而不是LINE IN.

Have a nice day!

BR,

Weidong

0 Kudos

1,433 Views
tianyi2
Contributor I

按照您的配置,我重复了现象描述中的第3条,还是没有任何声音。一使用arecord命令后,驱动马上把0x02寄存器与成了0x72,我是手动用i2c命令把0x02改成了0x63。请问一下,这有什么不妥,或者还有其它原因。

谢谢!

0 Kudos

1,433 Views
weidong_sun
NXP TechSupport
NXP TechSupport

测量一下MIC偏压,是否有。

Weidong

0 Kudos

1,433 Views
tianyi2
Contributor I

Hi,

我看了sgtl在其它板子上(mxs,imx,tegra)的例子,发现其余的板子上的设备树都有audio-routing节点,在xilinx上是否也需要这样的节点!

Thanks!

0 Kudos

1,433 Views
tianyi2
Contributor I

Hi,

我仔细看了一下驱动代码,发现有可疑的地方,如下,是不是需要改写以下地方

static const char *hp_mux_text[] = {
"DAC", "LINE_IN"
};

static SOC_ENUM_SINGLE_DECL(hp_enum,
SGTL5000_CHIP_ANA_CTRL, 6,
hp_mux_text);

static const struct snd_kcontrol_new hp_mux =
SOC_DAPM_ENUM("Headphone Mux", hp_enum);

/* input sources for DAC */
static const char *dac_mux_text[] = {
"ADC", "I2S", "Rsvrd", "DAP"
};

static SOC_ENUM_SINGLE_DECL(dac_enum,
SGTL5000_CHIP_SSS_CTRL, SGTL5000_DAC_SEL_SHIFT,
dac_mux_text);

static const struct snd_kcontrol_new dac_mux =
SOC_DAPM_ENUM("Digital Input Mux", dac_enum);

/* input sources for DAP */
static const char *dap_mux_text[] = {
"ADC", "I2S"
};

static SOC_ENUM_SINGLE_DECL(dap_enum,
SGTL5000_CHIP_SSS_CTRL, SGTL5000_DAP_SEL_SHIFT,
dap_mux_text);

static const struct snd_kcontrol_new dap_mux =
SOC_DAPM_ENUM("DAP Mux", dap_enum);

/* input sources for DAP mix */
static const char *dapmix_mux_text[] = {
"ADC", "I2S"
};

谢谢!

0 Kudos

1,433 Views
tianyi2
Contributor I

Hi,

我试过将下列值设成0x1,0x2,0x3过,只有0x2时有一点杂音,但0x1,0x3时全部是杂音。还有什么遗漏的吗?

pastedImage_1.png

Thanks

0 Kudos