你好,
我在配置tlv320aic3104时,打算用MIC2L连到left ADC,然后再通过DAC_L1给到HPLOUT。发现HPLOUT没有声音。
当用PGA_L直接连到HPLOUT就有声音。我的mclk 是外部12MHz时钟,代码如下:
//PLL 48KHz//
I2C1_Write(3,0×81); //PLL_EN=1(D7),PLL_Q=0(D6-D3),PLL_P=1(D2-D0)
I2C1_Write(8,0xd0); //BCLK&WCLK output
I2C1_Write(4,0×20); //PLL_J=8(D7-D2)
I2C1_Write(5,0x1e); //PLL_D_MSB(D7-D0) D=1920—–48k
I2C1_Write(6,0×00); //PLL_D_LSB(D7-D2)
I2C1_Write(11,0×01); //PLL_R=1(D2-D0)
delay_ms(100);
I2C1_Write(2,0×00); //Fs = Fs(ref)
I2C1_Write(12,0×44); //Left-ADC high-pass filter frequency = 0.0045 Fs,Left-DAC de-emphasis filter enabled
I2C1_Write(17,0x0f); //route Mic2L to the Left ADC, 0dB,
I2C1_Write(19,0x7c); //Left-ADC channel is powered up
I2C1_Write(15,0×28); //unmute Left PGA, set gain to 20 dB
I2C1_Write(7,0x0A); //Left-DAC data path plays left-channel input data
I2C1_Write(37,0×80); //Left DAC is powered up, HPLCOM configured as differential of HPLOUT
I2C1_Write(43,0×00); //The left-DAC channel is not muted,0db
I2C1_Write(47,0×80); //DAC_L1 is routed to HPLOUT,0db
I2C1_Write(14,0×80); //Programs high-power outputs for ac-coupled driver configuration
I2C1_Write(51,0x0f); //HPLOUT is not muted,HPLOUT is fully powered up,0db
user151383853:
有没有验证一下 ADC 的工作情况, 正常否
Alix Wan:
你好,我看你代码里:I2C1_Write(17,0x0f); //route Mic2L to the Left ADC, 0dB,
17写0f手册里写的是没有连接到left ADC.
请详细解释一下你这里的系统配置思路,谢谢!
user5114453:
回复 Alix Wan:
你好Alix ,
您红色圈出的部分是说寄存器17低4位,如果全1是断开MIC2R。我没有用MIC2R,用的MIC2L。
整体连接思路是MIC2L—>Left ADC—->Left DAC—->HPLOUT,但是没有声音。
user5114453:
回复 user151383853:
你好 Airwill ,
您能说下怎么验证ADC是否正常吗?我查过WCLK/DOUT信号,正常。
Alix Wan:
回复 user5114453:
Hi Jason,
很抱歉,我们芯片内部不支持直接配置:MIC2L—>Left ADC—->Left DAC—->HPLOUT. 请参考如下内部原理图:
MIC2L没有直接到达left ADC的路径:
建议你根据系统要求,基于上图的信号数据链路,选取符合要求的方案。因为不清楚你的需求,这里举个简单例子,比如:MIC2L—>DOUTR,然后再通过外部输入DINL再进入到Left DAC–> HPLOUT.
如果我的回答解决了你的问题,请点击采纳,谢谢!
user5114453:
回复 Alix Wan:
Hi Alix,
多谢您解答。上图中左上角是MIC2L,到HPLOUT的链路应该是有的(抱歉,半天没能把截图上传上来)。但是中间经过一个开关SW-D1,如果它不闭合那么ADC_L的数据必然走不过去,HPLOUT也就没有声音了。资料里说只有DAC_L/DAC_R都关闭时才会让SW-D1断开DAC,而我是使能了DAC_L的,仍然很疑惑。
user5114453:
回复 user5114453:
我把SPI数据线接上DSP数据正常,现在能肯定的是ADC正常工作了,问题应该在DAC!
Alix Wan:
回复 user5114453:
Hi Jason,
很抱歉,回复延迟。请问如下理解是否正确:
1. 你实际想要配置的详细信号路径是:MIC2L–>PGA–>ADC–>SW-D1–>effects–>volume control–>DAC_L–>HPLOUT。 也就是说,信号不是经过ADC后直接经过Dout输出到片外,然后经过处理器处理后经过DIN再送回到DACL,最后在HPLOUT输出。请问对吗?
2. 你说把SPI的数据线接上DSP数据正常,请问你是通过外部处理器(例如DSP )从可以配置成left- or right-justified, I2S, DSP, 或者TDM模式的Audio data serial interface来读取数据,从而排除ADC的问题的是吗?
3. 如果你定位问题可能在DAC,那么请问,你有尝试过使用外部处理器直接从DIN给DACL灌入信号来测试DACL是否有问题呢?
麻烦您回复上述问题,我们会进一步协助解决问题。谢谢!
user5114453:
回复 Alix Wan:
Hi Alix,
下面是对您的回复:
1. 你实际想要配置的详细信号路径是:MIC2L–>PGA–>ADC–>SW-D1–>effects–>volume control–>DAC_L–>HPLOUT。 也就是说,信号不是经过ADC后直接经过Dout输出到片外,然后经过处理器处理后经过DIN再送回到DACL,最后在HPLOUT输出。请问对吗?
——是的。我这个案子正常是不连接外部DSP的,只想利用一下芯片内部音效单元;模拟进,模拟出。DSP是我debug时连接的。
2. 你说把SPI的数据线接上DSP数据正常,请问你是通过外部处理器(例如DSP )从可以配置成left- or right-justified, I2S, DSP, 或者TDM模式的Audio data serial interface来读取数据,从而排除ADC的问题的是吗?
——没错,就是把接口和外部dsp对接后,读到adc数据正常,从而判断adc正常。
3. 如果你定位问题可能在DAC,那么请问,你有尝试过使用外部处理器直接从DIN给DACL灌入信号来测试DACL是否有问题呢?
——还没做
user5114453:
回复 user5114453:
Alix,
第3点,我用外部MCU给芯片数据DAC没有输出,所以问题很可能在DAC