I interfaced TIAIC3204 with stm32f415 to be operated at 48kHz, for both ADC and DAC successfully. Now due to some design changes i need to operate TIAIC3204 at 8kHz and it seems not to be working well. MCLK of 2.048MHz is provided which is being used as CODEC_CLKIN. If any one could check my configurations on an EVM it would be great help indeed. my current configurations are posted. Thanks
/* Initialization to page 0 */
codecCommandBuffer[0] = 0x00;
codecCommandBuffer[1] = 0x00;
sendCodecControlCommand(codecCommandBuffer,2);
/* S/W Reset to initialize all registers */
codecCommandBuffer[0] = 0x01;
codecCommandBuffer[1] = 0x01;
sendCodecControlCommand(codecCommandBuffer,2);
/* Powerup NADC divider with value 1 */
codecCommandBuffer[0] = 0x12;
codecCommandBuffer[1] = 0x81;
sendCodecControlCommand(codecCommandBuffer,2);
/* Powerup MADC divider with value 2 */
codecCommandBuffer[0] = 0x13;
codecCommandBuffer[1] = 0x82;
sendCodecControlCommand(codecCommandBuffer,2);
/* Program OSR for ADC to 128 */
codecCommandBuffer[0] = 0x14;
codecCommandBuffer[1] = 0x80;
sendCodecControlCommand(codecCommandBuffer,2);
/* Enable Dout as primary data out */
codecCommandBuffer[0] = 0x35;
codecCommandBuffer[1] = 0x02;
sendCodecControlCommand(codecCommandBuffer,2);
/* Select ADC PRB_R1 */
codecCommandBuffer[0] = 0x3d;
codecCommandBuffer[1] = 0x01;
sendCodecControlCommand(codecCommandBuffer,2);
/* Audio Interface Mode Selection */
codecCommandBuffer[0] = 0x1B;
codecCommandBuffer[1] = 0x00;
sendCodecControlCommand(codecCommandBuffer,2);
/* ADC left channel volume control */
codecCommandBuffer[0] = 0x53;
codecCommandBuffer[1] = ADC_L_GAIN;
sendCodecControlCommand(codecCommandBuffer,2);
/* ADC right channel volume control */
codecCommandBuffer[0] = 0x54;
codecCommandBuffer[1] = ADC_R_GAIN;
sendCodecControlCommand(codecCommandBuffer,2);
/* Select Page 1 */
codecCommandBuffer[0] = 0x00;
codecCommandBuffer[1] = 0x01;
sendCodecControlCommand(codecCommandBuffer,2);
/* Disable internal crude AVdd in presence of external AVdd supply or before */
/* powering up internal AVdd LDO */
codecCommandBuffer[0] = 0x01;
codecCommandBuffer[1] = 0x08;
sendCodecControlCommand(codecCommandBuffer,2);
/* Enable Master Analog Power Control */
codecCommandBuffer[0] = 0x02;
codecCommandBuffer[1] = 0x01;
sendCodecControlCommand(codecCommandBuffer,2);
/* Set the input common mode to 0.75V/0.9V */
codecCommandBuffer[0] = 0x0a;
codecCommandBuffer[1] = 0x00; // for 0.9
codecCommandBuffer[1] = 0x40; // for 0.75
sendCodecControlCommand(codecCommandBuffer,2);
/* Select ADC PTM_R4 */
codecCommandBuffer[0] = 0x3d;
codecCommandBuffer[1] = 0x00;
sendCodecControlCommand(codecCommandBuffer,2);
/* Set MicPGA startup delay to 3.1ms */
codecCommandBuffer[0] = 0x47;
codecCommandBuffer[1] = 0x32;
sendCodecControlCommand(codecCommandBuffer,2);
/* Set the REF charging time to 40ms */
codecCommandBuffer[0] = 0x7b;
codecCommandBuffer[1] = 0x01;
sendCodecControlCommand(codecCommandBuffer,2);
/* Route IN1L to LEFT_P with 20K input impedance */
codecCommandBuffer[0] = 0x34;
codecCommandBuffer[1] = 0x80;
sendCodecControlCommand(codecCommandBuffer,2);
/* Route common mode to LEFT_M with impedance of 20K */
codecCommandBuffer[0] = 0x36;
codecCommandBuffer[1] = 0x80;
sendCodecControlCommand(codecCommandBuffer,2);
/* Route IN1R to RIGHT_P with input impedance of 20K */
codecCommandBuffer[0] = 0x37;
codecCommandBuffer[1] = 0x80;
sendCodecControlCommand(codecCommandBuffer,2);
/* Route common mode to RIGHT_M with impedance of 20K */
codecCommandBuffer[0] = 0x39;
codecCommandBuffer[1] = 0x80;
sendCodecControlCommand(codecCommandBuffer,2);
/* Unmute Left MICPGA, Gain selection of 6dB to make channel gain 0dB */
/* Register of 6dB with input impedance of 20K => Channel Gain of 0dB */
codecCommandBuffer[0] = 0x3b;
codecCommandBuffer[1] = 0x0c;
sendCodecControlCommand(codecCommandBuffer,2);
/* Unmute Right MICPGA, Gain selection of 6dB to make channel gain 0dB */
/* Register of 6dB with input impedance of 20K => Channel Gain of 0dB */
codecCommandBuffer[0] = 0x3c;
codecCommandBuffer[1] = 0x0c;
sendCodecControlCommand(codecCommandBuffer,2);
/* Select Page 0 */
codecCommandBuffer[0] = 0x00;
codecCommandBuffer[1] = 0x00;
sendCodecControlCommand(codecCommandBuffer,2);
/* Power up Left and Right Channels */
codecCommandBuffer[0] = 0x51;
codecCommandBuffer[1] = 0xc0;
sendCodecControlCommand(codecCommandBuffer,2);
/* unmute Left and Right ADC Digital Volume Control */
codecCommandBuffer[0] = 0x52;
codecCommandBuffer[1] = 0x00;
sendCodecControlCommand(codecCommandBuffer,2);