This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

AIC 3204的配置问题——"ADC和DAC模块同时工作"

ti的工程师:

      我这里有一个工程,同时要使能AIC3204的ADC和DAC,IIS总线接的是6748,这里双向通信我们之前检测是没有问题的。AIC3204电路如下

       我们目前数字信号从DIN输入后,LOL和LOR有模拟信号输出。AIN-1、AIN+1模拟信号输入,但是DOUT数字信号一直没反应。我改了好几遍偏置一直没啥反应请ti的工程师看看是不是哪里配置的有问题。

void aic3204Init(void)
{
		CODEC_RESET = 1;
		delay_ms(2);
		CODEC_RESET = 0;
	
		//;p Reset 1     # Release the reset pin  
		//;# RESET
		aic3204_res = aic3204_Write_Reg(0x00,0X0);		//WW 30, 00h, 00h   ; # Select register page 0
		aic3204_res = aic3204_Write_Reg(0x01,0X1);		//WW 30, 01h, 01h   ; # I2C reset
		
		delay_ms(10); 
	
		//;# CLOCK SETTINGS	
		aic3204_res = aic3204_Write_Reg(0x0B,0X81);		//WW 30, 0Bh, 81h   ; # PoWWer up the NDAC divider WWith value 1
		aic3204_res = aic3204_Write_Reg(0x0C,0X82);		//WW 30, 0Ch, 82h   ; # PoWWer up the MDAC divider WWith value 2
		aic3204_res = aic3204_Write_Reg(0x0D,0X00);		//WW 30, 0Dh, 00h   ; # Program OSR for DAC to 128 (MSB)
		aic3204_res = aic3204_Write_Reg(0x0E,0X80);		//WW 30, 0Eh, 80h   ; # Program OSR for DAC to 128 (LSB)
			
		//12 13 14 
		//w 30 12h 81    # Power up the NADC divider with value 1
		//w 30 13h 82    # Power up the MADC divider with value 2
		//w 30 14h 80    # Program OSR for ADC to 128	
		aic3204_res = aic3204_Write_Reg(0x12,0X81);
		aic3204_res = aic3204_Write_Reg(0x13,0X82);
		aic3204_res = aic3204_Write_Reg(0x14,0X80);
		//;# DIGITAL INTERFACE
		aic3204_res = aic3204_Write_Reg(0x1B,0X00);		//WW 30, 1Bh, 00h   ; # I2S, 16-bit, BCLK and WWCLK are inputs
		//;# PROCESSING BLOCK USAGE
		aic3204_res = aic3204_Write_Reg(0x3C,0X08);		//WW 30, 3Ch, 08h   ; # Select DAC processing block PRB_P8
		//w 30 3D 04    # Select ADC processing block PRB_R4
		aic3204_res = aic3204_Write_Reg(0x3D,0X04);
		//;# ANALOG POWWER SUPPLY
		aic3204_res = aic3204_Write_Reg(0x00,0X01);		//WW 30, 00h, 01h   ; # Select register page 1
		aic3204_res = aic3204_Write_Reg(0x01,0X08);		//WW 30, 01h, 08h   ; # Disable internal crude AVDD before poWWering up the internal AVDD LDO
		aic3204_res = aic3204_Write_Reg(0x02,0X01);		//WW 30, 02h, 01h   ; # Enable internal analog LDO, analog blocks poWWered
																									//;WW 30, 02h, 00h   ; # Enable internal analog LDO, analog blocks poWWered
		aic3204_res = aic3204_Write_Reg(0x0A,0X40);		//WW 30, 0Ah, 40h   ; # Common mode set to 0.75V
		//;# MICPGA DELAY, REFERENCE CHARGING AND HEADPHONE DE-POP
		//;WW 30, 47h, 31h   ; # MICPGA startup delay is 3 ms
		aic3204_res = aic3204_Write_Reg(0x7B,0X01);		//WW 30, 7Bh, 01H   ; # Reference charging time is 40 ms
		//aic3204_res = aic3204_Write_Reg(0x14,0X65);		//;WW 30, 14h, 65h   ; # HP driver poWWer-up: 50 ms soft routing step time, 5.0 time constants, 6k resistance
		//;# AUDIO ROUTING
		//aic3204_res = aic3204_Write_Reg(0x0C,0X08);		//;WW 30, 0Ch, 08h   ; # HPL routing: Left channel
		//aic3204_res = aic3204_Write_Reg(0x0D,0X08);		//;WW 30, 0Dh, 08h   ; # HPR routing: Right channel
		aic3204_res = aic3204_Write_Reg(0x0E,0X08);		//WW 30, 0Eh, 08h   ; # LOL routing: Left channel
		aic3204_res = aic3204_Write_Reg(0x0F,0X08);		//WW 30, 0Fh, 08h   ; # LOR routing: Right channel

		//Full-Differential Mono Mic connected to IN1L/IN1R  select page 1
		//w 30 34 00    # No routed to Left MICPGA Positive
		//w 30 36 00    # No routed to Left MICPGA Negative
		//w 30 37 40    # IN1R is routed to Right MICPGA Positive with 10K resistance
		//w 30 39 10    # IN1L is routed to Right MICPGA Negative with 10K resistance

		aic3204_res = aic3204_Write_Reg(0x34,0X00);
		aic3204_res = aic3204_Write_Reg(0x36,0X00);
		aic3204_res = aic3204_Write_Reg(0x37,0X40);
		aic3204_res = aic3204_Write_Reg(0x39,0X10);

		
		aic3204_res = aic3204_Write_Reg(0x12,0X00);		//WW 30, 12h, 00h   ; # LOL driver is not muted
		aic3204_res = aic3204_Write_Reg(0x13,0X00);		//WW 30, 13h, 00h   ; # LOR driver is not muted
		aic3204_res = aic3204_Write_Reg(0x09,0X3C);		//WW 30, 09h, 3Ch   ; # Output Driver Power Control ALLOUT powered up
		
		delay_ms(10);
		//mov A,28h     ;after 18 cmds do delay 8.6ms
		//call dly_lcd_timex
		aic3204_res = aic3204_Write_Reg(0x00,0X00);		//WW 30, 00h, 00h   ; # Select register page 0
		aic3204_res = aic3204_Write_Reg(0x3F,0X0D6);	//WW 30, 3Fh, 0D6h   ; #
		aic3204_res = aic3204_Write_Reg(0x40,0X00);		//WW 30, 40h, 00h   ; #

}