Hi,
I am using the example code audio_edma_c6747.prj (the talkthrough code using AIC3106 and C6747). The example program has been configured for 48KHz sampling rate. When I change this to 8KHz, it still operates (transmits and receives) in 48KHz. I have changed the mcasp.c part of the example code from this (48KHz):
EVMC6747_AIC3106_rset( AIC3106_PAGESELECT, 0 ); // Select page 0
EVMC6747_AIC3106_rset( AIC3106_RESET, 0x80 ); // Reset AIC3106
EVMC6747_AIC3106_rset( 3, 0x22 ); // 5 PLL A <- [PLL=OFF][Q=4][P=2]
EVMC6747_AIC3106_rset( 4, 0x20 ); // 4 PLL B <- [J=8]
EVMC6747_AIC3106_rset( 5, 0x6E ); // 5 PLL C <- [D=7075]
EVMC6747_AIC3106_rset( 6, 0x23 ); // 6 PLL D <- [D=7075]
EVMC6747_AIC3106_rset( 7, 0x0A ); //0x6A);//0x0A ); // 7 Codec Datapath Setup <- [FS=48 kHz][LeftDAC=LEFT][RightDAC=RIGHT]
EVMC6747_AIC3106_rset( 8, 0x00 ); // 8 Audio Interface Control A <- [BCLK=Slave][MCLK=Slave]
EVMC6747_AIC3106_rset( 9, 0x00 ); // 9 Audio Interface Control B <- [I2S mode][16 bit]
EVMC6747_AIC3106_rset( 10, 0x00); // 10 Audio Interface Control C <- [Data offset=0]
EVMC6747_AIC3106_rset( 15, 0 ); // 15 Left ADC PGA Gain <- [Mute=OFF]
EVMC6747_AIC3106_rset( 16, 0 ); // 16 Right ADC PGA Gain <- [Mute=OFF]
EVMC6747_AIC3106_rset( 19, 0x04 ); // 19 LINE1L to Left ADC <- [SingleEnd][Gain=0dB][Power=ON][SoftStep=OncePerFS]
EVMC6747_AIC3106_rset( 22, 0x04 ); // 22 LINE1R to Right ADC <- [SingleEnd][Gain=0dB][Power=ON][SoftStep=OncePerFS]
EVMC6747_AIC3106_rset( 27, 0 ); // 27 Left AGC B <- [OFF]
EVMC6747_AIC3106_rset( 30, 0 ); // 30 Right AGC B <- [OFF]
EVMC6747_AIC3106_rset( 37, 0xE0 ); // 37 DAC Power & Output Dvr <- [LeftDAC=ON][RightDAC=ON][HPLCOM=SingleEnd]
EVMC6747_AIC3106_rset( 38, 0x10 ); // 38 High Power Output Dvr <- [HPRCOM=SingleEnd][ShortCircuit=OFF]
EVMC6747_AIC3106_rset( 43, 0 ); // 43 Left DAC Digital Volume <- [Mute=OFF][Gain=0dB]
EVMC6747_AIC3106_rset( 44, 0 ); // 44 Right DAC Digital Volume <- [Mute=OFF][Gain=0dB]
EVMC6747_AIC3106_rset( 47, 0x80 ); // 47 DAC_L1 to HPLOUT Volume <- [Routed]
EVMC6747_AIC3106_rset( 51, 0x09 ); // 51 HPLOUT Output <- [Mute=OFF][Power=ON]
EVMC6747_AIC3106_rset( 58, 0 ); // 58 HPLCOM Output <- []
EVMC6747_AIC3106_rset( 64, 0x80 ); // 64 DAC_R1 to HPROUT Volume <- [Routed]
EVMC6747_AIC3106_rset( 65, 0x09 ); // 65 HPROUT Output <- [Mute=OFF][Power=ON]
EVMC6747_AIC3106_rset( 72, 0 ); // 72 HPRCOM Output <- []
EVMC6747_AIC3106_rset( 82, 0x80 ); // 82 DAC_L1 to LEFT_LOP/M Volume <- [Routed]
EVMC6747_AIC3106_rset( 86, 0x09 ); // 83 LINE2R to LEFT_LOP/M Volume <- []
EVMC6747_AIC3106_rset( 92, 0x80 ); // 92 DAC_R1 to RIGHT_LOP/M Volume <- [Routed]
EVMC6747_AIC3106_rset( 93, 0x09 ); // 93 RIGHT_LOP/M Output <- [Mute=OFF][Power=ON]
EVMC6747_AIC3106_rset( 101, 0x01 ); // 101 GPIO Control Register B <- [CODEC_CLKIN = CLKDIV_OUT]
EVMC6747_AIC3106_rset( 102, 0 ); // 102 Clock Generation Control <- [PLLCLK_IN and CLKDIV_IN use MCLK]
to this:(8KHz)
EVMC6747_AIC3106_rset( AIC3106_PAGESELECT, 0 ); // Select page 0
EVMC6747_AIC3106_rset( AIC3106_RESET, 0x80 ); // Reset AIC3106
EVMC6747_AIC3106_rset( 2, 0xAA );
EVMC6747_AIC3106_rset( 3, 0x92 ); // 5 PLL A <- [PLL=OFF][Q=4][P=2]
EVMC6747_AIC3106_rset( 4, 0x04)// 4 PLL B <- [J=1]
EVMC6747_AIC3106_rset( 5, 0x46) // 5 PLL C <- [D=4512
EVMC6747_AIC3106_rset( 6, 0x20) // 6 PLL D <- [D=4512]
EVMC6747_AIC3106_rset( 7, 0x0A ); //0x6A);//0x0A ); // 7 Codec Datapath Setup <- [FS=48 kHz][LeftDAC=LEFT][RightDAC=RIGHT]
EVMC6747_AIC3106_rset( 8, 0x00 ); // 8 Audio Interface Control A <- [BCLK=Slave][MCLK=Slave]
EVMC6747_AIC3106_rset( 9, 0x00 ); // 9 Audio Interface Control B <- [I2S mode][16 bit]
EVMC6747_AIC3106_rset( 10, 0x00); // 10 Audio Interface Control C <- [Data offset=0]
EVMC6747_AIC3106_rset( 15, 0 ); // 15 Left ADC PGA Gain <- [Mute=OFF]
EVMC6747_AIC3106_rset( 16, 0 ); // 16 Right ADC PGA Gain <- [Mute=OFF]
EVMC6747_AIC3106_rset( 19, 0x04 ); // 19 LINE1L to Left ADC <- [SingleEnd][Gain=0dB][Power=ON][SoftStep=OncePerFS]
EVMC6747_AIC3106_rset( 22, 0x04 ); // 22 LINE1R to Right ADC <- [SingleEnd][Gain=0dB][Power=ON][SoftStep=OncePerFS]
EVMC6747_AIC3106_rset( 27, 0 ); // 27 Left AGC B <- [OFF]
EVMC6747_AIC3106_rset( 30, 0 ); // 30 Right AGC B <- [OFF]
EVMC6747_AIC3106_rset( 37, 0xE0 ); // 37 DAC Power & Output Dvr <- [LeftDAC=ON][RightDAC=ON][HPLCOM=SingleEnd]
EVMC6747_AIC3106_rset( 38, 0x10 ); // 38 High Power Output Dvr <- [HPRCOM=SingleEnd][ShortCircuit=OFF]
EVMC6747_AIC3106_rset( 43, 0 ); // 43 Left DAC Digital Volume <- [Mute=OFF][Gain=0dB]
EVMC6747_AIC3106_rset( 44, 0 ); // 44 Right DAC Digital Volume <- [Mute=OFF][Gain=0dB]
EVMC6747_AIC3106_rset( 47, 0x80 ); // 47 DAC_L1 to HPLOUT Volume <- [Routed]
EVMC6747_AIC3106_rset( 51, 0x09 ); // 51 HPLOUT Output <- [Mute=OFF][Power=ON]
EVMC6747_AIC3106_rset( 58, 0 ); // 58 HPLCOM Output <- []
EVMC6747_AIC3106_rset( 64, 0x80 ); // 64 DAC_R1 to HPROUT Volume <- [Routed]
EVMC6747_AIC3106_rset( 65, 0x09 ); // 65 HPROUT Output <- [Mute=OFF][Power=ON]
EVMC6747_AIC3106_rset( 72, 0 ); // 72 HPRCOM Output <- []
EVMC6747_AIC3106_rset( 82, 0x80 ); // 82 DAC_L1 to LEFT_LOP/M Volume <- [Routed]
EVMC6747_AIC3106_rset( 86, 0x09 ); // 83 LINE2R to LEFT_LOP/M Volume <- []
EVMC6747_AIC3106_rset( 92, 0x80 ); // 92 DAC_R1 to RIGHT_LOP/M Volume <- [Routed]
EVMC6747_AIC3106_rset( 93, 0x09 ); // 93 RIGHT_LOP/M Output <- [Mute=OFF][Power=ON]
EVMC6747_AIC3106_rset( 101, 0x01 ); // 101 GPIO Control Register B <- [CODEC_CLKIN = CLKDIV_OUT]
EVMC6747_AIC3106_rset( 102, 0 ); // 102 Clock Generation Control <- [PLLCLK_IN and CLKDIV_IN use MCLK]
But still the above doesnot work (K=1.4512, P=2, Q=2, fsref=48KHz, I assumed MCLK=22.5792MHz)
Please send me an example code that uses AIC3106 (you could just modify the audio_edma_c6747.prj) has been configured for 8KHz.
Thanks