大家好、
我在从模式下使用 TLV320AIC3106、并观察无音频。 请提供同样的建议。
SoC 提供以下时钟
MCLK:12.5 MHz
BCK:3.125 MHz
LRCK:48.0 KHz
机器驱动器将 TLV 芯片配置为从模式、但只能听到一些噪声。
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.
大家好、
我在从模式下使用 TLV320AIC3106、并观察无音频。 请提供同样的建议。
SoC 提供以下时钟
MCLK:12.5 MHz
BCK:3.125 MHz
LRCK:48.0 KHz
机器驱动器将 TLV 芯片配置为从模式、但只能听到一些噪声。
您好、Aaron、
感谢您的回复经过一些调整后、我能够听到一些有噪声的声音。
寄存器转储如下所示。
# i2cdump -y 4 0x1b -f
0 1 2 3 4 5 6 7 8 9 A b c d e f
00:00 00 aa 91 c0 00 0A 00 00 02 00 00 00 20
10:20 ff 00 78 00 78 78 78 86 00 Fe 00 00 Fe 00
20:00 00 00 11 c0 00 00 00 00 00 00 00 00 00 00 00 00 8位
30:00 00 00 0f 00 80 00 00 00 0f 00 00 00 00 00
40:8B 0f 00 00 00 80 0f 00 80 00 00 80 00 80 08
50:00 00 80 00 00 00 0b 00 00 00 00 00 80 0b DE 0c
60:00 00 00 00 c0 02 00 00 00 00 00 00 00 00 00 00 00 00
70:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
80:00 00 aa 91 c0 00 0A 00 00 02 00 00 00 20
90:20 ff 00 78 00 78 78 78 86 00 Fe 00 00 Fe 00
A0:00 00 00 11 c0 00 00 00 00 00 00 00 00 00 00 00 8位
B0:00 00 00 0f 00 80 00 00 00 0f 00 00 00 00
C0:8B 0f 00 00 00 80 0f 00 80 00 00 80 00 80 08
D0:00 00 80 00 00 0b 00 00 00 00 00 80 0b DE 0c
E0:00 00 00 00 c0 02 00 00 00 00 00 00 00 00 00 00 00 00
F0:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
有些时钟调整不正确,是否有工具为从机模式生成寄存器值?
您好 Omji、
它看起来 PLL 配置不正确。 您能否确认您使用 MCLK 作为寄存器102中指示的 PLL 输入? 如果是这样、当 P = 1、J = 48且 R = 2时、FS (ref)的计算结果为~589kHz、该值太高。
对于一个12.5MHz 的输入时钟、对于48kHz 采样率、PLL 系数可被设定为如下:
P = 1
R = 1
J = 7
K = 8600
为了实现最低噪声、对于2MHz 以上的输入时钟、R 应该被设定为1。 由于 FS (ref)为48kHz、因此寄存器2可设置为0x00。
此致、
Aaron
您好、Aaron、
感谢您的建议。
i2cset -y 4 0x1b 0x02 0x00 -f
i2cset -y 4 0x1b 0x03 0x91 -f
i2cset -y 4 0x1b 0x04 0x70 -f
i2cset -y 4 0x1b 0x06 0x01 -f
i2cset -y 4 0x1b 0x66 0x00 -f
由于上述噪声、回放期间更新寄存器值会降低、但仍然会看到一些噪声。
另一个观察结果是在机器驱动程序中设置编解码器时钟时、只有我看到'aic3x->SYSCLK'的 sound else 值为0。
sRATE = params_rate (params);
MCLK = 128 *速率;
ERR = snd_soc_da_set_SYSCLK (codec_dai、0、MCLK、 snd_SOC_clock_in);
如果(err < 0){
DEV_ERR (card->dev、"codec_dai clock not set \n");
退货错误;
}