降级:
aic3204作为从器件、MCLK = 12.288M、采样48K、连接到 In3R/In3L、录制时无声音。 下面是代码。
您能否帮助检查以下代码或帮助提供可行的寄存器配置?
/*配置 AIC3204 */
aic3204_write (IIC_DEVICE_ADDR[num]、0、0x0);//选择 PAGE 0
aic3204_write (IIC_DEVICE_ADDR[num]、1、0x1);//重置编解码器
mdelay (20);
aic3204_write (IIC_DEVICE_ADDR[num]、0、0x1);//选择第1页
aic3204_write (IIC_DEVICE_ADDR[num]、1、0x8);//禁用 AVDD 与 DVDD 的弱连接
aic3204_write (IIC_DEVICE_addr[num]、2、0x1);//启用模拟块,使用 LDO 电源(是否正在使用 LDO 电源? 如果是、则需要设置该寄存器的时钟以使用 LDO)。
/* PLL 和时钟配置和上电*/
// MCLK=12.288m,FS=48K,配置:P=R=1,j=7,D=0, mAdc=2、nadc=7、aosr=128
aic3204_write (IIC_DEVICE_ADDR[num]、0、0x0);//选择 PAGE 0
//aic3204_write (IIC_DEVICE_addr[num]、27、0x4d);// BCLK 和 WCLK 设置为 AIC3204 (Master) 00的输出:音频接口= DSP
aic3204_write (IIC_DEVICE_ADDR[num]、27、0x1);// BCLK 和 WCLK 设置为输入 AIC3204 (slave) 00:音频接口= I2S
aic3204_write (IIC_DEVICE_ADDR[num]、28、0x0);//数据 ofset = 0
aic3204_write (IIC_DEVICE_ADDR[num]、4、0x3);// PLL 设置:PLLCLK <- MCLK、CODE_CLKIN <-PLL CLK
aic3204_write (IIC_DEVICE_ADDR[num]、6、0x7);//** PLL 设置:j=7
aic3204_write (IIC_DEVICE_ADDR[num]、7、0x0);// PLL 设置:hi_Byte (D)
aic3204_write (IIC_DEVICE_ADDR[num]、8、0x0);// PLL 设置:LO_BYTE (D)
aic3204_write (IIC_DEVICE_addr[num]、30、0x80);//仅适用于主机模式下的每帧32位时钟(确保 BCLK >=[(每通道#位)* 2]
// BCLK=DAC_CLK/N =(12288000/8)= 1.536MHz = 32*FS
//进行48KHz 采样
aic3204_write (IIC_DEVICE_ADDR[num]、5、0x91);// PLL 设置:为 PLL 加电、P=1和 R=1
aic3204_write (IIC_DEVICE_ADDR[num]、13、0x01);// Hi Byte (DOSR) for DOSR = 256十进制或0x01080 DAC oversamping
aic3204_write (IIC_DEVICE_ADDR[num]、14、0x00);// Lo_Byte (DOSR)、DOSR = 256十进制或0x0100
aic3204_write (IIC_DEVICE_ADDR[num]、20、0x00);// AOSR = 256十进制或0x0000、抽取滤波器为1至6
aic3204_write (IIC_DEVICE_ADDR[num]、11、0x87);//为 NDAC 加电并将 NDAC 值设置为3 (以下注释与这些值不同)
aic3204_write (IIC_DEVICE_ADDR[num]、12、0x82);//为 MDAC 加电并将 MDAC 值设置为8 (下面的注释与这些值不同)
aic3204_write (IIC_DEVICE_ADDR[num]、18、0x82);//为 NADC 加电并将 NADC 值设置为8 (以下注释与这些值不同)
aic3204_write (IIC_DEVICE_ADDR[num]、19、0x87);//加电 mAdc 并将 mAdc 值设置为6 (以下注释与这些值不同)
aic3204_write (IIC_DEVICE_ADDR[num]、20、0x80);// AOSR = 128 (默认值)。
aic3204_write (IIC_DEVICE_ADDR[num]、60、0x19);//为哔声发生器加电 PRB_P25可选择 ADC (录制)信号处理块
aic3204_write (IIC_DEVICE_ADDR[num]、61、0x01);// ADC 单处理块 PRB_R1 ADC 信号处理块控制寄存器
aic3204_write (IIC_DEVICE_ADDR[num]、48、0xff);//加电 mAdc 并将 mAdc 值设置为6 (以下注释与这些值不同)
aic3204_write (IIC_DEVICE_ADDR[num]、49、0xff);//为哔声发生器加电 PRB_P25
/* DAC 布线和上电*/
aic3204_write (IIC_DEVICE_ADDR[num]、0、0x01);//选择第1页
aic3204_write (IIC_DEVICE_ADDR[num]、12、0x08);// LDAC AFIR 路由到 HPL
aic3204_write (IIC_DEVICE_addr[num]、13、0x08);// RDAC AFIR 路由到 HPR &&&&&&
aic3204_write (IIC_DEVICE_ADDR[num]、14、0x00);//右侧通道 DAC 重建滤波器的负极端子未路由到 LOL
aic3204_write (IIC_DEVICE_ADDR[num]、15、0x00);//右侧通道 DAC 重建滤波器输出未路由到 LOR
aic3204_write (IIC_DEVICE_ADDR[num]、0、0x00);//选择 PAGE 0
aic3204_write (IIC_DEVICE_addr[num]、64、0x02);//左 vol =右 vol
aic3204_write (IIC_DEVICE_ADDR[num]、65、0x00);//左 DAC 增益至0dB VOL;右跟踪左侧
aic3204_write (IIC_DEVICE_addr[num]、66、0x81);//右静音
aic3204_write (IIC_DEVICE_ADDR[num]、63、0xd4);//为左、右数据路径加电并设置通道
aic3204_write (IIC_DEVICE_ADDR[num]、0、0x01);//选择第1页
aic3204_write (IIC_DEVICE_addr[num]、20、0x69);//软步长、去弹出、 6个时间常数、6k 欧姆。
aic3204_write (IIC_DEVICE_addr[num]、16、0x1d);//取消 HPL 静音,29dB 增益
aic3204_write (IIC_DEVICE_ADDR[num]、17、0x3a);//取消 HPR 静音,-6dB 增益
aic3204_write (IIC_DEVICE_ADDR[num]、9、0x30);//加电 HPL、HPR
aic3204_write (IIC_DEVICE_ADDR[num]、10、0x33);// HP 由 LDOIN 供电、CM 电压= 1.65V
aic3204_write (IIC_DEVICE_ADDR[num]、0、0x00);//选择 PAGE 0
mdelay (20);//等待
aic3204_write (IIC_DEVICE_addr[num]、16、15);//取消 HPL 静音设置增益
aic3204_write (IIC_DEVICE_addr[num]、17、00);//取消 HPR 设为增益
/* ADC 路由和上电*/
aic3204_write (IIC_DEVICE_addr[num]、0、1);//选择第1页
//aic3204_write (IIC_DEVICE_addr[num]、52、0x10);//IN2L 路由到左侧具有40K 电阻的 MICPGA
//aic3204_write (IIC_DEVICE_addr[num]、55、0x00);//IN2R 未路由到右侧 MICPGA
aic3204_write (IIC_DEVICE_ADDR[num]、52、0x04);//IN3L 路由到具有10K 电阻的左 MICPGA
aic3204_write (IIC_DEVICE_ADDR[num]、55、0x04);//IN3R 未路由到右侧 MICPGA
aic3204_write (IIC_DEVICE_ADDR[num]、54、0x03);// CM 通过 CM2L 以40K 电阻路由到左侧 MICPGA
aic3204_write (IIC_DEVICE_ADDR[num]、57、0xC0);// CM 通过 CM2L 以40K 电阻路由到右侧 MICPGA
//aic3204_write (IIC_DEVICE_addr[num]、59、0x80);// MIC_PGA_L 取消静音
//aic3204_write (IIC_DEVICE_addr[num]、60、0x80);// MIC_PGA_R 取消静音
aic3204_write (IIC_DEVICE_ADDR[num]、59、0x0C);// MIC_PGA_L 取消静音
aic3204_write (IIC_DEVICE_ADDR[num]、60、0x0C);// MIC_PGA_R 取消静音
aic3204_write (IIC_DEVICE_ADDR[num]、0、0);//选择 PAGE 0
//aic3204_write (IIC_DEVICE_addr[num]、81、0xa0);//向左和向右启动 ADC
//aic3204_write (IIC_DEVICE_addr[num]、82、0x4);//取消左右 ADC 的静音
aic3204_write (IIC_DEVICE_ADDR[num]、81、0xC0);//为左侧和右侧 ADC 加电
aic3204_write (IIC_DEVICE_ADDR[num]、82、0x00);//取消左右 ADC 的静音