TI中文支持网
TI专业的中文技术问题搜集分享网站

TLV320ADC5140作为I2S从机,无法正常工作。读取0x76寄存器为0,显示ADC通道没有工作,读取0x15寄存器为0xff。

Other Parts Discussed in Thread:TLV320ADC5140

/* 主机给从机提供MCLK = 24.576MHz,(GPIO1管脚复用为MCLK input)BCLK= 3.072MHz,fs = 48kHz*/

void ADC_5140_Init(uint8_t tlv5140_addr)
{
I2C_Write(tlv5140_addr,ADCX140_SW_RESET,0x01); /* Reset */
I2C_Write(tlv5140_addr,ADCX140_PAGE_SELECT,0x00); /* page 0 */
I2C_Write(tlv5140_addr,ADCX140_SLEEP_CFG,0x81); /* Debice is not sleep mode */
I2C_Write(tlv5140_addr,ADCX140_SHDN_CFG,0x05); /* */
I2C_Write(tlv5140_addr,ADCX140_ASI_CFG0,0x60); /* I2S mode ,24bit*/ I2C_Write(tlv5140_addr,ADCX140_PWR_CFG,0xe0); /* power up PLL */
// I2C_Write(tlv5140_addr,ADCX140_MST_CFG0,0x60); /* */
// I2C_Write(tlv5140_addr,ADCX140_MST_CFG1,0x44); I2C_Write(tlv5140_addr,ADCX140_CLK_SRC,0x58); /* */
I2C_Write(tlv5140_addr,ADCX140_GPIO_CFG0,0xa6); /* GPIO1 provide MCLK = 24.516MHz*/
I2C_Write(tlv5140_addr,ADCX140_ASI_CH1,0x00); /* I2S mode*/
I2C_Write(tlv5140_addr,ADCX140_CH1_CFG0,0x04); /* Analog single-ended input for channel 1 */
I2C_Write(tlv5140_addr,ADCX140_CH1_CFG1,0x28); /* input 40dB,step 1dB*/ I2C_Write(tlv5140_addr,ADCX140_CH1_CFG2,0xff); /* output 27dB, setp -0.5dB*/
I2C_Write(tlv5140_addr,ADCX140_ASI_CH2,0x00); /* I2Smode */
I2C_Write(tlv5140_addr,ADCX140_CH2_CFG0,0x04); /* channel2 */
I2C_Write(tlv5140_addr,ADCX140_CH2_CFG1,0x28);
I2C_Write(tlv5140_addr,ADCX140_CH2_CFG2,0xff);
I2C_Write(tlv5140_addr,ADCX140_ASI_CH3,0x02); /* I2Smode */
I2C_Write(tlv5140_addr,ADCX140_CH3_CFG0,0x04); /* channel3 */
I2C_Write(tlv5140_addr,ADCX140_CH3_CFG1,0x28);
I2C_Write(tlv5140_addr,ADCX140_CH3_CFG2,0xff); I2C_Write(tlv5140_addr,ADCX140_IN_CH_EN,0xe0); /* channel1 、channel2 channel3 input en */
I2C_Write(tlv5140_addr,ADCX140_ASI_OUT_CH_EN,0xe0); /* channel1 、channel2 channel3 output en */

}

user6562358:

,

Amy Luo:

您好,
您上传的图片没有显示,您需要使用回复对话框右下角"使用高级编辑器编辑文本"上传
您的寄存器配置,写入后能够正确读出吗,以验证寄存器是否已正确写入

,

user6562358:

你好,非常感谢你的回复。目前,想让tlv320adc5140作为从机,写入后可以正常读取寄存器,都是写入进去并读取成功。 关于正常写入和读取,我做过主从机对比验证。作为主机,可以正常工作,读取的0x15,0x76寄存器都是正常的。但是作为从机,就不行了。

这是原理图

,

Amy Luo:

若TLV320ADC5140作为I2S从机,则BCLK 和 FSYNC 作为输入由主控端提供,您是由主控端提供的吗

,

user6562358:

是的,BCLK 和 FSYNC 作为输入由主控端提供,BCLK = 3.072MHZ,,FSYNC= 48KHz

,

Amy Luo:

您可以实测一下MCLK、BCLK、FSYNC吗
必须避免时钟输入上的逻辑电平故障或其他噪声,故障可能会触发时钟错误,从而关闭ASI,可以在输出驱动器附近添加一些串联电阻(10-33Ω)来保持MCLK输入信号尽可能干净

赞(0)
未经允许不得转载:TI中文支持网 » TLV320ADC5140作为I2S从机,无法正常工作。读取0x76寄存器为0,显示ADC通道没有工作,读取0x15寄存器为0xff。
分享到: 更多 (0)