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.

Using the AIC3254 codec in standalone analogue I/O mode.

Hi,

I have an application in mind that uses the AIC3254 codec connected to a microcontroller via the I2C bus (in standalone mode). I use Purepath to generate the code for the miniDSPs. The purepath application is quite simple, taking the analogue left & right MICPGA inputs (with the decimator component), doing some processing on the left & right data received (via miniDSPs), and then outputting the audio to the left & right HPL & HPR outputs (using the interpolator component). This I have easily done on the AIC3254 USB evaluation card to configure the codec to take external L & R analog signals (on IN1 & IN2), processing by the miniDSP and then playing the result on the HPL & HPR outputs. I send I2C commands to configure the codec prior to this. I do not need to use the I2S bus to send or receive digital audio, so the I2S bus is left in default configuration.

On the custom board with the microcontroller I do the same. I configure the AIC3254 codec via the I2C bus with I2C commands. However I am having trouble with the digital path of the miniDSP. The miniDSP A to miniDSP D path does not seem to work as on the USB evaluation card that I got working prior to the custom board ?!? I am not sure why, as the PLL of the codec is correctly configured for 8KHz, I can output and visualize the WCLK, BCLK signals correctly on the codec pins, so I know the PLL is correctly configured for 8KHz, 16-bit audio, but the miniDSP A to D transfer is not being done for some reason. I must be missing something ... Is there a need to set up the I2S bus interface to the microcontroller even though it is not actually needed ?

Essentially I would like to use the AIC3254 in standalone mode with inputs from a microphone, and the codec outputs to a line-input amplifier, with the miniDSPs doing some basic audio processing (eg filters and noise elimination). There is no need for the I2S for streaming, and the microcontroller is only used to configure the codec via the I2C bus then stops execution of any further code once the codec is fully configured. The codec once configured would continue doing the audio processing with no further microcontroller intervention, taking the input, treating it via the miniDSPs and playing the sampled sound via HPL & HPR (or LOL & LOR).

Any suggestions to why the custom board might not be working as the USB evaluation board, would be greatly appreciated.

Thanks in advance.

Mike

  • Hi, Mike,

    I have asked my colleague to look into this for you. 

    I wanted to thank you for sharing your knowledge with others. I noticed you replied to a bunch of posts (I guess maybe you were searching, looking for an answer to your question?). I wish we had more people like you contributing to the COMMUNITY! 

    -d2

  • HI Mike,

    You're right, you need to have the audio serial interface active for the miniDSPs to start up. In your PCB, WCLK and BCLK need to be floating or large value resistor. The same for DOUT pin. DIN can be ground.

    You then need to make BCLK and WCLK as outputs, select BCLK N divider source (e.g. DAC_MOD_CLK) and set the N divider to a proper value.

    Also, make sure that the codec's analog supplies are configured properly. If you are using the internal ALDO (similar to AIC3254EVM-U) then you need to power up the ALDO. If that is the case, then set the TargetBoard property of the framework to TLV320AIC3254EVM-U. Modify the SystemSettingsCode property as needed to configure BCLK and WCLK as outputs as well.

    Regards,

    J-