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.

Config AIC3106 ADC/DAC sampling rate to 24/16/8KHz

Other Parts Discussed in Thread: TLV320AIC3106

I'm developing on OMPA-L137 EVM.

EVM adopt AIC3106.

I can't set ADC/DAC sampling rate to 16/24KHz.  It fixed at 48KHz.

According to AIC3106 datasheet,  

http://www.ti.com/lit/ds/symlink/tlv320aic3106.pdf

fS(ref) = CLKDIV_IN / (128 × Q)

EVMOMAPL137_AIC3106_rset( 102, 0 );     // CLKDIV_IN = MCLK

EVMOMAPL137_AIC3106_rset( 3, 0x22 );   // [PLL=OFF] [Q=4] [P=2]

MCLK = 24.567MHz

fS(ref) = 24.567MHz / (128 * 4 )  = 48KHz

So, I config Page0/Register2 to change ADC/DAC sampling rate

EVMOMAPL137_AIC3106_rset( 2, 0xAA );    //ADC fs = fs/6 , DAC fs = fs/6

==>  ADC fs = fS(ref) / 6 = 48KHz / 6 = 8KHz

According to datasheet,  I should get ADC/DAC 8KHz.  But it failed.

The "while ( ! ( MCASP1_SRCTL0 & 0x20 ) );"  is stilled executed 48000 times per second.

Please help me!

  • Hello Hakeen,

    Can you confirm that the correct I2C commands are being sent (and getting ack'ed)? Sometimes we see issues when translating from code to I2C scripts, with certain things getting cut out. A dump of everything being sent over the I2C would be helpful.

    Nate

  • Hi Nate

    Thx!

    Could I get I2C scripts through CCS?

    Or, I have to log it through SDA/SCL pin of AIC3106?

  • Hakeen,

    Your best bet will be to use a logic analyzer, such as the one saleae sells. If you put the setting to I2C bus it'll read the data and will tell you if you get acks or naks, which would be the first step of debugging this. I believe some oscopes have this functionality as well. If you are still running into issues, feel free to send me a text file with the I2C commands (comments are very useful here) and I'd be happy to look through them to see if I can find anything.

    Nate