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.

TLV320AIC3106: Output through a separate DAC the input of the Codec.

Part Number: TLV320AIC3106
Other Parts Discussed in Thread: TMS320C6748, DAC8568EVM, , DAC8568

Hi,

For a school project, I am using the TMS320C6748 LCDK. On this board there is the TLV320AIC3106 Codec. I am using this codec (along with the McASP peripheral as per the C6748 StarterWare code) to get inputs from an analog mic. When running the starterware code and connecting a pair of headphones to the codec for output, we hear whatever was sent through the mic. However, we won't be using the codec for audio output. Instead we will be using a DAC which will output at 8kHz. When I try to listen to the my headphones which is connected to the DAC's analog output, all I hear is what seems like white noise. I can hear slight variations in from the headphones when I tap on the mic or provide it with some input, but i cannot understand the output (if my friend tries to speak into the mic, I won't have any idea what he is saying; but with just the starterware code, I can understand what he is saying perfectly). Is simply reading the data from the MCASP's data regs and outputting them through the DAC supposed to work? If not, what is the correct way to go about this? The DAC being used is the DAC8568EVM. I have already verified the DAC by generating various single tone signals on on the dev board and outputting through the DAC which connects to my headphones (is there a better test than this)?

A small snippet of code is provided below. Any and all help will be much appreciated!

static uint8_t volatile timer_flag = 0;

timerISR (void) {

timer_flag = 1;

}

...

int main () {

uint16_t mic_data_left_channel;

uint16_t mic_data_right_channel;

// Dac, MCASP, AIC, Timer INIT

while(1) {

while (timer_flag == 0);

timer_flag = 0;

mic_data_left_channel = ((uint16_t volatile *) SOC_MCASP_0_DATA_REGS)[0];

mic_data_right_channel = ((uint16_t volatile *) SOC_MCASP_0_DATA_REGS)[1];

dac_update(LEFT_CHANNEL, mic_data_left_channel);

dac_update(RIGHT_CHANNEL, mic_data_right_channel);

}

}