工具/软件:
您好:
我无法让 DAC 输出模拟信号。 但是、通过 I2S 从 ADC 读取数据到我的主机处理器可以正常工作。
我使用以下配置:
MCLK=48kHz 12.288MHz、1.536MHz、WCLK=48kHz
具有内部 LDO 的 3.3V IOVDD。
这是我的 I2C 配置:
codec_write_reg(0x00, 0x00); // Page 0
codec_write_reg(0x01, 0x01); // Reset
// Clock & Interface
codec_write_reg(0x0b, 0x81); // NDAC = 1
codec_write_reg(0x0c, 0x82); // MDAC = 2
codec_write_reg(0x12, 0x81); // NADC = 1
codec_write_reg(0x13, 0x82); // MADC = 2
codec_write_reg(0x0d, 0x00); codec_write_reg(0x0e, 0x80); // DAC OSR = 128
codec_write_reg(0x14, 0x80); // ADC OSR = 128
codec_write_reg(0x3d, 0x01); // PRB_R1
codec_write_reg(0x1b, 0x00); // I2S 16-bit
// Power Supplies
codec_write_reg(0x00, 0x01); // Page 1
codec_write_reg(0x01, 0x08); // Disable weak AVDD-DVDD link
codec_write_reg(0x02, 0x01); // Power AVDD LDO
codec_write_reg(0x14, 0x25); // HP soft step
codec_write_reg(0x0a, 0x4b); // LDOIN config
codec_write_reg(0x3D, 0x00); // ADC PTM_R4
codec_write_reg(0x47, 0x32); // MicPGA delay
codec_write_reg(0x7b, 0x01); // REF charge 40ms
// Routing
codec_write_reg(0x0e, 0x08); // DAC to LOL
codec_write_reg(0x0f, 0x08); // DAC to LOR
codec_write_reg(0x34, 0x80); codec_write_reg(0x36, 0x08); // LINE_IN L
codec_write_reg(0x37, 0x80); codec_write_reg(0x39, 0x08); // LINE_IN R
codec_write_reg(0x12, 0x00); codec_write_reg(0x13, 0x00); // Unmute LOL/LOR
codec_write_reg(0x3b, 0x0c); codec_write_reg(0x3c, 0x0c); // Unmute PGA L/R
codec_write_reg(0x09, 0x3C); // Power LOL/LOR
codec_write_reg(0x00, 0x00); // Back to Page 0
codec_write_reg(0x41, 0x00); codec_write_reg(0x42, 0x00); // DACL/R 0dB
codec_write_reg(0x3f, 0xd5); // Power up DACs
codec_write_reg(0x40, 0x00); // Unmute DAC volume
codec_write_reg(0x51, 0xc0); // Power up ADCs
codec_write_reg(0x52, 0x00); // Unmute ADC volume
这是我当前的编解码器原理图:

由于读取样本工作正常、我假设时钟正常。
我还在 DIN 引脚上看到带有示波器的 I2S 数据。
我无法在 LOL/LOR 输出引脚上测量 CM、对我来说好像通过 I2C 进行了一些错误配置?
我非常感谢在这方面提供的任何帮助。
最佳、Jonas