请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
部件号:LM4.935万
工具/软件:Linux
我有一个连接到LM4.935万的环回PCM模块。 当我测试没有声音 时,当我通过 左/右 MIC输入测试AUX OUT方向时,没有问题。 我认为可能是相同的ADC/DAC配置错误。请帮助检查。
LM4.935万从属 MCLK 2M,左/右帧速率128K。
lm4.935万基本设置。
Snd_SOC_WRITE (编解码器,0x00,0x00);
Snd_SOC_WRITE (编解码器,0x01,0x00);
Snd_SOC_WRITE (CODEC,0x02,0x0c); //从2.048M到300kHz (6.5 * 2-1=12=0xc)
Snd_SOC_WRITE (编解码器,0x03,0x00);
Snd_SOC_WRITE (编解码器,0x01,0x00);
Snd_SOC_WRITE (CODEC,0x02,0x0c); //从2.048M到300kHz (6.5 * 2-1=12=0xc)
Snd_SOC_WRITE (编解码器,0x03,0x00);
snd_so_write(codec, 0x10, 0x00); //spk,全部关闭
Snd_SOC_WRITE (编解码器,0x11,0x03); // DAC至耳机L
Snd_SOC_WRITE (编解码器,0x12,0x03); // DAC至耳机R
Snd_SOC_WRITE (CODEC,0x13,0x03); // DAC 至辅助输出
Snd_SOC_WRITE (编解码器,0x11,0x03); // DAC至耳机L
Snd_SOC_WRITE (编解码器,0x12,0x03); // DAC至耳机R
Snd_SOC_WRITE (CODEC,0x13,0x03); // DAC 至辅助输出
Snd_SOC_WRITE (编解码器,0x15,0x0c); //ADC输入选择,MIC
Snd_SOC_WRITE (CODEC,0x16,0x0F); //麦克风级别l 36DB
Snd_SOC_WRITE (CODEC,0x17,0x0F); //麦克风级别r 36DB
Snd_SOC_WRITE (CODEC,0x20,0x03); //ADC_BASIC单色,默认为128 OSR,MCLK
Snd_SOC_WRITE (CODEC,0x21,0x01); //ADC_CLOCK 2048 /[2*128 (OSR)*8 (8K样本)]
Snd_SOC_WRITE (编解码器,0x30,0x01); //128 OSR 和 MCLK源
Snd_SOC_WRITE (编解码器,0x31,0x01); //已调平1
Snd_SOC_WRITE (CODEC,0x16,0x0F); //麦克风级别l 36DB
Snd_SOC_WRITE (CODEC,0x17,0x0F); //麦克风级别r 36DB
Snd_SOC_WRITE (CODEC,0x20,0x03); //ADC_BASIC单色,默认为128 OSR,MCLK
Snd_SOC_WRITE (CODEC,0x21,0x01); //ADC_CLOCK 2048 /[2*128 (OSR)*8 (8K样本)]
Snd_SOC_WRITE (编解码器,0x30,0x01); //128 OSR 和 MCLK源
Snd_SOC_WRITE (编解码器,0x31,0x01); //已调平1
snd_so_write (codec,0x40,0x12); //端口级别 port1&&端口2 0dB
Snd_SOC_WRITE (CODEC,0x41,0x00); // ADC电平全部为0dB
Snd_SOC_WRITE (编解码器,0x42,0x25); //来自ADC的单声道
Snd_SOC_WRITE (CODEC,0x44,0x09); //请 选择DAC的1 l ,需要重新检查,单声道模式是否需要删除R??
Snd_SOC_WRITE (CODEC,0x41,0x00); // ADC电平全部为0dB
Snd_SOC_WRITE (编解码器,0x42,0x25); //来自ADC的单声道
Snd_SOC_WRITE (CODEC,0x44,0x09); //请 选择DAC的1 l ,需要重新检查,单声道模式是否需要删除R??
//snd_so_write(codec, 0x45, 0x09); //????
Snd_SOC_WRITE (编解码器,0x50,0x3e); //AUDIO_Port1_BASIC
snd_so_write (codec,0x51,0x1f);
snd_soc_write(codec, 0x53, 0x0a); //mono 16bits&& sync width 1时钟 看起来像msm01接收只有32位数据 37或0A?
Snd_SOC_WRITE (CODEC,0x54,0x1b);//TX Rx两个16位
Snd_SOC_WRITE (编解码器,0x55,0x02);//Rx模式,MSB, PCM短路
Snd_SOC_WRITE (编解码器,0x56,0x02);//TX模式,MSB, PCM短路
snd_so_write (codec,0x51,0x1f);
snd_soc_write(codec, 0x53, 0x0a); //mono 16bits&& sync width 1时钟 看起来像msm01接收只有32位数据 37或0A?
Snd_SOC_WRITE (CODEC,0x54,0x1b);//TX Rx两个16位
Snd_SOC_WRITE (编解码器,0x55,0x02);//Rx模式,MSB, PCM短路
Snd_SOC_WRITE (编解码器,0x56,0x02);//TX模式,MSB, PCM短路
// snd_so_write(codec, 0x23, 0x0F); //adc_mixer ??
Snd_SOC_WRITE (CODEC,0x80,0x00); //ADC_Effects _HPF
Snd_SOC_WRITE (编解码器,0x84,0x0a);
Snd_SOC_WRITE (编解码器,0x85,0x0a);
Snd_SOC_WRITE (编解码器,0x86,0x0a);
Snd_SOC_WRITE (编解码器,0x87,0x1f);
Snd_SOC_WRITE (编解码器,0x89,0x33);
Snd_SOC_WRITE (编解码器,0x8A,0x33);
Snd_SOC_WRITE (编解码器,0xA0,0x02);
Snd_SOC_WRITE (编解码器,0xA0,0x0a);
snd_so_write (codec,0xa4,0x0a);
Snd_SOC_WRITE (编解码器,0xA5,0x0a);
snd_so_write (codec,0xa6,0x33);
Snd_SOC_WRITE (CODEC,0x80,0x00); //ADC_Effects _HPF
Snd_SOC_WRITE (编解码器,0x84,0x0a);
Snd_SOC_WRITE (编解码器,0x85,0x0a);
Snd_SOC_WRITE (编解码器,0x86,0x0a);
Snd_SOC_WRITE (编解码器,0x87,0x1f);
Snd_SOC_WRITE (编解码器,0x89,0x33);
Snd_SOC_WRITE (编解码器,0x8A,0x33);
Snd_SOC_WRITE (编解码器,0xA0,0x02);
Snd_SOC_WRITE (编解码器,0xA0,0x0a);
snd_so_write (codec,0xa4,0x0a);
Snd_SOC_WRITE (编解码器,0xA5,0x0a);
snd_so_write (codec,0xa6,0x33);
Snd_SOC_WRITE (CODEC,0xa8,0x1f); // 左侧DAC级别
Snd_SOC_WRITE (CODEC,0xa9,0x1f); //右DAC级别
Snd_SOC_WRITE (CODEC,0xa9,0x1f); //右DAC级别
snd_so_write (codec,0xf0,0x00);
Snd_SOC_WRITE (编解码器,0x00,0x01);
pMC_clk_d=snd_so_read (编码解码器,0x02);
PR_ERR ("I2C读取PMC_CLK_DIV:%d\n",PMC_clk_d);
Snd_SOC_WRITE (编解码器,0x00,0x01);
pMC_clk_d=snd_so_read (编码解码器,0x02);
PR_ERR ("I2C读取PMC_CLK_DIV:%d\n",PMC_clk_d);
lm4.935万路由设置。
