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.

TLV320AIC24K: Picking a Suitable CODEC for a digital delay system

Part Number: TLV320AIC24K

My basic idea is to use a powerful dual core ARM processor to implement an audio digital delay using a CODEC chip connected to the processor where the incoming data is stored in the processor's internal RAM and then fed back out to the CODEC up to 10 seconds later, perhaps with various mixes added to implement effects such as echo and reverb.  If the audio data is sampled at 16 bits at 44 kHz then it should be possible to store around 10 seconds of audio data inside the processor's 1024 kBytes with a bit of RAM left over for internal variables.  My processor is a PSoC6 that has Quad SPI, I2S x 2, PDM, and various other interfaces; the PSoC6 also has internal configurable hardware that might be set up to work with a TI CODEC

I'm looking for a CODEC IC that would meet the following requirements:

  • Capable of running the ADC to capture and send serial data to the PSoC6 processor and simultaneously accepting streaming digital data back from the PSoC6 to the CODEC's DAC
  • I actually need mono but a CODEC that could do stereo would be a desirable extra for future enhancements
  • Is not too expensive (around $5 or less in 1,000s).

The main thing I need to understand is the serial interface, I've worked with I2S before but something like QSPI sounds like it has the most promise.  I've been looking through the datasheet for the TLV320AIC24K and it looks like it could meet my needs although it only does 26 ksps (although that would give me longer delay time - as much as 19 seconds) and the SMARTDM interface looks a lot like QSPI, am I right?

Is this a suitable IC or would you suggest another one?  I see that there are 'DSP' ICs available but I'm confused what the difference is between CODECs and DSPs.

  • Ted, 

    The AIC24k is not our most recent codec, I would suggest something more recent, even the AIC3106, or AIC3204.   An alternate option would be the LM49352

    all of them have a bidirectional Audio serial interface bus. and support simultaneous capture and playback. Many of the codecs do have built in MiniDSPs but the memory requirements of a digital delay are too great for the onboard RAM. using an external processor would be required for any of our audio codecs. 

    best regards,

    -Steve Wilson

  • Steve,

    Thanks for the prompt reply.  I looked at the various devices you suggested and the AIC3204 looks promising.  The simplified block diagram on page 1 of the DS seems to show that the incoming Analog inputs are fed through to the analog outputs where they're mixed with the output from the DACs - if I wanted just straight delay, I would NOT want the input signal fed to the output, so can you confirm that, via processor control, I can suppress the feed through by setting the amps to  -30 dB?

    On the digital audio path between the AIC3240 and the PSoC6, am I on the right track to think that the most logical choice would be an I2S signal that has 2 data lines - one in each direction?  If yes, I think it makes most sense for the PSoC6 to set the AIC3204 up as the master so that the 3204 generates the MCLK signal and then the PSoC6 I2S interface runs in slave mode and uses interrupts to jump in and process each I2S data word that RX'd from the AIC3204; it could then apply whatever return data it wants to be played back by the DAC and put that in the I2S output buffer to be clocked out when the next word is received.

    Am I on the right track here? Any comments or suggestions?

    Thanks,

    Ted

  • Ted, 

    The bypass path you are referring to is disabled by default,  you would need to enable it for it to do anything.

    I think I2S would be exactly what you would want to use, however the aic3204 requires an MCLK, it doesn't generate one itself.  The processor can supply the MCLK. 

    The processing would be pretty minimal honestly,  you should have an audio input buffer, the processor can store the audio into ram, then retrieve it and place it in the output buffer.  if you wanted some kind of feedback control you would need to add some of the output back into the input. 

    best regards,

    -Steve Wilson

  • Steve,

    Thanks so much, I'll put the prototype circuit together and try it.  I will come back here and let you know how it went but that won't be fore 3 weeks or so.

    Ted