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.

AIC3204 ADC-DAC Loop Back Not Working

Here are my settings for ADC which are working nice but the loop back is not working why what else could i configure

void AIC3204_Init(void)
{
#endif
asm(" BIT (ST1, #ST1_INTM) = #1");//Disable Global Interrupts
//taken from AED
// Configure AIC3204
AIC3204_rset( 0, 0 ); // Select page 0
AIC3204_rset( 1, 1 ); // Reset codec
USBSTK5515_wait_Test( 200 ); // Wait
//Configure Power Supplies
AIC3204_rset( 0, 1 ); // Point to page 1
AIC3204_rset( 1, 8 ); // Disable crude AVDD generation from DVDD
AIC3204_rset( 2, 1 ); // Enable Analog Blocks, use LDO power
// PLL and Clocks config and Power Up

AIC3204_rset( 0, 0 ); // Select page 0
AIC3204_rset( 27, 0x0d ); // I2S interface, 16 Bit, BCLK and WCLK is set as o/p ,DOUT High Impedence
AIC3204_rset( 28, 0x00 ); // Data ofset = 0
AIC3204_rset( 4, 3 ); // PLL setting: PLLCLK <- MCLK, CODEC_CLKIN <-PLL CLK
AIC3204_rset( 6, 4 ); // PLL setting: J = 4
AIC3204_rset( 7, 0x17 ); // PLL setting: HI_BYTE(D)
AIC3204_rset( 8, 0xc0 ); // PLL setting: LO_BYTE(D)
AIC3204_rset( 30, 0x88 ); // BCLK N Divider ->> DAC_CLK/N =(12288000/8) = 1.536MHz = 32*fs
AIC3204_rset( 5, 0xA4 ); // PLL setting: Power up PLL, P=2 and R=4
AIC3204_rset( 13, 0 ); // Hi_Byte(DOSR)
AIC3204_rset( 14, 0x80 ); // Lo_Byte(DOSR)
AIC3204_rset( 20, 0x80 ); // AOSR for AOSR = 128 ->> Use with PRB_R1 to PRB_R6, ADC Filter Type A)
AIC3204_rset( 11, 0x80+36 ); // Power up NDAC and set NDAC value to 36
AIC3204_rset( 12, 0x83 ); // Power up MDAC and set MDAC value to 3
AIC3204_rset( 18, 0x80+36 ); // Power up NADC and set NADC value to 36
AIC3204_rset( 19, 0x83 ); // Power up MADC and set MADC value to 3

// ADC ROUTING and Power Up

AIC3204_rset( 0, 1 ); // Select page 1
AIC3204_rset(10,0x43); // common mode control register
AIC3204_rset(51,0x68); // MicBias = LDO_IN
#ifdef PRE_AMP
AIC3204_rset( 52, 0xC0 ); // IN1_L Routed to Left PGA
#else
AIC3204_rset( 52, 0x30 ); // IN2_L Routed to Left PGA - For new AED board (03) Left +
#endif
AIC3204_rset( 54, 0xC0 ); // CM_1 (common mode) to LADC_M through 40 kohm Left -
AIC3204_rset( 59, 0x5f ); // MIC_PGA_L unmute Left Mic PGA = 47.5 dB
//AIC3204_rset( 59, 80 ); // MIC_PGA_L unmute Left Mic PGA = 40 dB
AIC3204_rset( 0, 0 ); // Select page 0
#ifdef PRE_AMP
AIC3204_rset( 83,5 ); // Left ADC Channel Volume 2.5dB with this over all gain is 50dB
#endif
#ifdef AGC_ENABLE


#endif

AIC3204_rset( 81, 0x80 ); // Powerup Left
AIC3204_rset( 82, 0x08 ); // Unmute Left and Mute Right
// DAC ROUTING and Power Up

AIC3204_rset( 0, 0x01 ); // Select page 1
AIC3204_rset( 12, 0x08 ); // LDAC AFIR routed to HPL
AIC3204_rset( 13, 0x08 ); // RDAC AFIR routed to HPR
AIC3204_rset( 0, 0x00 ); // Select page 0
AIC3204_rset( 29, 0x30 ); // Loop Back
AIC3204_rset( 64, 0x02 ); // Left vol=right vol
AIC3204_rset( 65, 0x00 ); // Left DAC gain to 0dB VOL; Right tracks Left
AIC3204_rset( 63, 0xd4 ); // Power up left,right data paths and set channel
AIC3204_rset( 0, 0x01 ); // Select page 1
AIC3204_rset( 16, 6 ); // Unmute HPL , 6dB gain
AIC3204_rset( 17, 6 ); // Unmute HPR , 6dB gain
AIC3204_rset( 9, 0x30 ); // Power up HPL,HPR
AIC3204_rset( 0, 0x00 ); // Select page 0
USBSTK5515_wait_Test( 500 ); // Wait

  • Hi DARAM:

                       If you set the ADC and DAC loopback , you should set the codec as a master or the other device can send the LRCLK and BCLK to the codec to make the ADC and DAC work. And also check if your configuration is the digital loopback.